transparent address prefix based on chain

This commit is contained in:
Aditya Kulkarni
2019-09-19 11:44:27 -07:00
parent 0aedf95e4f
commit 65f9655b40
3 changed files with 32 additions and 16 deletions

View File

@@ -14,7 +14,6 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use pairing::bls12_381::{Bls12};
use zcash_client_backend::{
constants::testnet::{B58_PUBKEY_ADDRESS_PREFIX,},
encoding::encode_payment_address,
proto::compact_formats::CompactBlock, welding_rig::scan_block,
};
@@ -355,7 +354,7 @@ impl LightWallet {
}
}
pub fn address_from_sk(sk: &secp256k1::SecretKey) -> String {
pub fn address_from_sk(&self, sk: &secp256k1::SecretKey) -> String {
let secp = secp256k1::Secp256k1::new();
let pk = secp256k1::PublicKey::from_secret_key(&secp, &sk);
@@ -364,13 +363,13 @@ impl LightWallet {
hash160.input(Sha256::digest(&pk.serialize()[..].to_vec()));
// TODO: The taddr version prefix needs to be different for testnet and mainnet
hash160.result().to_base58check(&B58_PUBKEY_ADDRESS_PREFIX, &[])
hash160.result().to_base58check(&self.config.base58_pubkey_address(), &[])
}
pub fn address_from_pubkeyhash(ta: Option<TransparentAddress>) -> Option<String> {
pub fn address_from_pubkeyhash(&self, ta: Option<TransparentAddress>) -> Option<String> {
match ta {
Some(TransparentAddress::PublicKey(hash)) => {
Some(hash.to_base58check(&B58_PUBKEY_ADDRESS_PREFIX, &[]))
Some(hash.to_base58check(&self.config.base58_pubkey_address(), &[]))
},
_ => None
}
@@ -478,7 +477,7 @@ impl LightWallet {
info!("Already have {}:{}", utxo.txid, utxo.output_index);
}
None => {
let address = LightWallet::address_from_pubkeyhash(vout.script_pubkey.address());
let address = self.address_from_pubkeyhash(vout.script_pubkey.address());
if address.is_none() {
println!("Couldn't determine address for output!");
}
@@ -795,7 +794,10 @@ impl LightWallet {
let extfvk = &self.extfvks[0];
let ovk = extfvk.fvk.ovk;
let to = match address::RecipientAddress::from_str(to, self.config.hrp_sapling_address()) {
let to = match address::RecipientAddress::from_str(to,
self.config.hrp_sapling_address(),
self.config.base58_pubkey_address(),
self.config.base58_script_address()) {
Some(to) => to,
None => {
eprintln!("Invalid recipient address");