Skip to content

Commit

Permalink
bp: fix non-updated change vout after adding opret
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-orlovsky committed Feb 14, 2025
1 parent 073d0f0 commit 259bda8
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 16 deletions.
15 changes: 4 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions psbt/src/bp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ impl RgbPsbt for Psbt {
fn rgb_resolve(
&mut self,
script: PaymentScript,
mut change_vout: Option<Vout>,
change_vout: &mut Option<Vout>,
) -> Result<OpRequestSet<PrefabSeal>, RgbPsbtPrepareError> {
match self.opret_hosts().count() {
0 => {
Expand All @@ -51,7 +51,7 @@ impl RgbPsbt for Psbt {
self.complete_construction();

script
.resolve_seals(self.script_resolver(), change_vout)
.resolve_seals(self.script_resolver(), *change_vout)
.map_err(|_| RgbPsbtPrepareError::ChangeRequired)
}

Expand Down
2 changes: 1 addition & 1 deletion psbt/src/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ pub trait RgbPsbt {
fn rgb_resolve(
&mut self,
script: PaymentScript,
change_vout: Option<Vout>,
change_vout: &mut Option<Vout>,
) -> Result<OpRequestSet<PrefabSeal>, RgbPsbtPrepareError>;

fn rgb_fill_csv(&mut self, bundle: &PrefabBundle) -> Result<(), RgbPsbtCsvError>;
Expand Down
4 changes: 2 additions & 2 deletions src/runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,10 @@ impl<S: Supply, P: Pile<SealDef = WTxoSeal, SealSrc = TxoSeal>, X: Excavate<S, P
script: PaymentScript,
params: TxParams,
) -> Result<(Psbt, PrefabBundle), TransferError> {
let (mut psbt, meta) = self.0.wallet.compose_psbt(&script, params)?;
let (mut psbt, mut meta) = self.0.wallet.compose_psbt(&script, params)?;

// From this moment transaction becomes unmodifiable
let request = psbt.rgb_resolve(script, meta.change_vout)?;
let request = psbt.rgb_resolve(script, &mut meta.change_vout)?;
let bundle = self.bundle(request, meta.change_vout)?;

psbt.rgb_fill_csv(&bundle)?;
Expand Down

0 comments on commit 259bda8

Please sign in to comment.