diff --git a/src/bin/build_tx.rs b/src/bin/build_tx.rs index 62d660b5c..eb294295f 100644 --- a/src/bin/build_tx.rs +++ b/src/bin/build_tx.rs @@ -5,6 +5,7 @@ use drk::{ crypto::{ load_params, merkle::CommitmentTree, save_params, setup_mint_prover, setup_spend_prover, }, + serial::deserialize, state::state_transition, tx, util::{expand_path, join_config_path}, @@ -27,6 +28,14 @@ async fn main() -> Result<()> { let config_cashier: CashierdConfig = Config::::load(join_config_path(&PathBuf::from("cashierd.toml"))?)?; + let mut public_keys = Vec::new(); + + for cashier in config.clone().cashiers { + let cashier_public: jubjub::SubgroupPoint = + deserialize(&bs58::decode(cashier.cashier_public_key).into_vec()?)?; + public_keys.push(cashier_public); + } + let rocks = Rocks::new(expand_path(&config.database_path.clone())?.as_path())?; let merkle_roots = RocksColumn::::new(rocks.clone()); @@ -122,6 +131,7 @@ async fn main() -> Result<()> { mint_pvk, spend_pvk, wallet, + public_keys, })); // diff --git a/src/client.rs b/src/client.rs index b0ecef8d9..4b52d77eb 100644 --- a/src/client.rs +++ b/src/client.rs @@ -402,7 +402,9 @@ pub struct State { pub mint_pvk: groth16::PreparedVerifyingKey, // Spend verifying key used by ZK pub spend_pvk: groth16::PreparedVerifyingKey, + // Pointer to sql database pub wallet: WalletPtr, + // List of cashier public keys pub public_keys: Vec, }