Full redeem script has to be passed to the input when redeeming P2SH

This commit is contained in:
CalDescent
2022-05-20 10:49:30 +01:00
parent 73ba2d8b1f
commit 30332dfe52

View File

@@ -77,7 +77,7 @@ pub fn double_sha256(payload: &[u8]) -> Vec<u8> {
h2.to_vec()
}
use base58::{FromBase58, ToBase58};
use base58::ToBase58;
/// A trait for converting a [u8] to base58 encoded string.
pub trait ToBase58Check {
@@ -2888,10 +2888,6 @@ impl LightWallet {
// Add P2SH transaction as transparent input, including secret and redeem script
let p2sh_addr_vec = from.from_base58().unwrap();
let p2sh_addr_arr = <[u8; 20]>::try_from(&p2sh_addr_vec[2..22]).unwrap();
let p2sh_script_pubkey = TransparentAddress::Script(p2sh_addr_arr).script();
let outpoint: OutPoint = OutPoint {
hash: <[u8; 32]>::try_from(outpoint_txid).unwrap(),
n: 0
@@ -2899,7 +2895,7 @@ impl LightWallet {
let coin = TxOut {
value: target_value,
script_pubkey: p2sh_script_pubkey,
script_pubkey: Script { 0: redeem_script_pubkey.to_vec() },
};
let sk = SecretKey::from_slice(privkey).unwrap();