From: Pedro Felix Date: Wed, 21 Sep 2022 16:56:08 +0000 (-0700) Subject: Add add_data enables op_return for bdk-cli X-Git-Tag: v0.6.0~3^2 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/struct.CommandStringError.html?a=commitdiff_plain;h=86b557972de9833105fbddefbaf1082cab4499f0;p=bdk-cli Add add_data enables op_return for bdk-cli --- diff --git a/src/commands.rs b/src/commands.rs index 4764d62..a0093f2 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -396,6 +396,22 @@ pub enum OfflineWalletSubCommand { /// Selects which policy should be used to satisfy the internal descriptor. #[structopt(name = "INT_POLICY", long = "internal_policy")] internal_policy: Option, + /// Optionally create an OP_RETURN output containing given String in utf8 encoding (max 80 bytes) + #[structopt( + name = "ADD_STRING", + long = "add_string", + short = "s", + conflicts_with = "ADD_DATA" + )] + add_string: Option, + /// Optionally create an OP_RETURN output containing given base64 encoded String. (max 80 bytes) + #[structopt( + name = "ADD_DATA", + long = "add_data", + short = "o", + conflicts_with = "ADD_STRING" + )] + add_data: Option, //base 64 econding }, /// Bumps the fees of an RBF transaction. BumpFee { @@ -945,7 +961,9 @@ mod test { "--change_descriptor", "wpkh(tpubDEnoLuPdBep9bzw5LoGYpsxUQYheRQ9gcgrJhJEcdKFB9cWQRyYmkCyRoTqeD4tJYiVVgt6A3rN6rWn9RYhR9sBsGxji29LYWHuKKbdb1ev/1/*)", "create_tx", "--to", "n2Z3YNXtceeJhFkTknVaNjT1mnCGWesykJ:123456","mjDZ34icH4V2k9GmC8niCrhzVuR3z8Mgkf:78910", "--utxos","87345e46bfd702d24d54890cc094d08a005f773b27c8f965dfe0eb1e23eef88e:1", - "--utxos","87345e46bfd702d24d54890cc094d08a005f773b27c8f965dfe0eb1e23eef88e:2"]; + "--utxos","87345e46bfd702d24d54890cc094d08a005f773b27c8f965dfe0eb1e23eef88e:2", + "--add_string","Hello BDK", + ]; let cli_opts = CliOpts::from_iter(&cli_args); @@ -1016,6 +1034,8 @@ mod test { fee_rate: None, external_policy: None, internal_policy: None, + add_data: None, + add_string: Some("Hello BDK".to_string()), }), }, }; diff --git a/src/handlers.rs b/src/handlers.rs index 8845f00..f44f723 100644 --- a/src/handlers.rs +++ b/src/handlers.rs @@ -122,6 +122,8 @@ where fee_rate, external_policy, internal_policy, + add_data, + add_string, } => { let mut tx_builder = wallet.build_tx(); @@ -151,6 +153,13 @@ where tx_builder.unspendable(unspendable); } + if let Some(base64_data) = add_data { + let op_return_data = base64::decode(&base64_data).unwrap(); + tx_builder.add_data(op_return_data.as_slice()); + } else if let Some(string_data) = add_string { + tx_builder.add_data(string_data.as_bytes()); + } + let policies = vec![ external_policy.map(|p| (p, KeychainKind::External)), internal_policy.map(|p| (p, KeychainKind::Internal)),