Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(zcoin): implement zcoin/pirate transport layer for WASM #1996

Merged
merged 73 commits into from
Dec 22, 2023
Merged
Show file tree
Hide file tree
Changes from 70 commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
bbbff8c
save dev state
borngraced Sep 28, 2023
36921f7
save dev state
borngraced Oct 2, 2023
287461c
revert changes
borngraced Oct 3, 2023
68cd852
save dev state
borngraced Oct 19, 2023
4c7588e
save dev state — finish impl zcoin transport layer
borngraced Oct 20, 2023
ae2f775
minor changes
borngraced Oct 20, 2023
1c95fa8
remove unused
borngraced Oct 20, 2023
3300927
minor changes
borngraced Oct 21, 2023
1af5898
some refactorings to TonicClient imp
borngraced Oct 22, 2023
abb873e
fix wasm clippy warnings
borngraced Oct 22, 2023
25fa583
activate_z_coin_light unit test wasm
borngraced Oct 24, 2023
08f2f8d
enable waasm compilation for zcoin activation
borngraced Oct 24, 2023
055c085
update time crate
borngraced Oct 24, 2023
39ae872
use now_sec from common crate
borngraced Oct 24, 2023
e668aaa
add ZOMBIE_LIGHTWALLETD_WSS_URLS
borngraced Oct 25, 2023
1b615bf
use correct electrum ZOMBIE_ELECTRUMS_WSS url
borngraced Oct 25, 2023
a95391d
impl temp TxProver for WASM
borngraced Oct 25, 2023
9e1c565
use proxied lightwalletd url for test
borngraced Oct 25, 2023
b45fe2a
fix blockdb get_latest_block
borngraced Oct 25, 2023
503f769
log activation info
borngraced Oct 25, 2023
adc053d
fix query_blocks_by_limit block retrieval
borngraced Oct 25, 2023
3ab3838
use init_z_coin_light_with_short_height
borngraced Oct 25, 2023
0c0490c
Merge branch 'zcoin_storage' into zcoin-transport-layer
borngraced Oct 25, 2023
d4c047c
fix conflicts
borngraced Oct 25, 2023
ba50185
fix wasm unit test query_blocks_by_limit
borngraced Oct 25, 2023
a2040b0
additional fixes for query_blocks_by_limit
borngraced Oct 25, 2023
207cd89
use cash.z.wallet.sdk.rpc
borngraced Oct 25, 2023
25bd013
increase timeout and starting height
borngraced Oct 25, 2023
7f6fe58
increase timeout
borngraced Oct 25, 2023
3b1cacf
log
borngraced Oct 26, 2023
2775bb5
minor fixes to block_idb mod
borngraced Oct 26, 2023
18e0c06
update librustzcash and remove redundancy code
borngraced Oct 27, 2023
4131c7a
disable long runtime unit tests
borngraced Oct 27, 2023
47af2c0
implement tonic client
borngraced Oct 30, 2023
f530d75
use LocalTxProver::from_bytes directly for creating LocalTxProver
borngraced Nov 1, 2023
fab3307
fix review notes
borngraced Nov 2, 2023
88f7121
update native checkpoint_block_from_height args
borngraced Nov 2, 2023
2e09e62
use correct const var naming for pirate tests
borngraced Nov 2, 2023
4b2b3b8
fix review notes
borngraced Nov 2, 2023
d770224
fix wasm clippy warning
borngraced Nov 3, 2023
9960827
fix review notes
borngraced Nov 5, 2023
f145216
fix body_stream review notes
borngraced Nov 6, 2023
b074ca7
use pirate.wallet.sdk.rpc for z_coin proto
borngraced Nov 6, 2023
7115f16
simplified poll_data fn
borngraced Nov 8, 2023
2b03c8f
fix merge conflicts
borngraced Nov 8, 2023
dace15f
save dev state — imple zcash params db
borngraced Nov 15, 2023
b38c61a
save dev state — sapling_spend_to_chunks
borngraced Nov 15, 2023
5ebf35e
save dev state — enable assert_eq!(sapling_spend, sapling_spend_db)
borngraced Nov 15, 2023
c5eaed0
fix clippy warning
borngraced Nov 15, 2023
4f4f5c2
minor changes
borngraced Nov 15, 2023
6d3bd82
Merge remote-tracking branch 'origin/zcoin_storage' into zcoin-transp…
borngraced Nov 17, 2023
84be059
fix conflicts
borngraced Nov 17, 2023
dbc0e2f
impl TxBuilderSpawner to disabled blocking when generating tx for WASM
borngraced Nov 20, 2023
6b79e2f
use spawn_local_abortable
borngraced Nov 21, 2023
47b1fbf
update z_params impl
borngraced Nov 21, 2023
b5d1dcd
Merge remote-tracking branch 'origin/zcoin_storage' into zcoin-transp…
borngraced Nov 27, 2023
107aed2
fix merge conflicts
borngraced Nov 27, 2023
e468990
fix review notes
borngraced Nov 27, 2023
f2995bc
make struct and fn pub(crate)
borngraced Nov 28, 2023
a6ca1c7
fix review notes
borngraced Nov 30, 2023
2eecc9f
fix review notes
borngraced Dec 4, 2023
93e76c5
test ccursor forget
borngraced Dec 5, 2023
da09c4c
continue debug indexeddb cursor
borngraced Dec 5, 2023
4c03c61
improve z_params impl
borngraced Dec 7, 2023
1d89f45
refactor body_stream and remove wasm-stream dep
borngraced Dec 18, 2023
2a64404
read all stream instead of single
borngraced Dec 18, 2023
5aa68bc
merge enable_z_coin_light unit test
borngraced Dec 18, 2023
d775aec
fix review notes
borngraced Dec 21, 2023
b9ec444
Merge remote-tracking branch 'origin/zcoin_storage' into zcoin-transp…
borngraced Dec 21, 2023
2300d5c
fix merge conflicts
borngraced Dec 21, 2023
e976a6d
fix review notes
borngraced Dec 21, 2023
00eefce
remove MalfunctionedParamsData
borngraced Dec 21, 2023
f93b130
update enable_z_coin_light to accept starting date
borngraced Dec 21, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
274 changes: 142 additions & 132 deletions Cargo.lock

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions mm2src/coins/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -121,13 +121,17 @@ spl-token = { version = "3", optional = true }
spl-associated-token-account = { version = "1", optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
blake2b_simd = "0.5"
ff = "0.8"
futures-util = "0.3"
jubjub = "0.5.1"
js-sys = { version = "0.3.27" }
mm2_db = { path = "../mm2_db" }
mm2_metamask = { path = "../mm2_metamask" }
mm2_test_helpers = { path = "../mm2_test_helpers" }
time = { version = "0.3.20" }
time = { version = "0.3.20", features = ["wasm-bindgen"] }
tonic = { version = "0.7", default-features = false, features = ["prost", "codegen"] }
tower-service = "0.3"
wasm-bindgen = "0.2.86"
wasm-bindgen-futures = { version = "0.4.1" }
wasm-bindgen-test = { version = "0.3.2" }
Expand Down Expand Up @@ -165,4 +169,4 @@ mm2_test_helpers = { path = "../mm2_test_helpers" }

[build-dependencies]
prost-build = { version = "0.10.4", default-features = false }
tonic-build = { version = "0.7", features = ["prost", "compression"] }
tonic-build = { version = "0.7", default-features = false, features = ["prost", "compression"] }
2 changes: 1 addition & 1 deletion mm2src/coins/eth/web3_transport/http_transport.rs
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ async fn send_request_once(
event_handlers: &Vec<RpcTransportEventHandlerShared>,
) -> Result<Json, Error> {
use http::header::ACCEPT;
use mm2_net::wasm_http::FetchRequest;
use mm2_net::wasm::http::FetchRequest;

// account for outgoing traffic
event_handlers.on_outgoing_request(request_payload.as_bytes());
Expand Down
2 changes: 1 addition & 1 deletion mm2src/coins/lp_price.rs
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ async fn process_price_request(price_url: &str) -> Result<TickerInfosRegistry, M
#[cfg(target_arch = "wasm32")]
async fn process_price_request(price_url: &str) -> Result<TickerInfosRegistry, MmError<PriceServiceRequestError>> {
debug!("Fetching price from: {}", price_url);
let (status, headers, body) = mm2_net::wasm_http::slurp_url(price_url).await?;
let (status, headers, body) = mm2_net::wasm::http::slurp_url(price_url).await?;
let (status_code, body, _) = (status, std::str::from_utf8(&body)?.trim().into(), headers);
if status_code != StatusCode::OK {
return MmError::err(PriceServiceRequestError::HttpProcessError(body));
Expand Down
2 changes: 1 addition & 1 deletion mm2src/coins/nft.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ use web3::types::TransactionId;
use mm2_net::native_http::send_request_to_uri;

#[cfg(target_arch = "wasm32")]
use mm2_net::wasm_http::send_request_to_uri;
use mm2_net::wasm::http::send_request_to_uri;

const MORALIS_API_ENDPOINT: &str = "api/v2";
/// query parameters for moralis request: The format of the token ID
Expand Down
2 changes: 1 addition & 1 deletion mm2src/coins/nft/nft_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ use mm2_net::native_http::send_request_to_uri;
common::cfg_wasm32! {
use wasm_bindgen_test::*;
wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
use mm2_net::wasm_http::send_request_to_uri;
use mm2_net::wasm::http::send_request_to_uri;
}

cross_test!(test_moralis_ipfs_bafy, {
Expand Down
2 changes: 1 addition & 1 deletion mm2src/coins/tendermint/rpc/tendermint_wasm_rpc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use http::header::{ACCEPT, CONTENT_TYPE};
use http::uri::InvalidUri;
use http::{StatusCode, Uri};
use mm2_net::transport::SlurpError;
use mm2_net::wasm_http::FetchRequest;
use mm2_net::wasm::http::FetchRequest;
use std::str::FromStr;
use tendermint_rpc::endpoint::{abci_info, broadcast};
pub use tendermint_rpc::endpoint::{abci_query::{AbciQuery, Request as AbciRequest},
Expand Down
4 changes: 2 additions & 2 deletions mm2src/coins/test_coin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,14 @@ impl SwapOps for TestCoin {

async fn search_for_swap_tx_spend_my(
&self,
_: SearchForSwapTxSpendInput<'_>,
_input: SearchForSwapTxSpendInput<'_>,
) -> Result<Option<FoundSwapTxSpend>, String> {
unimplemented!()
}

async fn search_for_swap_tx_spend_other(
&self,
_: SearchForSwapTxSpendInput<'_>,
_input: SearchForSwapTxSpendInput<'_>,
) -> Result<Option<FoundSwapTxSpend>, String> {
unimplemented!()
}
Expand Down
2 changes: 1 addition & 1 deletion mm2src/coins/utxo/rpc_clients.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2757,7 +2757,7 @@ async fn connect_loop<Spawner: SpawnFuture>(
static ref CONN_IDX: Arc<AtomicUsize> = Arc::new(AtomicUsize::new(0));
}

use mm2_net::wasm_ws::ws_transport;
use mm2_net::wasm::wasm_ws::ws_transport;

let delay = Arc::new(AtomicU64::new(0));
loop {
Expand Down
Loading
Loading