diff --git a/bridge-cli/Cargo.toml b/bridge-cli/Cargo.toml index cf4dd1e..86add60 100644 --- a/bridge-cli/Cargo.toml +++ b/bridge-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bridge-cli" -version = "0.3.45" +version = "0.4.0" edition = "2021" repository = "https://github.com/Near-One/bridge-sdk-rs" rust-version = "1.88.0" diff --git a/bridge-sdk/bridge-clients/near-bridge-client/Cargo.toml b/bridge-sdk/bridge-clients/near-bridge-client/Cargo.toml index e253526..d1f6be7 100644 --- a/bridge-sdk/bridge-clients/near-bridge-client/Cargo.toml +++ b/bridge-sdk/bridge-clients/near-bridge-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "near-bridge-client" -version = "0.2.17" +version = "0.3.0" edition = "2021" [dependencies] diff --git a/bridge-sdk/bridge-clients/near-bridge-client/src/btc.rs b/bridge-sdk/bridge-clients/near-bridge-client/src/btc.rs index 0d9da19..bd2ce22 100644 --- a/bridge-sdk/bridge-clients/near-bridge-client/src/btc.rs +++ b/bridge-sdk/bridge-clients/near-bridge-client/src/btc.rs @@ -104,6 +104,8 @@ pub struct FinBtcTransferArgs { pub tx_block_blockhash: String, pub tx_index: u64, pub merkle_proof: Vec, + pub coinbase_tx_id: String, + pub coinbase_merkle_proof: Vec, } #[derive(Clone, serde::Serialize, serde::Deserialize)] @@ -112,6 +114,8 @@ pub struct BtcVerifyWithdrawArgs { pub tx_block_blockhash: String, pub tx_index: u64, pub merkle_proof: Vec, + pub coinbase_tx_id: String, + pub coinbase_merkle_proof: Vec, } #[derive(Clone, serde::Serialize, serde::Deserialize)] diff --git a/bridge-sdk/bridge-clients/utxo-bridge-client/Cargo.toml b/bridge-sdk/bridge-clients/utxo-bridge-client/Cargo.toml index 7a3a2cd..fba3843 100644 --- a/bridge-sdk/bridge-clients/utxo-bridge-client/Cargo.toml +++ b/bridge-sdk/bridge-clients/utxo-bridge-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "utxo-bridge-client" -version = "0.2.3" +version = "0.3.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/bridge-sdk/bridge-clients/utxo-bridge-client/src/types.rs b/bridge-sdk/bridge-clients/utxo-bridge-client/src/types.rs index 4e273d4..b7921d2 100644 --- a/bridge-sdk/bridge-clients/utxo-bridge-client/src/types.rs +++ b/bridge-sdk/bridge-clients/utxo-bridge-client/src/types.rs @@ -18,6 +18,8 @@ pub struct TxProof { pub tx_block_blockhash: String, pub tx_index: u64, pub merkle_proof: Vec, + pub coinbase_tx_id: String, + pub coinbase_merkle_proof: Vec, } pub struct UtxoBridgeTransactionData { diff --git a/bridge-sdk/bridge-clients/utxo-bridge-client/src/utxo_bridge_client.rs b/bridge-sdk/bridge-clients/utxo-bridge-client/src/utxo_bridge_client.rs index 7304d15..2c0d4a9 100644 --- a/bridge-sdk/bridge-clients/utxo-bridge-client/src/utxo_bridge_client.rs +++ b/bridge-sdk/bridge-clients/utxo-bridge-client/src/utxo_bridge_client.rs @@ -223,12 +223,20 @@ impl UTXOBridgeClient { "btc tx not found in block".to_string(), ))?; - let merkle_proof = merkle_tools::merkle_proof_calculator(transactions, tx_index); + let merkle_proof = merkle_tools::merkle_proof_calculator(transactions.clone(), tx_index); let merkle_proof_str = merkle_proof .iter() .map(std::string::ToString::to_string) .collect(); + let coinbase_tx_id = transactions[0].to_string(); + let coinbase_merkle_proof = + merkle_tools::merkle_proof_calculator(transactions, 0); + let coinbase_merkle_proof_str = coinbase_merkle_proof + .iter() + .map(std::string::ToString::to_string) + .collect(); + Ok(TxProof { block_height, tx_bytes: block.tx_data(tx_index), @@ -237,6 +245,8 @@ impl UTXOBridgeClient { .try_into() .expect("Error on convert usize into u64"), merkle_proof: merkle_proof_str, + coinbase_tx_id, + coinbase_merkle_proof: coinbase_merkle_proof_str, }) } diff --git a/bridge-sdk/connectors/omni-connector/Cargo.toml b/bridge-sdk/connectors/omni-connector/Cargo.toml index 7ba78ba..93ddc8d 100644 --- a/bridge-sdk/connectors/omni-connector/Cargo.toml +++ b/bridge-sdk/connectors/omni-connector/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "omni-connector" -version = "0.3.9" +version = "0.4.0" edition = "2021" rust-version = "1.88.0" diff --git a/bridge-sdk/connectors/omni-connector/src/omni_connector.rs b/bridge-sdk/connectors/omni-connector/src/omni_connector.rs index 2c3f8a9..bb7ffaa 100644 --- a/bridge-sdk/connectors/omni-connector/src/omni_connector.rs +++ b/bridge-sdk/connectors/omni-connector/src/omni_connector.rs @@ -588,6 +588,8 @@ impl OmniConnector { tx_block_blockhash: proof_data.tx_block_blockhash, tx_index: proof_data.tx_index, merkle_proof: proof_data.merkle_proof, + coinbase_tx_id: proof_data.coinbase_tx_id, + coinbase_merkle_proof: proof_data.coinbase_merkle_proof, }; near_bridge_client @@ -622,6 +624,8 @@ impl OmniConnector { tx_block_blockhash: proof_data.tx_block_blockhash, tx_index: proof_data.tx_index, merkle_proof: proof_data.merkle_proof, + coinbase_tx_id: proof_data.coinbase_tx_id, + coinbase_merkle_proof: proof_data.coinbase_merkle_proof, }; near_bridge_client @@ -669,6 +673,8 @@ impl OmniConnector { tx_block_blockhash: proof_data.tx_block_blockhash, tx_index: proof_data.tx_index, merkle_proof: proof_data.merkle_proof, + coinbase_tx_id: proof_data.coinbase_tx_id, + coinbase_merkle_proof: proof_data.coinbase_merkle_proof, }; near_bridge_client