diff --git a/libzkbob-rs-wasm/Cargo.toml b/libzkbob-rs-wasm/Cargo.toml index b8f3c09..ca9b745 100644 --- a/libzkbob-rs-wasm/Cargo.toml +++ b/libzkbob-rs-wasm/Cargo.toml @@ -34,7 +34,7 @@ console_error_panic_hook = { version = "0.1.6", optional = true } wee_alloc = { version = "0.4.5", optional = true } libzkbob-rs = { path = "../libzkbob-rs" } -libzeropool = { git = "https://github.com/zkBob/libzeropool", branch = "multicore-wasm", version = "0.5.6", default-features = false } +libzeropool = { path = "../../libzeropool", default-features = false } getrandom = { version = "0.2.3", features = ["js"] } fawkes-crypto = { git = "https://github.com/zkBob/fawkes-crypto", branch = "multicore-wasm", version = "4.2.4", features = ["wasm", "serde_support"] } bs58 = "0.4.0" diff --git a/libzkbob-rs-wasm/src/client/coldstorage.rs b/libzkbob-rs-wasm/src/client/coldstorage.rs index e7fa062..dcff69f 100644 --- a/libzkbob-rs-wasm/src/client/coldstorage.rs +++ b/libzkbob-rs-wasm/src/client/coldstorage.rs @@ -17,4 +17,5 @@ pub struct BulkData { pub root_before: Num, pub root_after: Num, pub txs: Vec, + pub ec_points_compressed: bool, } \ No newline at end of file diff --git a/libzkbob-rs-wasm/src/client/mod.rs b/libzkbob-rs-wasm/src/client/mod.rs index 3c097a8..25d802c 100644 --- a/libzkbob-rs-wasm/src/client/mod.rs +++ b/libzkbob-rs-wasm/src/client/mod.rs @@ -381,6 +381,7 @@ impl UserAccount { let eta = &self.inner.borrow().keys.eta; let params = &self.inner.borrow().params; let range = from_index.unwrap_or(0)..to_index.unwrap_or(u64::MAX); + let compressed = bulk.ec_points_compressed; let bulk_results: Vec = vec_into_iter(bulk.txs) .filter(|tx| range.contains(&tx.index)) .map(|tx| -> ParseResult { @@ -390,7 +391,8 @@ impl UserAccount { &tx.memo, Some(&tx.tx_hash), eta, - params + params, + compressed ) }) .collect(); diff --git a/libzkbob-rs-wasm/src/client/tx_parser.rs b/libzkbob-rs-wasm/src/client/tx_parser.rs index d1728de..7517cf0 100644 --- a/libzkbob-rs-wasm/src/client/tx_parser.rs +++ b/libzkbob-rs-wasm/src/client/tx_parser.rs @@ -79,7 +79,7 @@ impl TxParser { let memo = hex::decode(memo).unwrap(); let commitment = hex::decode(commitment).unwrap(); - parse_tx(index, &commitment, &memo, None, &eta, params) + parse_tx(index, &commitment, &memo, None, &eta, params, true) }).collect(); let parse_result = parse_results @@ -109,7 +109,8 @@ pub fn parse_tx( memo: &Vec, tx_hash: Option<&Vec>, eta: &Num, - params: &PoolParams + params: &PoolParams, + compressed: bool, ) -> ParseResult { let num_hashes = (&memo[0..4]).read_u32::().unwrap(); let hashes = (&memo[4..]) @@ -117,7 +118,11 @@ pub fn parse_tx( .take(num_hashes as usize) .map(|bytes| Num::from_uint_reduced(NumRepr(Uint::from_little_endian(bytes)))); - let pair = cipher::decrypt_out(*eta, &memo, params); + let pair = if compressed { + cipher::decrypt_out(*eta, &memo, params) + } else { + cipher::decrypt_out_decompressed(*eta, &memo, params) + }; match pair { Some((account, notes)) => { @@ -154,7 +159,12 @@ pub fn parse_tx( } }, None => { - let in_notes: Vec<(_, _)> = cipher::decrypt_in(*eta, &memo, params) + let in_notes = if compressed { + cipher::decrypt_in(*eta, &memo, params) + } else { + cipher::decrypt_in_decompressed(*eta, &memo, params) + }; + let in_notes: Vec<(_, _)> = in_notes .into_iter() .enumerate() .filter_map(|(i, note)| { diff --git a/libzkbob-rs/Cargo.toml b/libzkbob-rs/Cargo.toml index a553504..77fa608 100644 --- a/libzkbob-rs/Cargo.toml +++ b/libzkbob-rs/Cargo.toml @@ -8,7 +8,7 @@ license = "MIT OR Apache-2.0" edition = "2018" [dependencies] -libzeropool = { git = "https://github.com/zkBob/libzeropool", branch = "multicore-wasm", version = "0.5.6", default-features = false, features = ["in3out127"] } +libzeropool = { path = "../../libzeropool", default-features = false, features = ["in3out127"] } getrandom = { version = "0.2.3" } bs58 = "0.4.0" kvdb = "0.9.0"