Removed privacy txs for keycard

This commit is contained in:
jonesmarvin8 2026-04-27 16:37:21 -04:00
parent 2381961621
commit 2926c808d3
16 changed files with 46 additions and 266 deletions

View File

@ -51,9 +51,7 @@ async fn main() {
.send_privacy_preserving_tx( .send_privacy_preserving_tx(
accounts, accounts,
Program::serialize_instruction(greeting).unwrap(), Program::serialize_instruction(greeting).unwrap(),
&program.into(), &program.into()
&None,
&None,
) )
.await .await
.unwrap(); .unwrap();

View File

@ -59,9 +59,7 @@ async fn main() {
.send_privacy_preserving_tx( .send_privacy_preserving_tx(
accounts, accounts,
Program::serialize_instruction(instruction).unwrap(), Program::serialize_instruction(instruction).unwrap(),
&program_with_dependencies, &program_with_dependencies
&None,
&None,
) )
.await .await
.unwrap(); .unwrap();

View File

@ -106,8 +106,6 @@ async fn main() {
accounts, accounts,
Program::serialize_instruction(instruction).unwrap(), Program::serialize_instruction(instruction).unwrap(),
&program.into(), &program.into(),
&None,
&None,
) )
.await .await
.unwrap(); .unwrap();
@ -149,8 +147,6 @@ async fn main() {
accounts, accounts,
Program::serialize_instruction(instruction).unwrap(), Program::serialize_instruction(instruction).unwrap(),
&program.into(), &program.into(),
&None,
&None,
) )
.await .await
.unwrap(); .unwrap();

View File

@ -35,27 +35,3 @@ wallet account get --pin 111111 --key-path "m/44'/60'/0'/0/0"
echo "Test: wallet account get --pin 111111 --key-path \"m/44'/60'/0'/0/1\"" echo "Test: wallet account get --pin 111111 --key-path \"m/44'/60'/0'/0/1\""
wallet account get --pin 111111 --key-path "m/44'/60'/0'/0/1" wallet account get --pin 111111 --key-path "m/44'/60'/0'/0/1"
# initialize account keys (outside of keycard)
# Eventually use for tokens and shielded
wallet account new private
wallet account new public
wallet account new public
wallet account new public
wallet account new public
# Initialize Token A
wallet token new --definition-account-id "Public/4rXJzAEVn9Av1bK1RR4orTJP8dJDzRuoTBRsXVn1pwcK" --supply-account-id "Public/3PfkXqePVRnet5H1PbnfgeWykBrqX3KPPeMBESJt4QEd" --total-supply 1000 --name LEZT
# Initialize Token B
wallet token new --definition-account-id "Public/DjJx9ccoRyv1xxmHmpFy8mATeKq3Es1DnobjT4EZ4ab2" --supply-account-id "Public/EKgmwG9n7jMYkKaTYdZa7ELyYZq5f43oBKuCiu3t3Tm8" --total-supply 1000 --name LEET
# Send Token A to a new wallet account
# Send from non keycard account to an account owned by keycard.
wallet token send --from "Public/3PfkXqePVRnet5H1PbnfgeWykBrqX3KPPeMBESJt4QEd" --to "Public/6iYPF671bMDEkADFvHgcJDrYHJMqZv6cYbxVMsUU7LFE" --amount 400
# This fails due to lack of initialization for Token Account
wallet auth-transfer send --amount 40 --pin 111111 --from-key-path "m/44'/60'/0'/0/0" --to-npk "55204e2934045b044f06d8222b454d46b54788f33c7dec4f6733d441703bb0e6" --to-vpk "02a8626b0c0ad9383c5678dad48c3969b4174fb377cdb03a6259648032c774cec8"

View File

@ -160,7 +160,7 @@ pub unsafe extern "C" fn wallet_ffi_transfer_shielded(
let transfer = NativeTokenTransfer(&wallet); let transfer = NativeTokenTransfer(&wallet);
match block_on( match block_on(
transfer.send_shielded_transfer_to_outer_account(from_id, to_npk, to_vpk, amount, &None, &None), transfer.send_shielded_transfer_to_outer_account(from_id, to_npk, to_vpk, amount),
) { ) {
Ok((tx_hash, _shared_key)) => { Ok((tx_hash, _shared_key)) => {
let tx_hash = CString::new(tx_hash.to_string()) let tx_hash = CString::new(tx_hash.to_string())
@ -412,7 +412,7 @@ pub unsafe extern "C" fn wallet_ffi_transfer_shielded_owned(
let transfer = NativeTokenTransfer(&wallet); let transfer = NativeTokenTransfer(&wallet);
match block_on(transfer.send_shielded_transfer(from_id, to_id, amount, &None, &None)) { match block_on(transfer.send_shielded_transfer(from_id, to_id, amount)) {
Ok((tx_hash, _shared_key)) => { Ok((tx_hash, _shared_key)) => {
let tx_hash = CString::new(tx_hash.to_string()) let tx_hash = CString::new(tx_hash.to_string())
.map_or(ptr::null_mut(), std::ffi::CString::into_raw); .map_or(ptr::null_mut(), std::ffi::CString::into_raw);

View File

@ -28,14 +28,14 @@ pub enum AccountSubcommand {
#[arg(short, long)] #[arg(short, long)]
keys: bool, keys: bool,
/// Valid 32 byte base58 string with privacy prefix. /// Valid 32 byte base58 string with privacy prefix.
#[arg(short, long, conflicts_with = "account_label")] #[arg(short, long, conflicts_with = "account_label", required_unless_present_any = ["account_label", "pin"])]
account_id: Option<String>, account_id: Option<String>,
/// Account label (alternative to --account-id). /// Account label (alternative to --account-id).
#[arg(long, conflicts_with = "account_id")] #[arg(long, conflicts_with = "account_id")]
account_label: Option<String>, account_label: Option<String>,
#[arg(long, conflicts_with = "account_id", conflicts_with = "account_id")] #[arg(long, conflicts_with = "account_id", conflicts_with = "account_label", requires = "key_path")]
pin: Option<String>, pin: Option<String>,
#[arg(long, conflicts_with = "account_id", conflicts_with = "account_id")] #[arg(long)]
key_path: Option<String>, key_path: Option<String>,
}, },
/// Produce new public or private account. /// Produce new public or private account.
@ -205,6 +205,7 @@ impl WalletSubcommand for AccountSubcommand {
let account_id: nssa::AccountId = account_id_str.parse()?; let account_id: nssa::AccountId = account_id_str.parse()?;
// Add account id to the display for keycard users.
println!("Account Id: {}", resolved); println!("Account Id: {}", resolved);
if let Some(label) = wallet_core.storage.labels.get(&account_id_str) { if let Some(label) = wallet_core.storage.labels.get(&account_id_str) {

View File

@ -24,15 +24,16 @@ pub enum AuthTransferSubcommand {
#[arg( #[arg(
long, long,
conflicts_with = "account_label", conflicts_with = "account_label",
// required_unless_present = "account_label" conflicts_with = "pin",
required_unless_present_any = ["account_label", "pin"]
)] )]
account_id: Option<String>, account_id: Option<String>,
/// Account label (alternative to --account-id). /// Account label (alternative to --account-id).
#[arg(long, conflicts_with = "account_id")] #[arg(long, conflicts_with = "account_id", conflicts_with = "pin")]
account_label: Option<String>, account_label: Option<String>,
#[arg(long)] #[arg(long, conflicts_with = "account_id", conflicts_with = "account_label", requires = "key_path")]
pin: Option<String>, pin: Option<String>,
#[arg(long, conflicts_with = "account_id", conflicts_with = "account_label")] #[arg(long)]
key_path: Option<String>, key_path: Option<String>,
}, },
/// Send native tokens from one account to another with variable privacy. /// Send native tokens from one account to another with variable privacy.
@ -43,10 +44,10 @@ pub enum AuthTransferSubcommand {
/// First is used for owned accounts, second otherwise. /// First is used for owned accounts, second otherwise.
Send { Send {
/// from - valid 32 byte base58 string with privacy prefix. /// from - valid 32 byte base58 string with privacy prefix.
#[arg(long, conflicts_with = "from_label")] #[arg(long, conflicts_with = "from_label", conflicts_with = "pin", required_unless_present_any = ["from_label", "pin"])]
from: Option<String>, from: Option<String>,
/// From account label (alternative to --from). /// From account label (alternative to --from).
#[arg(long, conflicts_with = "from")] #[arg(long, conflicts_with = "from", conflicts_with = "pin")]
from_label: Option<String>, from_label: Option<String>,
/// to - valid 32 byte base58 string with privacy prefix. /// to - valid 32 byte base58 string with privacy prefix.
#[arg(long, conflicts_with = "to_label")] #[arg(long, conflicts_with = "to_label")]
@ -63,11 +64,11 @@ pub enum AuthTransferSubcommand {
/// amount - amount of balance to move. /// amount - amount of balance to move.
#[arg(long)] #[arg(long)]
amount: u128, amount: u128,
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")] #[arg(long)]
pin: Option<String>, pin: Option<String>,
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")] #[arg(long, conflicts_with = "from", conflicts_with = "from_label")]
from_key_path: Option<String>, from_key_path: Option<String>,
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")] #[arg(long, conflicts_with = "to", conflicts_with = "to_label")]
to_key_path: Option<String>, to_key_path: Option<String>,
}, },
} }
@ -225,9 +226,7 @@ impl WalletSubcommand for AuthTransferSubcommand {
NativeTokenTransferProgramSubcommandShielded::ShieldedOwned { NativeTokenTransferProgramSubcommandShielded::ShieldedOwned {
from, from,
to, to,
amount, amount
pin,
key_path: from_key_path,
}, },
) )
} }
@ -254,8 +253,6 @@ impl WalletSubcommand for AuthTransferSubcommand {
to_npk, to_npk,
to_vpk, to_vpk,
amount, amount,
pin,
key_path: from_key_path,
}, },
) )
} }
@ -285,9 +282,9 @@ pub enum NativeTokenTransferProgramSubcommand {
/// amount - amount of balance to move. /// amount - amount of balance to move.
#[arg(long)] #[arg(long)]
amount: u128, amount: u128,
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")] #[arg(long, conflicts_with = "from", conflicts_with = "from_label", requires = "key_path")]
pin: Option<String>, pin: Option<String>,
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")] #[arg(long)]
key_path: Option<String>, key_path: Option<String>,
}, },
/// Private execution. /// Private execution.
@ -328,11 +325,7 @@ pub enum NativeTokenTransferProgramSubcommandShielded {
to: String, to: String,
/// amount - amount of balance to move. /// amount - amount of balance to move.
#[arg(long)] #[arg(long)]
amount: u128, amount: u128
#[arg(long)]
pin: Option<String>,
#[arg(long)]
key_path: Option<String>,
}, },
/// Send native token transfer from `from` to `to` for `amount`. /// Send native token transfer from `from` to `to` for `amount`.
/// ///
@ -349,11 +342,7 @@ pub enum NativeTokenTransferProgramSubcommandShielded {
to_vpk: String, to_vpk: String,
/// amount - amount of balance to move. /// amount - amount of balance to move.
#[arg(long)] #[arg(long)]
amount: u128, amount: u128
#[arg(long)]
pin: Option<String>,
#[arg(long)]
key_path: Option<String>,
}, },
} }
@ -477,15 +466,13 @@ impl WalletSubcommand for NativeTokenTransferProgramSubcommandShielded {
Self::ShieldedOwned { Self::ShieldedOwned {
from, from,
to, to,
amount, amount
pin,
key_path,
} => { } => {
let from: AccountId = from.parse().unwrap(); let from: AccountId = from.parse().unwrap();
let to: AccountId = to.parse().unwrap(); let to: AccountId = to.parse().unwrap();
let (tx_hash, secret) = NativeTokenTransfer(wallet_core) let (tx_hash, secret) = NativeTokenTransfer(wallet_core)
.send_shielded_transfer(from, to, amount, &pin, &key_path) .send_shielded_transfer(from, to, amount)
.await?; .await?;
println!("Transaction hash is {tx_hash}"); println!("Transaction hash is {tx_hash}");
@ -510,8 +497,6 @@ impl WalletSubcommand for NativeTokenTransferProgramSubcommandShielded {
to_npk, to_npk,
to_vpk, to_vpk,
amount, amount,
pin,
key_path,
} => { } => {
let from: AccountId = from.parse().unwrap(); let from: AccountId = from.parse().unwrap();
@ -528,7 +513,7 @@ impl WalletSubcommand for NativeTokenTransferProgramSubcommandShielded {
let (tx_hash, _) = NativeTokenTransfer(wallet_core) let (tx_hash, _) = NativeTokenTransfer(wallet_core)
.send_shielded_transfer_to_outer_account( .send_shielded_transfer_to_outer_account(
from, to_npk, to_vpk, amount, &pin, &key_path, from, to_npk, to_vpk, amount
) )
.await?; .await?;

View File

@ -17,14 +17,14 @@ pub enum PinataProgramAgnosticSubcommand {
/// Claim pinata. /// Claim pinata.
Claim { Claim {
/// to - valid 32 byte base58 string with privacy prefix. /// to - valid 32 byte base58 string with privacy prefix.
#[arg(long, conflicts_with = "to_label")] #[arg(long, conflicts_with = "to_label", required_unless_present_any = ["to_label", "pin"])]
to: Option<String>, to: Option<String>,
/// To account label (alternative to --to). /// To account label (alternative to --to).
#[arg(long, conflicts_with = "to")] #[arg(long, conflicts_with = "to")]
to_label: Option<String>, to_label: Option<String>,
#[arg(long, conflicts_with = "to", conflicts_with = "to_label")] #[arg(long, conflicts_with = "to", conflicts_with = "to_label", requires = "key_path")]
pin: Option<String>, pin: Option<String>,
#[arg(long, conflicts_with = "to", conflicts_with = "to_label")] #[arg(long)]
key_path: Option<String>, key_path: Option<String>,
}, },
} }

View File

@ -16,10 +16,9 @@ use chain_storage::WalletChainStore;
use common::{HashType, transaction::NSSATransaction}; use common::{HashType, transaction::NSSATransaction};
use config::WalletConfig; use config::WalletConfig;
use key_protocol::key_management::key_tree::{chain_index::ChainIndex, traits::KeyNode as _}; use key_protocol::key_management::key_tree::{chain_index::ChainIndex, traits::KeyNode as _};
use keycard_wallet::KeycardWallet;
use log::info; use log::info;
use nssa::{ use nssa::{
Account, AccountId, PrivacyPreservingTransaction, PublicKey, Signature, Account, AccountId, PrivacyPreservingTransaction,
privacy_preserving_transaction::{ privacy_preserving_transaction::{
circuit::{ProgramWithDependencies, Proof}, circuit::{ProgramWithDependencies, Proof},
message::EncryptedAccountData, message::EncryptedAccountData,
@ -27,7 +26,7 @@ use nssa::{
}; };
use nssa_core::{ use nssa_core::{
Commitment, MembershipProof, SharedSecretKey, Commitment, MembershipProof, SharedSecretKey,
account::{AccountWithMetadata, Nonce}, account::Nonce,
program::InstructionData, program::InstructionData,
}; };
pub use privacy_preserving_tx::PrivacyPreservingAccount; pub use privacy_preserving_tx::PrivacyPreservingAccount;
@ -36,7 +35,7 @@ use tokio::io::AsyncWriteExt as _;
use crate::{ use crate::{
config::{PersistentStorage, WalletConfigOverrides}, config::{PersistentStorage, WalletConfigOverrides},
helperfunctions::{parse_addr_with_privacy_prefix, produce_data_for_storage}, helperfunctions::produce_data_for_storage,
poller::TxPoller, poller::TxPoller,
}; };
@ -366,17 +365,10 @@ impl WalletCore {
accounts: Vec<PrivacyPreservingAccount>, accounts: Vec<PrivacyPreservingAccount>,
instruction_data: InstructionData, instruction_data: InstructionData,
program: &ProgramWithDependencies, program: &ProgramWithDependencies,
pin: &Option<String>,
key_path: &Option<String>,
) -> Result<(HashType, Vec<SharedSecretKey>), ExecutionFailureKind> { ) -> Result<(HashType, Vec<SharedSecretKey>), ExecutionFailureKind> {
self.send_privacy_preserving_tx_with_pre_check( self.send_privacy_preserving_tx_with_pre_check(accounts, instruction_data, program, |_| {
accounts, Ok(())
instruction_data, })
program,
|_| Ok(()),
pin,
key_path,
)
.await .await
} }
@ -386,53 +378,10 @@ impl WalletCore {
instruction_data: InstructionData, instruction_data: InstructionData,
program: &ProgramWithDependencies, program: &ProgramWithDependencies,
tx_pre_check: impl FnOnce(&[&Account]) -> Result<(), ExecutionFailureKind>, tx_pre_check: impl FnOnce(&[&Account]) -> Result<(), ExecutionFailureKind>,
pin: &Option<String>,
key_path: &Option<String>,
) -> Result<(HashType, Vec<SharedSecretKey>), ExecutionFailureKind> { ) -> Result<(HashType, Vec<SharedSecretKey>), ExecutionFailureKind> {
let acc_manager = privacy_preserving_tx::AccountManager::new(self, accounts).await?; let acc_manager = privacy_preserving_tx::AccountManager::new(self, accounts).await?;
let pre_states = acc_manager.pre_states(); let pre_states = acc_manager.pre_states();
let keycard_account = if let Some(pin) = pin.as_ref() {
let account_id = KeycardWallet::get_account_id_for_path_with_connect(
pin,
key_path.as_ref().expect("Expect a key path String."),
);
let (acc_id, _) =
parse_addr_with_privacy_prefix(&account_id).expect("Valid parsing of account id");
let account_id = acc_id.parse().expect("Expect a valid Account Id");
let account = self
.get_account_public(account_id)
.await
.expect("Expect valid account");
Some(AccountWithMetadata {
account,
is_authorized: true,
account_id,
})
} else {
None
};
let nonces: Vec<Nonce> = acc_manager.public_account_nonces().into_iter().collect();
let account_ids: Vec<AccountId> = acc_manager.public_account_ids();
let visibility_mask = acc_manager.visibility_mask().to_vec();
if let Some(acc) = keycard_account.as_ref() {
nonces.push(acc.account.nonce);
account_ids.push(acc.account_id);
visibility_mask.push(0);
pre_states.push(acc.clone());
}
tx_pre_check( tx_pre_check(
&pre_states &pre_states
.iter() .iter()
@ -444,7 +393,7 @@ impl WalletCore {
let (output, proof) = nssa::privacy_preserving_transaction::circuit::execute_and_prove( let (output, proof) = nssa::privacy_preserving_transaction::circuit::execute_and_prove(
pre_states, pre_states,
instruction_data, instruction_data,
visibility_mask, acc_manager.visibility_mask().to_vec(),
private_account_keys private_account_keys
.iter() .iter()
.map(|keys| (keys.npk, keys.ssk)) .map(|keys| (keys.npk, keys.ssk))
@ -457,8 +406,8 @@ impl WalletCore {
let message = let message =
nssa::privacy_preserving_transaction::message::Message::try_from_circuit_output( nssa::privacy_preserving_transaction::message::Message::try_from_circuit_output(
account_ids, acc_manager.public_account_ids(),
nonces, Vec::from_iter(acc_manager.public_account_nonces()),
private_account_keys private_account_keys
.iter() .iter()
.map(|keys| (keys.npk, keys.vpk.clone(), keys.epk.clone())) .map(|keys| (keys.npk, keys.vpk.clone(), keys.epk.clone()))
@ -467,7 +416,7 @@ impl WalletCore {
) )
.unwrap(); .unwrap();
let witness_set = Self::sign_privacy_message(&message, &proof, &acc_manager, pin, key_path) let witness_set = Self::sign_privacy_message(&message, &proof, &acc_manager)
.expect("Expect a valid witness set"); .expect("Expect a valid witness set");
let tx = PrivacyPreservingTransaction::new(message, witness_set); let tx = PrivacyPreservingTransaction::new(message, witness_set);
@ -627,68 +576,13 @@ impl WalletCore {
message: &nssa::privacy_preserving_transaction::Message, message: &nssa::privacy_preserving_transaction::Message,
proof: &Proof, proof: &Proof,
acc_manager: &privacy_preserving_tx::AccountManager, acc_manager: &privacy_preserving_tx::AccountManager,
_pin: &Option<String>,
_key_path: &Option<String>,
) -> Result<nssa::privacy_preserving_transaction::witness_set::WitnessSet, ExecutionFailureKind> ) -> Result<nssa::privacy_preserving_transaction::witness_set::WitnessSet, ExecutionFailureKind>
{ {
//if pin.is_none() {
Ok(
nssa::privacy_preserving_transaction::witness_set::WitnessSet::for_message(
message,
proof.clone(),
&acc_manager.public_account_auth(),
),
)
/*} else {
let public_key = KeycardWallet::get_public_key_for_path_with_connect(
&pin.as_ref().expect("Expect a pin as a String."),
&key_path.as_ref().expect("Expect a key path String."),
);
let signature = KeycardWallet::sign_message_for_path_with_connect(
&pin.as_ref().expect("Expect a pin as a String."),
&key_path.as_ref().expect("Expect a key path String."),
&message.hash_message(),
)
.expect("Expect a valid signature");
let mut signatures = Vec::<Signature>::new();
signatures.push(signature);
let mut public_keys = Vec::<PublicKey>::new();
public_keys.push(public_key);
Ok(
nssa::privacy_preserving_transaction::witness_set::WitnessSet::from_list(
proof.clone(),
&signatures,
&public_keys,
),
)
}*/
}
pub fn sign_privacy_message_with_keycard(
message: &nssa::privacy_preserving_transaction::Message,
proof: Proof,
pin: &String,
key_paths: &[String],
) -> Result<nssa::privacy_preserving_transaction::witness_set::WitnessSet, ExecutionFailureKind>
{
let mut signatures = Vec::<Signature>::new();
let mut public_keys = Vec::<PublicKey>::new();
for path in key_paths.iter() {
public_keys.push(KeycardWallet::get_public_key_for_path_with_connect(
&pin, &path,
));
signatures.push(
KeycardWallet::sign_message_for_path_with_connect(&pin, &path, &message.hash_message())
.expect("Expect a valid signature"),
);
}
Ok( Ok(
nssa::privacy_preserving_transaction::witness_set::WitnessSet::from_list( nssa::privacy_preserving_transaction::witness_set::WitnessSet::for_message(
proof, message,
&signatures, proof.clone(),
&public_keys, &acc_manager.public_account_auth(),
), ),
) )
} }

View File

@ -194,13 +194,7 @@ impl Ata<'_> {
]; ];
self.0 self.0
.send_privacy_preserving_tx( .send_privacy_preserving_tx(accounts, instruction_data, &ata_with_token_dependency())
accounts,
instruction_data,
&ata_with_token_dependency(),
&None,
&None,
)
.await .await
.map(|(hash, mut secrets)| { .map(|(hash, mut secrets)| {
let secret = secrets.pop().expect("expected owner's secret"); let secret = secrets.pop().expect("expected owner's secret");
@ -235,13 +229,7 @@ impl Ata<'_> {
]; ];
self.0 self.0
.send_privacy_preserving_tx( .send_privacy_preserving_tx(accounts, instruction_data, &ata_with_token_dependency())
accounts,
instruction_data,
&ata_with_token_dependency(),
&None,
&None,
)
.await .await
.map(|(hash, mut secrets)| { .map(|(hash, mut secrets)| {
let secret = secrets.pop().expect("expected owner's secret"); let secret = secrets.pop().expect("expected owner's secret");
@ -275,13 +263,7 @@ impl Ata<'_> {
]; ];
self.0 self.0
.send_privacy_preserving_tx( .send_privacy_preserving_tx(accounts, instruction_data, &ata_with_token_dependency())
accounts,
instruction_data,
&ata_with_token_dependency(),
&None,
&None,
)
.await .await
.map(|(hash, mut secrets)| { .map(|(hash, mut secrets)| {
let secret = secrets.pop().expect("expected owner's secret"); let secret = secrets.pop().expect("expected owner's secret");

View File

@ -22,8 +22,6 @@ impl NativeTokenTransfer<'_> {
instruction_data, instruction_data,
&program.into(), &program.into(),
tx_pre_check, tx_pre_check,
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {

View File

@ -19,8 +19,6 @@ impl NativeTokenTransfer<'_> {
vec![PrivacyPreservingAccount::PrivateOwned(from)], vec![PrivacyPreservingAccount::PrivateOwned(from)],
Program::serialize_instruction(instruction).unwrap(), Program::serialize_instruction(instruction).unwrap(),
&Program::authenticated_transfer_program().into(), &Program::authenticated_transfer_program().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -51,8 +49,6 @@ impl NativeTokenTransfer<'_> {
instruction_data, instruction_data,
&program.into(), &program.into(),
tx_pre_check, tx_pre_check,
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -80,8 +76,6 @@ impl NativeTokenTransfer<'_> {
instruction_data, instruction_data,
&program.into(), &program.into(),
tx_pre_check, tx_pre_check,
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {

View File

@ -11,8 +11,6 @@ impl NativeTokenTransfer<'_> {
from: AccountId, from: AccountId,
to: AccountId, to: AccountId,
balance_to_move: u128, balance_to_move: u128,
pin: &Option<String>,
from_key_path: &Option<String>,
) -> Result<(HashType, SharedSecretKey), ExecutionFailureKind> { ) -> Result<(HashType, SharedSecretKey), ExecutionFailureKind> {
let (instruction_data, program, tx_pre_check) = auth_transfer_preparation(balance_to_move); let (instruction_data, program, tx_pre_check) = auth_transfer_preparation(balance_to_move);
@ -25,8 +23,6 @@ impl NativeTokenTransfer<'_> {
instruction_data, instruction_data,
&program.into(), &program.into(),
tx_pre_check, tx_pre_check,
pin,
from_key_path,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -44,8 +40,6 @@ impl NativeTokenTransfer<'_> {
to_npk: NullifierPublicKey, to_npk: NullifierPublicKey,
to_vpk: ViewingPublicKey, to_vpk: ViewingPublicKey,
balance_to_move: u128, balance_to_move: u128,
pin: &Option<String>,
from_key_path: &Option<String>,
) -> Result<(HashType, SharedSecretKey), ExecutionFailureKind> { ) -> Result<(HashType, SharedSecretKey), ExecutionFailureKind> {
let (instruction_data, program, tx_pre_check) = auth_transfer_preparation(balance_to_move); let (instruction_data, program, tx_pre_check) = auth_transfer_preparation(balance_to_move);
@ -61,8 +55,6 @@ impl NativeTokenTransfer<'_> {
instruction_data, instruction_data,
&program.into(), &program.into(),
tx_pre_check, tx_pre_check,
pin,
from_key_path,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {

View File

@ -60,8 +60,6 @@ impl Pinata<'_> {
], ],
nssa::program::Program::serialize_instruction(solution).unwrap(), nssa::program::Program::serialize_instruction(solution).unwrap(),
&nssa::program::Program::pinata().into(), &nssa::program::Program::pinata().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {

View File

@ -79,8 +79,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -111,8 +109,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -143,8 +139,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -255,8 +249,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -291,8 +283,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -323,8 +313,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -356,8 +344,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -393,8 +379,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -468,8 +452,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -500,8 +482,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -533,8 +513,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -630,8 +608,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -666,8 +642,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -698,8 +672,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -731,8 +703,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {
@ -768,8 +738,6 @@ impl Token<'_> {
], ],
instruction_data, instruction_data,
&Program::token().into(), &Program::token().into(),
&None,
&None,
) )
.await .await
.map(|(resp, secrets)| { .map(|(resp, secrets)| {

View File

@ -11,7 +11,7 @@ python3 -m pip install pyaes
cd python cd python
# Need to use local version till fix applet # Need to use local version till fix applet
# git clone --branch lee-schnorr --single-branch https://github.com/bitgamma/keycard-py.git #git clone --branch lee-schnorr --single-branch https://github.com/bitgamma/keycard-py.git
cd keycard-py cd keycard-py
python3 -m venv venv python3 -m venv venv
source venv/bin/activate source venv/bin/activate