Skip to content

Commit 61db97d

Browse files
committed
construct payload directly
1 parent 8f6ed4d commit 61db97d

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

lightning-invoice/src/de.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,6 @@ impl FromBase32 for Fallback {
555555
if bytes.len() < 2 || bytes.len() > 40 {
556556
return Err(ParseError::InvalidSegWitProgramLength);
557557
}
558-
559558
let version = WitnessVersion::try_from(version).expect("0 through 16 are valid SegWit versions");
560559
Ok(Fallback::SegWitProgram {
561560
version: version,
@@ -567,15 +566,13 @@ impl FromBase32 for Fallback {
567566
Ok(pkh) => pkh,
568567
Err(bitcoin_hashes::Error::InvalidLength(_, _)) => return Err(ParseError::InvalidPubKeyHashLength),
569568
};
570-
571569
Ok(Fallback::PubKeyHash(pkh))
572570
}
573571
18 => {
574572
let sh = match ScriptHash::from_slice(&bytes) {
575573
Ok(sh) => sh,
576574
Err(bitcoin_hashes::Error::InvalidLength(_, _)) => return Err(ParseError::InvalidScriptHashLength),
577575
};
578-
579576
Ok(Fallback::ScriptHash(sh))
580577
}
581578
_ => Err(ParseError::Skip)

lightning-invoice/src/lib.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ use bech32::u5;
4848
use bitcoin::Address;
4949
use bitcoin::Network;
5050
use bitcoin::PubkeyHash;
51-
use bitcoin::Script;
5251
use bitcoin::ScriptHash;
52+
use bitcoin::util::address::Payload;
5353
use bitcoin::util::address::WitnessVersion;
5454
use bitcoin_hashes::Hash;
5555
use bitcoin_hashes::sha256;
@@ -1273,20 +1273,20 @@ impl Invoice {
12731273
Currency::Simnet => Network::Regtest,
12741274
Currency::Signet => Network::Signet,
12751275
};
1276-
1277-
let script = match fallback {
1276+
1277+
let payload = match fallback {
12781278
Fallback::SegWitProgram { version, program } => {
1279-
Script::new_witness_program(*version, program.as_slice())
1279+
Payload::WitnessProgram { version: *version, program: program.to_vec() }
12801280
}
12811281
Fallback::PubKeyHash(pkh) => {
1282-
Script::new_p2pkh(pkh)
1282+
Payload::PubkeyHash(*pkh)
12831283
}
12841284
Fallback::ScriptHash(sh) => {
1285-
Script::new_p2sh(sh)
1285+
Payload::ScriptHash(*sh)
12861286
}
12871287
};
1288-
1289-
Address::from_script(&script, network).unwrap()
1288+
1289+
Address { payload, network }
12901290
}).collect()
12911291
}
12921292

@@ -1599,6 +1599,7 @@ impl<'de> Deserialize<'de> for Invoice {
15991599

16001600
#[cfg(test)]
16011601
mod test {
1602+
use bitcoin::Script;
16021603
use bitcoin_hashes::hex::FromHex;
16031604
use bitcoin_hashes::sha256;
16041605

@@ -1991,7 +1992,6 @@ mod test {
19911992
assert_eq!(invoice.fallbacks(), vec![&Fallback::PubKeyHash(PubkeyHash::from_slice(&[0;20]).unwrap())]);
19921993
let address = Address::from_script(&Script::new_p2pkh(&PubkeyHash::from_slice(&[0;20]).unwrap()), Network::Testnet).unwrap();
19931994
assert_eq!(invoice.fallback_addresses(), vec![address]);
1994-
19951995
assert_eq!(invoice.private_routes(), vec![&PrivateRoute(route_1), &PrivateRoute(route_2)]);
19961996
assert_eq!(
19971997
invoice.description(),

0 commit comments

Comments
 (0)