You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(silentpayments): add CreateSpTx command for silent payment transactions
Add experimental silent payment sending capabilities with new CreateSpTx
command. This command creates signed transactions directly rather than
PSBTs due to current limitations in secure shared derivation.
- Add bdk_sp dependency with "sp" feature flag
- Implement CreateSpTx subcommand for offline wallet operations
- Add silent payment recipient parsing utility
- Support mixed recipients (regular addresses + silent payments)
- Generate signed transactions ready for broadcast
- For the moment is not possible to enable RBF for the created
transactions.
Note: This is experimental functionality for testing only, not
recommended for mainnet use.
/// Sends all the funds (or all the selected utxos). Requires only one recipient with value 0.
340
+
#[arg(long = "send_all", short = 'a')]
341
+
send_all:bool,
342
+
/// Make a PSBT that can be signed by offline signers and hardware wallets. Forces the addition of `non_witness_utxo` and more details to let the signer identify the change output.
343
+
#[arg(long = "offline_signer")]
344
+
offline_signer:bool,
345
+
/// Selects which utxos *must* be spent.
346
+
#[arg(env = "MUST_SPEND_TXID:VOUT", long = "utxos", value_parser = parse_outpoint)]
347
+
utxos:Option<Vec<OutPoint>>,
348
+
/// Marks a utxo as unspendable.
349
+
#[arg(env = "CANT_SPEND_TXID:VOUT", long = "unspendable", value_parser = parse_outpoint)]
350
+
unspendable:Option<Vec<OutPoint>>,
351
+
/// Fee rate to use in sat/vbyte.
352
+
#[arg(env = "SATS_VBYTE", short = 'f', long = "fee_rate")]
353
+
fee_rate:Option<f32>,
354
+
/// Selects which policy should be used to satisfy the external descriptor.
355
+
#[arg(env = "EXT_POLICY", long = "external_policy")]
356
+
external_policy:Option<String>,
357
+
/// Selects which policy should be used to satisfy the internal descriptor.
358
+
#[arg(env = "INT_POLICY", long = "internal_policy")]
359
+
internal_policy:Option<String>,
360
+
/// Optionally create an OP_RETURN output containing given String in utf8 encoding (max 80 bytes)
361
+
#[arg(
362
+
env = "ADD_STRING",
363
+
long = "add_string",
364
+
short = 's',
365
+
conflicts_with = "add_data"
366
+
)]
367
+
add_string:Option<String>,
368
+
/// Optionally create an OP_RETURN output containing given base64 encoded String. (max 80 bytes)
0 commit comments