diff --git a/Cargo.lock b/Cargo.lock index f1cb7a1..f7272d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1568,7 +1568,7 @@ dependencies = [ [[package]] name = "rgb-invoice" version = "0.11.0-beta.6" -source = "git+https://github.com/RGB-WG/rgb-std?branch=master#f43133f685a2a82a47c9f8ee2b67ac6df485b47a" +source = "git+https://github.com/RGB-WG/rgb-std?branch=invoice-pay2vout#da6db60ecc79b0d6e3d7549c78cad490bedf9212" dependencies = [ "amplify", "baid64", @@ -1628,7 +1628,7 @@ dependencies = [ [[package]] name = "rgb-std" version = "0.11.0-beta.6" -source = "git+https://github.com/RGB-WG/rgb-std?branch=master#f43133f685a2a82a47c9f8ee2b67ac6df485b47a" +source = "git+https://github.com/RGB-WG/rgb-std?branch=invoice-pay2vout#da6db60ecc79b0d6e3d7549c78cad490bedf9212" dependencies = [ "aluvm", "amplify", diff --git a/Cargo.toml b/Cargo.toml index e7cfcb9..1654ca1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,8 +99,6 @@ bp-std = { git = "https://github.com/BP-WG/bp-std", branch = "master" } bp-wallet = { git = "https://github.com/BP-WG/bp-wallet", branch = "master" } psbt = { git = "https://github.com/BP-WG/bp-std", branch = "master" } descriptors = { git = "https://github.com/BP-WG/bp-std", branch = "master" } -rgb-std = { git = "https://github.com/RGB-WG/rgb-std", branch = "master" } -rgb-invoice = { git = "https://github.com/RGB-WG/rgb-std", branch = "master" } +rgb-std = { git = "https://github.com/RGB-WG/rgb-std", branch = "invoice-pay2vout" } +rgb-invoice = { git = "https://github.com/RGB-WG/rgb-std", branch = "invoice-pay2vout" } rgb-interfaces = { git = "https://github.com/RGB-WG/rgb-interfaces", branch = "master" } - -# invoice-pay2vout \ No newline at end of file diff --git a/cli/src/command.rs b/cli/src/command.rs index cc0c129..4ec815c 100644 --- a/cli/src/command.rs +++ b/cli/src/command.rs @@ -35,7 +35,7 @@ use rgb::containers::{ Transfer, UniversalFile, }; use rgb::interface::{AmountChange, FilterExclude, IfaceId}; -use rgb::invoice::{Beneficiary, RgbInvoice, RgbInvoiceBuilder, XChainNet}; +use rgb::invoice::{Beneficiary, Pay2Vout, RgbInvoice, RgbInvoiceBuilder, XChainNet}; use rgb::persistence::StashReadProvider; use rgb::schema::SchemaId; use rgb::validation::Validity; @@ -689,7 +689,10 @@ impl Exec for RgbArgs { .next() .expect("no addresses left") .addr; - Beneficiary::WitnessVout(addr.payload) + Beneficiary::WitnessVout(Pay2Vout { + address: addr.payload, + method: wallet.wallet().seal_close_method(), + }) } (_, Some(outpoint)) => { let seal = XChain::Bitcoin(GraphSeal::new_random( diff --git a/src/pay.rs b/src/pay.rs index 81e01f4..b3256fe 100644 --- a/src/pay.rs +++ b/src/pay.rs @@ -203,9 +203,9 @@ where Self::Descr: DescriptorRgb }; let beneficiaries = match invoice.beneficiary.into_inner() { Beneficiary::BlindedSeal(_) => vec![], - Beneficiary::WitnessVout(payload) => { + Beneficiary::WitnessVout(pay2vout) => { vec![BpBeneficiary::new( - Address::new(payload, invoice.address_network()), + Address::new(pay2vout.address, invoice.address_network()), params.min_amount, )] } @@ -220,8 +220,8 @@ where Self::Descr: DescriptorRgb self.construct_psbt(prev_outpoints, &beneficiaries, params.tx)?; let beneficiary_script = - if let Beneficiary::WitnessVout(addr) = invoice.beneficiary.into_inner() { - Some(addr.script_pubkey()) + if let Beneficiary::WitnessVout(pay2vout) = invoice.beneficiary.into_inner() { + Some(pay2vout.address.script_pubkey()) } else { None }; @@ -246,8 +246,8 @@ where Self::Descr: DescriptorRgb } let beneficiary_vout = match invoice.beneficiary.into_inner() { - Beneficiary::WitnessVout(addr) => { - let s = addr.script_pubkey(); + Beneficiary::WitnessVout(pay2vout) => { + let s = pay2vout.address.script_pubkey(); let vout = psbt .outputs() .find(|output| output.script == s) @@ -297,8 +297,8 @@ where Self::Descr: DescriptorRgb let witness_txid = psbt.txid(); let (beneficiary1, beneficiary2) = match invoice.beneficiary.into_inner() { - Beneficiary::WitnessVout(addr) => { - let s = addr.script_pubkey(); + Beneficiary::WitnessVout(pay2vout) => { + let s = pay2vout.address.script_pubkey(); let vout = psbt .outputs() .position(|output| output.script == s)