Convert P2SH address to script_pubkey

This commit is contained in:
CalDescent
2022-05-18 08:06:31 +01:00
parent d5daed9163
commit 688534812c
2 changed files with 13 additions and 9 deletions

View File

@@ -48,33 +48,33 @@ reqwest = { version = "0.10.8", features = ["blocking", "json"] }
[dependencies.bellman]
git = "https://github.com/CalDescent1/librustzcash.git"
rev = "5a4fd01f351259694c31ca161842dfd7078ef2f1"
rev = "1a8686863b10a608ececdede3deb82d2fb4218fa"
default-features = false
features = ["groth16", "multicore"]
[dependencies.pairing]
git = "https://github.com/CalDescent1/librustzcash.git"
rev = "5a4fd01f351259694c31ca161842dfd7078ef2f1"
rev = "1a8686863b10a608ececdede3deb82d2fb4218fa"
[dependencies.zcash_client_backend]
git = "https://github.com/CalDescent1/librustzcash.git"
rev = "5a4fd01f351259694c31ca161842dfd7078ef2f1"
rev = "1a8686863b10a608ececdede3deb82d2fb4218fa"
default-features = false
[dependencies.zcash_primitives]
git = "https://github.com/CalDescent1/librustzcash.git"
rev = "5a4fd01f351259694c31ca161842dfd7078ef2f1"
rev = "1a8686863b10a608ececdede3deb82d2fb4218fa"
default-features = false
features = ["transparent-inputs"]
[dependencies.zcash_proofs]
git = "https://github.com/CalDescent1/librustzcash.git"
rev = "5a4fd01f351259694c31ca161842dfd7078ef2f1"
rev = "1a8686863b10a608ececdede3deb82d2fb4218fa"
default-features = false
[dependencies.ff]
git = "https://github.com/CalDescent1/librustzcash.git"
rev = "5a4fd01f351259694c31ca161842dfd7078ef2f1"
rev = "1a8686863b10a608ececdede3deb82d2fb4218fa"
features = ["ff_derive"]
[build-dependencies]

View File

@@ -77,7 +77,7 @@ pub fn double_sha256(payload: &[u8]) -> Vec<u8> {
h2.to_vec()
}
use base58::{ToBase58};
use base58::{FromBase58, ToBase58};
/// A trait for converting a [u8] to base58 encoded string.
pub trait ToBase58Check {
@@ -2887,14 +2887,18 @@ 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::PublicKey(p2sh_addr_arr).script();
let outpoint: OutPoint = OutPoint {
hash: <[u8; 32]>::try_from(outpoint_txid).unwrap(),
n: 0
};
let coin = TxOut {
value: Amount::from_u64(total_value).unwrap(),
script_pubkey: Script { 0: redeem_script_pubkey.to_vec() },
value: target_value,
script_pubkey: p2sh_script_pubkey,
};
let sk = SecretKey::from_slice(privkey).unwrap();