Skip to content

Commit bcea1c2

Browse files
authored
Merge pull request #387 from whfuyn/fix-invalid-witness-program-len
Fix invalid witness program length
2 parents e031651 + ec26f06 commit bcea1c2

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/wallet/mod.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -387,10 +387,12 @@ where
387387
let script_pubkey = u.txout.script_pubkey;
388388
match script_pubkey.witness_version() {
389389
Some(version @ WitnessVersion::V0) => {
390-
let witness_program = WitnessProgram::new(version, script_pubkey.as_bytes())
391-
.map_err(|e| {
392-
log_error!(self.logger, "Failed to retrieve script payload: {}", e);
393-
})?;
390+
let witness_program =
391+
WitnessProgram::new(version, &script_pubkey.as_bytes()[2..]).map_err(
392+
|e| {
393+
log_error!(self.logger, "Failed to retrieve script payload: {}", e);
394+
},
395+
)?;
394396

395397
let wpkh = WPubkeyHash::from_slice(&witness_program.program().as_bytes())
396398
.map_err(|e| {
@@ -400,10 +402,12 @@ where
400402
utxos.push(utxo);
401403
},
402404
Some(version @ WitnessVersion::V1) => {
403-
let witness_program = WitnessProgram::new(version, script_pubkey.as_bytes())
404-
.map_err(|e| {
405-
log_error!(self.logger, "Failed to retrieve script payload: {}", e);
406-
})?;
405+
let witness_program =
406+
WitnessProgram::new(version, &script_pubkey.as_bytes()[2..]).map_err(
407+
|e| {
408+
log_error!(self.logger, "Failed to retrieve script payload: {}", e);
409+
},
410+
)?;
407411

408412
XOnlyPublicKey::from_slice(&witness_program.program().as_bytes()).map_err(
409413
|e| {

0 commit comments

Comments
 (0)