Split address_from_seed to expose ExtendedFullViewingKey

This commit is contained in:
Jack Grigg 2018-11-21 17:29:30 +00:00
parent a4bfd8b282
commit fc6c3c6b2b
No known key found for this signature in database
GPG Key ID: 1B8D649257DB0829
1 changed files with 9 additions and 5 deletions

View File

@ -4,9 +4,9 @@ extern crate zip32;
use zcash_client_backend::{ use zcash_client_backend::{
address::encode_payment_address, constants::HRP_SAPLING_EXTENDED_SPENDING_KEY_TEST, address::encode_payment_address, constants::HRP_SAPLING_EXTENDED_SPENDING_KEY_TEST,
}; };
use zip32::{ChildIndex, ExtendedSpendingKey}; use zip32::{ChildIndex, ExtendedFullViewingKey, ExtendedSpendingKey};
fn address_from_seed(seed: &[u8]) -> String { fn extfvk_from_seed(seed: &[u8]) -> ExtendedFullViewingKey {
let master = ExtendedSpendingKey::master(seed); let master = ExtendedSpendingKey::master(seed);
let extsk = ExtendedSpendingKey::from_path( let extsk = ExtendedSpendingKey::from_path(
&master, &master,
@ -16,7 +16,11 @@ fn address_from_seed(seed: &[u8]) -> String {
ChildIndex::Hardened(0), ChildIndex::Hardened(0),
], ],
); );
let addr = extsk.default_address().unwrap().1; ExtendedFullViewingKey::from(&extsk)
}
fn address_from_extfvk(extfvk: &ExtendedFullViewingKey) -> String {
let addr = extfvk.default_address().unwrap().1;
encode_payment_address(HRP_SAPLING_EXTENDED_SPENDING_KEY_TEST, &addr) encode_payment_address(HRP_SAPLING_EXTENDED_SPENDING_KEY_TEST, &addr)
} }
@ -30,7 +34,7 @@ pub mod android {
use self::jni::sys::{jbyteArray, jstring}; use self::jni::sys::{jbyteArray, jstring};
use self::jni::JNIEnv; use self::jni::JNIEnv;
use super::address_from_seed; use super::{address_from_extfvk, extfvk_from_seed};
#[no_mangle] #[no_mangle]
pub unsafe extern "C" fn Java_cash_z_wallet_sdk_jni_JniConverter_getAddress( pub unsafe extern "C" fn Java_cash_z_wallet_sdk_jni_JniConverter_getAddress(
@ -40,7 +44,7 @@ pub mod android {
) -> jstring { ) -> jstring {
let seed = env.convert_byte_array(seed).unwrap(); let seed = env.convert_byte_array(seed).unwrap();
let addr = address_from_seed(&seed); let addr = address_from_extfvk(&extfvk_from_seed(&seed));
let output = env.new_string(addr).expect("Couldn't create Java string!"); let output = env.new_string(addr).expect("Couldn't create Java string!");
output.into_inner() output.into_inner()