mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-05-14 03:59:30 +00:00
Removed privacy txs for keycard
This commit is contained in:
parent
2381961621
commit
2926c808d3
@ -51,9 +51,7 @@ async fn main() {
|
||||
.send_privacy_preserving_tx(
|
||||
accounts,
|
||||
Program::serialize_instruction(greeting).unwrap(),
|
||||
&program.into(),
|
||||
&None,
|
||||
&None,
|
||||
&program.into()
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
@ -59,9 +59,7 @@ async fn main() {
|
||||
.send_privacy_preserving_tx(
|
||||
accounts,
|
||||
Program::serialize_instruction(instruction).unwrap(),
|
||||
&program_with_dependencies,
|
||||
&None,
|
||||
&None,
|
||||
&program_with_dependencies
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
@ -106,8 +106,6 @@ async fn main() {
|
||||
accounts,
|
||||
Program::serialize_instruction(instruction).unwrap(),
|
||||
&program.into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
@ -149,8 +147,6 @@ async fn main() {
|
||||
accounts,
|
||||
Program::serialize_instruction(instruction).unwrap(),
|
||||
&program.into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
@ -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\""
|
||||
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"
|
||||
|
||||
@ -160,7 +160,7 @@ pub unsafe extern "C" fn wallet_ffi_transfer_shielded(
|
||||
let transfer = NativeTokenTransfer(&wallet);
|
||||
|
||||
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)) => {
|
||||
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);
|
||||
|
||||
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)) => {
|
||||
let tx_hash = CString::new(tx_hash.to_string())
|
||||
.map_or(ptr::null_mut(), std::ffi::CString::into_raw);
|
||||
|
||||
@ -28,14 +28,14 @@ pub enum AccountSubcommand {
|
||||
#[arg(short, long)]
|
||||
keys: bool,
|
||||
/// 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 label (alternative to --account-id).
|
||||
#[arg(long, conflicts_with = "account_id")]
|
||||
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>,
|
||||
#[arg(long, conflicts_with = "account_id", conflicts_with = "account_id")]
|
||||
#[arg(long)]
|
||||
key_path: Option<String>,
|
||||
},
|
||||
/// Produce new public or private account.
|
||||
@ -205,6 +205,7 @@ impl WalletSubcommand for AccountSubcommand {
|
||||
|
||||
let account_id: nssa::AccountId = account_id_str.parse()?;
|
||||
|
||||
// Add account id to the display for keycard users.
|
||||
println!("Account Id: {}", resolved);
|
||||
|
||||
if let Some(label) = wallet_core.storage.labels.get(&account_id_str) {
|
||||
|
||||
@ -24,15 +24,16 @@ pub enum AuthTransferSubcommand {
|
||||
#[arg(
|
||||
long,
|
||||
conflicts_with = "account_label",
|
||||
// required_unless_present = "account_label"
|
||||
conflicts_with = "pin",
|
||||
required_unless_present_any = ["account_label", "pin"]
|
||||
)]
|
||||
account_id: Option<String>,
|
||||
/// 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>,
|
||||
#[arg(long)]
|
||||
#[arg(long, conflicts_with = "account_id", conflicts_with = "account_label", requires = "key_path")]
|
||||
pin: Option<String>,
|
||||
#[arg(long, conflicts_with = "account_id", conflicts_with = "account_label")]
|
||||
#[arg(long)]
|
||||
key_path: Option<String>,
|
||||
},
|
||||
/// 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.
|
||||
Send {
|
||||
/// 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 account label (alternative to --from).
|
||||
#[arg(long, conflicts_with = "from")]
|
||||
#[arg(long, conflicts_with = "from", conflicts_with = "pin")]
|
||||
from_label: Option<String>,
|
||||
/// to - valid 32 byte base58 string with privacy prefix.
|
||||
#[arg(long, conflicts_with = "to_label")]
|
||||
@ -63,11 +64,11 @@ pub enum AuthTransferSubcommand {
|
||||
/// amount - amount of balance to move.
|
||||
#[arg(long)]
|
||||
amount: u128,
|
||||
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")]
|
||||
#[arg(long)]
|
||||
pin: Option<String>,
|
||||
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")]
|
||||
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>,
|
||||
},
|
||||
}
|
||||
@ -225,9 +226,7 @@ impl WalletSubcommand for AuthTransferSubcommand {
|
||||
NativeTokenTransferProgramSubcommandShielded::ShieldedOwned {
|
||||
from,
|
||||
to,
|
||||
amount,
|
||||
pin,
|
||||
key_path: from_key_path,
|
||||
amount
|
||||
},
|
||||
)
|
||||
}
|
||||
@ -254,8 +253,6 @@ impl WalletSubcommand for AuthTransferSubcommand {
|
||||
to_npk,
|
||||
to_vpk,
|
||||
amount,
|
||||
pin,
|
||||
key_path: from_key_path,
|
||||
},
|
||||
)
|
||||
}
|
||||
@ -285,9 +282,9 @@ pub enum NativeTokenTransferProgramSubcommand {
|
||||
/// amount - amount of balance to move.
|
||||
#[arg(long)]
|
||||
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>,
|
||||
#[arg(long, conflicts_with = "from", conflicts_with = "from_label")]
|
||||
#[arg(long)]
|
||||
key_path: Option<String>,
|
||||
},
|
||||
/// Private execution.
|
||||
@ -328,11 +325,7 @@ pub enum NativeTokenTransferProgramSubcommandShielded {
|
||||
to: String,
|
||||
/// amount - amount of balance to move.
|
||||
#[arg(long)]
|
||||
amount: u128,
|
||||
#[arg(long)]
|
||||
pin: Option<String>,
|
||||
#[arg(long)]
|
||||
key_path: Option<String>,
|
||||
amount: u128
|
||||
},
|
||||
/// Send native token transfer from `from` to `to` for `amount`.
|
||||
///
|
||||
@ -349,11 +342,7 @@ pub enum NativeTokenTransferProgramSubcommandShielded {
|
||||
to_vpk: String,
|
||||
/// amount - amount of balance to move.
|
||||
#[arg(long)]
|
||||
amount: u128,
|
||||
#[arg(long)]
|
||||
pin: Option<String>,
|
||||
#[arg(long)]
|
||||
key_path: Option<String>,
|
||||
amount: u128
|
||||
},
|
||||
}
|
||||
|
||||
@ -477,15 +466,13 @@ impl WalletSubcommand for NativeTokenTransferProgramSubcommandShielded {
|
||||
Self::ShieldedOwned {
|
||||
from,
|
||||
to,
|
||||
amount,
|
||||
pin,
|
||||
key_path,
|
||||
amount
|
||||
} => {
|
||||
let from: AccountId = from.parse().unwrap();
|
||||
let to: AccountId = to.parse().unwrap();
|
||||
|
||||
let (tx_hash, secret) = NativeTokenTransfer(wallet_core)
|
||||
.send_shielded_transfer(from, to, amount, &pin, &key_path)
|
||||
.send_shielded_transfer(from, to, amount)
|
||||
.await?;
|
||||
|
||||
println!("Transaction hash is {tx_hash}");
|
||||
@ -510,8 +497,6 @@ impl WalletSubcommand for NativeTokenTransferProgramSubcommandShielded {
|
||||
to_npk,
|
||||
to_vpk,
|
||||
amount,
|
||||
pin,
|
||||
key_path,
|
||||
} => {
|
||||
let from: AccountId = from.parse().unwrap();
|
||||
|
||||
@ -528,7 +513,7 @@ impl WalletSubcommand for NativeTokenTransferProgramSubcommandShielded {
|
||||
|
||||
let (tx_hash, _) = NativeTokenTransfer(wallet_core)
|
||||
.send_shielded_transfer_to_outer_account(
|
||||
from, to_npk, to_vpk, amount, &pin, &key_path,
|
||||
from, to_npk, to_vpk, amount
|
||||
)
|
||||
.await?;
|
||||
|
||||
|
||||
@ -17,14 +17,14 @@ pub enum PinataProgramAgnosticSubcommand {
|
||||
/// Claim pinata.
|
||||
Claim {
|
||||
/// 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 account label (alternative to --to).
|
||||
#[arg(long, conflicts_with = "to")]
|
||||
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>,
|
||||
#[arg(long, conflicts_with = "to", conflicts_with = "to_label")]
|
||||
#[arg(long)]
|
||||
key_path: Option<String>,
|
||||
},
|
||||
}
|
||||
|
||||
@ -16,10 +16,9 @@ use chain_storage::WalletChainStore;
|
||||
use common::{HashType, transaction::NSSATransaction};
|
||||
use config::WalletConfig;
|
||||
use key_protocol::key_management::key_tree::{chain_index::ChainIndex, traits::KeyNode as _};
|
||||
use keycard_wallet::KeycardWallet;
|
||||
use log::info;
|
||||
use nssa::{
|
||||
Account, AccountId, PrivacyPreservingTransaction, PublicKey, Signature,
|
||||
Account, AccountId, PrivacyPreservingTransaction,
|
||||
privacy_preserving_transaction::{
|
||||
circuit::{ProgramWithDependencies, Proof},
|
||||
message::EncryptedAccountData,
|
||||
@ -27,7 +26,7 @@ use nssa::{
|
||||
};
|
||||
use nssa_core::{
|
||||
Commitment, MembershipProof, SharedSecretKey,
|
||||
account::{AccountWithMetadata, Nonce},
|
||||
account::Nonce,
|
||||
program::InstructionData,
|
||||
};
|
||||
pub use privacy_preserving_tx::PrivacyPreservingAccount;
|
||||
@ -36,7 +35,7 @@ use tokio::io::AsyncWriteExt as _;
|
||||
|
||||
use crate::{
|
||||
config::{PersistentStorage, WalletConfigOverrides},
|
||||
helperfunctions::{parse_addr_with_privacy_prefix, produce_data_for_storage},
|
||||
helperfunctions::produce_data_for_storage,
|
||||
poller::TxPoller,
|
||||
};
|
||||
|
||||
@ -366,17 +365,10 @@ impl WalletCore {
|
||||
accounts: Vec<PrivacyPreservingAccount>,
|
||||
instruction_data: InstructionData,
|
||||
program: &ProgramWithDependencies,
|
||||
pin: &Option<String>,
|
||||
key_path: &Option<String>,
|
||||
) -> Result<(HashType, Vec<SharedSecretKey>), ExecutionFailureKind> {
|
||||
self.send_privacy_preserving_tx_with_pre_check(
|
||||
accounts,
|
||||
instruction_data,
|
||||
program,
|
||||
|_| Ok(()),
|
||||
pin,
|
||||
key_path,
|
||||
)
|
||||
self.send_privacy_preserving_tx_with_pre_check(accounts, instruction_data, program, |_| {
|
||||
Ok(())
|
||||
})
|
||||
.await
|
||||
}
|
||||
|
||||
@ -386,53 +378,10 @@ impl WalletCore {
|
||||
instruction_data: InstructionData,
|
||||
program: &ProgramWithDependencies,
|
||||
tx_pre_check: impl FnOnce(&[&Account]) -> Result<(), ExecutionFailureKind>,
|
||||
pin: &Option<String>,
|
||||
key_path: &Option<String>,
|
||||
) -> Result<(HashType, Vec<SharedSecretKey>), ExecutionFailureKind> {
|
||||
let acc_manager = privacy_preserving_tx::AccountManager::new(self, accounts).await?;
|
||||
|
||||
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(
|
||||
&pre_states
|
||||
.iter()
|
||||
@ -444,7 +393,7 @@ impl WalletCore {
|
||||
let (output, proof) = nssa::privacy_preserving_transaction::circuit::execute_and_prove(
|
||||
pre_states,
|
||||
instruction_data,
|
||||
visibility_mask,
|
||||
acc_manager.visibility_mask().to_vec(),
|
||||
private_account_keys
|
||||
.iter()
|
||||
.map(|keys| (keys.npk, keys.ssk))
|
||||
@ -457,8 +406,8 @@ impl WalletCore {
|
||||
|
||||
let message =
|
||||
nssa::privacy_preserving_transaction::message::Message::try_from_circuit_output(
|
||||
account_ids,
|
||||
nonces,
|
||||
acc_manager.public_account_ids(),
|
||||
Vec::from_iter(acc_manager.public_account_nonces()),
|
||||
private_account_keys
|
||||
.iter()
|
||||
.map(|keys| (keys.npk, keys.vpk.clone(), keys.epk.clone()))
|
||||
@ -467,7 +416,7 @@ impl WalletCore {
|
||||
)
|
||||
.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");
|
||||
let tx = PrivacyPreservingTransaction::new(message, witness_set);
|
||||
|
||||
@ -627,68 +576,13 @@ impl WalletCore {
|
||||
message: &nssa::privacy_preserving_transaction::Message,
|
||||
proof: &Proof,
|
||||
acc_manager: &privacy_preserving_tx::AccountManager,
|
||||
_pin: &Option<String>,
|
||||
_key_path: &Option<String>,
|
||||
) -> 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(
|
||||
nssa::privacy_preserving_transaction::witness_set::WitnessSet::from_list(
|
||||
proof,
|
||||
&signatures,
|
||||
&public_keys,
|
||||
nssa::privacy_preserving_transaction::witness_set::WitnessSet::for_message(
|
||||
message,
|
||||
proof.clone(),
|
||||
&acc_manager.public_account_auth(),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
@ -194,13 +194,7 @@ impl Ata<'_> {
|
||||
];
|
||||
|
||||
self.0
|
||||
.send_privacy_preserving_tx(
|
||||
accounts,
|
||||
instruction_data,
|
||||
&ata_with_token_dependency(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.send_privacy_preserving_tx(accounts, instruction_data, &ata_with_token_dependency())
|
||||
.await
|
||||
.map(|(hash, mut secrets)| {
|
||||
let secret = secrets.pop().expect("expected owner's secret");
|
||||
@ -235,13 +229,7 @@ impl Ata<'_> {
|
||||
];
|
||||
|
||||
self.0
|
||||
.send_privacy_preserving_tx(
|
||||
accounts,
|
||||
instruction_data,
|
||||
&ata_with_token_dependency(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.send_privacy_preserving_tx(accounts, instruction_data, &ata_with_token_dependency())
|
||||
.await
|
||||
.map(|(hash, mut secrets)| {
|
||||
let secret = secrets.pop().expect("expected owner's secret");
|
||||
@ -275,13 +263,7 @@ impl Ata<'_> {
|
||||
];
|
||||
|
||||
self.0
|
||||
.send_privacy_preserving_tx(
|
||||
accounts,
|
||||
instruction_data,
|
||||
&ata_with_token_dependency(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.send_privacy_preserving_tx(accounts, instruction_data, &ata_with_token_dependency())
|
||||
.await
|
||||
.map(|(hash, mut secrets)| {
|
||||
let secret = secrets.pop().expect("expected owner's secret");
|
||||
|
||||
@ -22,8 +22,6 @@ impl NativeTokenTransfer<'_> {
|
||||
instruction_data,
|
||||
&program.into(),
|
||||
tx_pre_check,
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
|
||||
@ -19,8 +19,6 @@ impl NativeTokenTransfer<'_> {
|
||||
vec![PrivacyPreservingAccount::PrivateOwned(from)],
|
||||
Program::serialize_instruction(instruction).unwrap(),
|
||||
&Program::authenticated_transfer_program().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -51,8 +49,6 @@ impl NativeTokenTransfer<'_> {
|
||||
instruction_data,
|
||||
&program.into(),
|
||||
tx_pre_check,
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -80,8 +76,6 @@ impl NativeTokenTransfer<'_> {
|
||||
instruction_data,
|
||||
&program.into(),
|
||||
tx_pre_check,
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
|
||||
@ -11,8 +11,6 @@ impl NativeTokenTransfer<'_> {
|
||||
from: AccountId,
|
||||
to: AccountId,
|
||||
balance_to_move: u128,
|
||||
pin: &Option<String>,
|
||||
from_key_path: &Option<String>,
|
||||
) -> Result<(HashType, SharedSecretKey), ExecutionFailureKind> {
|
||||
let (instruction_data, program, tx_pre_check) = auth_transfer_preparation(balance_to_move);
|
||||
|
||||
@ -25,8 +23,6 @@ impl NativeTokenTransfer<'_> {
|
||||
instruction_data,
|
||||
&program.into(),
|
||||
tx_pre_check,
|
||||
pin,
|
||||
from_key_path,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -44,8 +40,6 @@ impl NativeTokenTransfer<'_> {
|
||||
to_npk: NullifierPublicKey,
|
||||
to_vpk: ViewingPublicKey,
|
||||
balance_to_move: u128,
|
||||
pin: &Option<String>,
|
||||
from_key_path: &Option<String>,
|
||||
) -> Result<(HashType, SharedSecretKey), ExecutionFailureKind> {
|
||||
let (instruction_data, program, tx_pre_check) = auth_transfer_preparation(balance_to_move);
|
||||
|
||||
@ -61,8 +55,6 @@ impl NativeTokenTransfer<'_> {
|
||||
instruction_data,
|
||||
&program.into(),
|
||||
tx_pre_check,
|
||||
pin,
|
||||
from_key_path,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
|
||||
@ -60,8 +60,6 @@ impl Pinata<'_> {
|
||||
],
|
||||
nssa::program::Program::serialize_instruction(solution).unwrap(),
|
||||
&nssa::program::Program::pinata().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
|
||||
@ -79,8 +79,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -111,8 +109,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -143,8 +139,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -255,8 +249,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -291,8 +283,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -323,8 +313,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -356,8 +344,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -393,8 +379,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -468,8 +452,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -500,8 +482,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -533,8 +513,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -630,8 +608,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -666,8 +642,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -698,8 +672,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -731,8 +703,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
@ -768,8 +738,6 @@ impl Token<'_> {
|
||||
],
|
||||
instruction_data,
|
||||
&Program::token().into(),
|
||||
&None,
|
||||
&None,
|
||||
)
|
||||
.await
|
||||
.map(|(resp, secrets)| {
|
||||
|
||||
@ -11,7 +11,7 @@ python3 -m pip install pyaes
|
||||
cd python
|
||||
|
||||
# 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
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user