From 15b8faf86ea506d2e7a8c70fc6338fe7f210e92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Thu, 16 May 2024 17:39:51 +0200 Subject: [PATCH 01/10] node: add a new crate for node lib crate --- Cargo.toml | 3 ++- Makefile | 1 + crates/node/Cargo.toml | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 crates/node/Cargo.toml diff --git a/Cargo.toml b/Cargo.toml index c4044ab281..ff9d57a314 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,8 +21,9 @@ members = [ "crates/parameters", "crates/proof_of_stake", "crates/replay_protection", - "crates/sdk", "crates/namada", + "crates/node", + "crates/sdk", "crates/shielded_token", "crates/state", "crates/storage", diff --git a/Makefile b/Makefile index 9df1a9d282..97128c1264 100644 --- a/Makefile +++ b/Makefile @@ -48,6 +48,7 @@ crates += namada_merkle_tree crates += namada_parameters crates += namada_proof_of_stake crates += namada_replay_protection +crates += namada_node crates += namada_sdk crates += namada_shielded_token crates += namada_state diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml new file mode 100644 index 0000000000..1e8979a736 --- /dev/null +++ b/crates/node/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "namada_node" +description = "Namada node library code" +resolver = "2" +authors.workspace = true +edition.workspace = true +documentation.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + + +[dependencies] From a8ae5b08d6afb1f8864c13ea16502c7245bc7dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Thu, 16 May 2024 17:49:12 +0200 Subject: [PATCH 02/10] `mv crates/apps_lib/src/node crates/node/src` --- crates/{apps_lib/src/node => node/src}/ledger/abortable.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/broadcaster.rs | 0 .../src/node => node/src}/ledger/ethereum_oracle/control.rs | 0 .../src/node => node/src}/ledger/ethereum_oracle/events.rs | 0 .../{apps_lib/src/node => node/src}/ledger/ethereum_oracle/mod.rs | 0 .../src}/ledger/ethereum_oracle/test_tools/events_endpoint.rs | 0 .../node => node/src}/ledger/ethereum_oracle/test_tools/mod.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/mod.rs | 0 .../{apps_lib/src/node => node/src}/ledger/shell/block_alloc.rs | 0 .../src/node => node/src}/ledger/shell/block_alloc/states.rs | 0 .../src}/ledger/shell/block_alloc/states/normal_txs.rs | 0 .../src}/ledger/shell/block_alloc/states/protocol_txs.rs | 0 .../src/node => node/src}/ledger/shell/finalize_block.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shell/governance.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shell/init_chain.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shell/mod.rs | 0 .../src/node => node/src}/ledger/shell/prepare_proposal.rs | 0 .../src/node => node/src}/ledger/shell/process_proposal.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shell/queries.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shell/stats.rs | 0 .../src/node => node/src}/ledger/shell/testing/client.rs | 0 .../{apps_lib/src/node => node/src}/ledger/shell/testing/mod.rs | 0 .../{apps_lib/src/node => node/src}/ledger/shell/testing/node.rs | 0 .../{apps_lib/src/node => node/src}/ledger/shell/testing/utils.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shell/utils.rs | 0 .../src/node => node/src}/ledger/shell/vote_extensions.rs | 0 .../src}/ledger/shell/vote_extensions/bridge_pool_vext.rs | 0 .../node => node/src}/ledger/shell/vote_extensions/eth_events.rs | 0 .../src}/ledger/shell/vote_extensions/val_set_update.rs | 0 .../{apps_lib/src/node => node/src}/ledger/shims/abcipp_shim.rs | 0 .../src/node => node/src}/ledger/shims/abcipp_shim_types.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/shims/mod.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/storage/mod.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/storage/rocksdb.rs | 0 crates/{apps_lib/src/node => node/src}/ledger/tendermint_node.rs | 0 crates/{apps_lib/src/node => node/src}/mod.rs | 0 36 files changed, 0 insertions(+), 0 deletions(-) rename crates/{apps_lib/src/node => node/src}/ledger/abortable.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/broadcaster.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/ethereum_oracle/control.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/ethereum_oracle/events.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/ethereum_oracle/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/ethereum_oracle/test_tools/events_endpoint.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/ethereum_oracle/test_tools/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/block_alloc.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/block_alloc/states.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/block_alloc/states/normal_txs.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/block_alloc/states/protocol_txs.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/finalize_block.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/governance.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/init_chain.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/prepare_proposal.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/process_proposal.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/queries.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/stats.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/testing/client.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/testing/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/testing/node.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/testing/utils.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/utils.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/vote_extensions.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/vote_extensions/bridge_pool_vext.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/vote_extensions/eth_events.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shell/vote_extensions/val_set_update.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shims/abcipp_shim.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shims/abcipp_shim_types.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/shims/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/storage/mod.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/storage/rocksdb.rs (100%) rename crates/{apps_lib/src/node => node/src}/ledger/tendermint_node.rs (100%) rename crates/{apps_lib/src/node => node/src}/mod.rs (100%) diff --git a/crates/apps_lib/src/node/ledger/abortable.rs b/crates/node/src/ledger/abortable.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/abortable.rs rename to crates/node/src/ledger/abortable.rs diff --git a/crates/apps_lib/src/node/ledger/broadcaster.rs b/crates/node/src/ledger/broadcaster.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/broadcaster.rs rename to crates/node/src/ledger/broadcaster.rs diff --git a/crates/apps_lib/src/node/ledger/ethereum_oracle/control.rs b/crates/node/src/ledger/ethereum_oracle/control.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/ethereum_oracle/control.rs rename to crates/node/src/ledger/ethereum_oracle/control.rs diff --git a/crates/apps_lib/src/node/ledger/ethereum_oracle/events.rs b/crates/node/src/ledger/ethereum_oracle/events.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/ethereum_oracle/events.rs rename to crates/node/src/ledger/ethereum_oracle/events.rs diff --git a/crates/apps_lib/src/node/ledger/ethereum_oracle/mod.rs b/crates/node/src/ledger/ethereum_oracle/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/ethereum_oracle/mod.rs rename to crates/node/src/ledger/ethereum_oracle/mod.rs diff --git a/crates/apps_lib/src/node/ledger/ethereum_oracle/test_tools/events_endpoint.rs b/crates/node/src/ledger/ethereum_oracle/test_tools/events_endpoint.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/ethereum_oracle/test_tools/events_endpoint.rs rename to crates/node/src/ledger/ethereum_oracle/test_tools/events_endpoint.rs diff --git a/crates/apps_lib/src/node/ledger/ethereum_oracle/test_tools/mod.rs b/crates/node/src/ledger/ethereum_oracle/test_tools/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/ethereum_oracle/test_tools/mod.rs rename to crates/node/src/ledger/ethereum_oracle/test_tools/mod.rs diff --git a/crates/apps_lib/src/node/ledger/mod.rs b/crates/node/src/ledger/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/mod.rs rename to crates/node/src/ledger/mod.rs diff --git a/crates/apps_lib/src/node/ledger/shell/block_alloc.rs b/crates/node/src/ledger/shell/block_alloc.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/block_alloc.rs rename to crates/node/src/ledger/shell/block_alloc.rs diff --git a/crates/apps_lib/src/node/ledger/shell/block_alloc/states.rs b/crates/node/src/ledger/shell/block_alloc/states.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/block_alloc/states.rs rename to crates/node/src/ledger/shell/block_alloc/states.rs diff --git a/crates/apps_lib/src/node/ledger/shell/block_alloc/states/normal_txs.rs b/crates/node/src/ledger/shell/block_alloc/states/normal_txs.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/block_alloc/states/normal_txs.rs rename to crates/node/src/ledger/shell/block_alloc/states/normal_txs.rs diff --git a/crates/apps_lib/src/node/ledger/shell/block_alloc/states/protocol_txs.rs b/crates/node/src/ledger/shell/block_alloc/states/protocol_txs.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/block_alloc/states/protocol_txs.rs rename to crates/node/src/ledger/shell/block_alloc/states/protocol_txs.rs diff --git a/crates/apps_lib/src/node/ledger/shell/finalize_block.rs b/crates/node/src/ledger/shell/finalize_block.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/finalize_block.rs rename to crates/node/src/ledger/shell/finalize_block.rs diff --git a/crates/apps_lib/src/node/ledger/shell/governance.rs b/crates/node/src/ledger/shell/governance.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/governance.rs rename to crates/node/src/ledger/shell/governance.rs diff --git a/crates/apps_lib/src/node/ledger/shell/init_chain.rs b/crates/node/src/ledger/shell/init_chain.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/init_chain.rs rename to crates/node/src/ledger/shell/init_chain.rs diff --git a/crates/apps_lib/src/node/ledger/shell/mod.rs b/crates/node/src/ledger/shell/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/mod.rs rename to crates/node/src/ledger/shell/mod.rs diff --git a/crates/apps_lib/src/node/ledger/shell/prepare_proposal.rs b/crates/node/src/ledger/shell/prepare_proposal.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/prepare_proposal.rs rename to crates/node/src/ledger/shell/prepare_proposal.rs diff --git a/crates/apps_lib/src/node/ledger/shell/process_proposal.rs b/crates/node/src/ledger/shell/process_proposal.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/process_proposal.rs rename to crates/node/src/ledger/shell/process_proposal.rs diff --git a/crates/apps_lib/src/node/ledger/shell/queries.rs b/crates/node/src/ledger/shell/queries.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/queries.rs rename to crates/node/src/ledger/shell/queries.rs diff --git a/crates/apps_lib/src/node/ledger/shell/stats.rs b/crates/node/src/ledger/shell/stats.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/stats.rs rename to crates/node/src/ledger/shell/stats.rs diff --git a/crates/apps_lib/src/node/ledger/shell/testing/client.rs b/crates/node/src/ledger/shell/testing/client.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/testing/client.rs rename to crates/node/src/ledger/shell/testing/client.rs diff --git a/crates/apps_lib/src/node/ledger/shell/testing/mod.rs b/crates/node/src/ledger/shell/testing/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/testing/mod.rs rename to crates/node/src/ledger/shell/testing/mod.rs diff --git a/crates/apps_lib/src/node/ledger/shell/testing/node.rs b/crates/node/src/ledger/shell/testing/node.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/testing/node.rs rename to crates/node/src/ledger/shell/testing/node.rs diff --git a/crates/apps_lib/src/node/ledger/shell/testing/utils.rs b/crates/node/src/ledger/shell/testing/utils.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/testing/utils.rs rename to crates/node/src/ledger/shell/testing/utils.rs diff --git a/crates/apps_lib/src/node/ledger/shell/utils.rs b/crates/node/src/ledger/shell/utils.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/utils.rs rename to crates/node/src/ledger/shell/utils.rs diff --git a/crates/apps_lib/src/node/ledger/shell/vote_extensions.rs b/crates/node/src/ledger/shell/vote_extensions.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/vote_extensions.rs rename to crates/node/src/ledger/shell/vote_extensions.rs diff --git a/crates/apps_lib/src/node/ledger/shell/vote_extensions/bridge_pool_vext.rs b/crates/node/src/ledger/shell/vote_extensions/bridge_pool_vext.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/vote_extensions/bridge_pool_vext.rs rename to crates/node/src/ledger/shell/vote_extensions/bridge_pool_vext.rs diff --git a/crates/apps_lib/src/node/ledger/shell/vote_extensions/eth_events.rs b/crates/node/src/ledger/shell/vote_extensions/eth_events.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/vote_extensions/eth_events.rs rename to crates/node/src/ledger/shell/vote_extensions/eth_events.rs diff --git a/crates/apps_lib/src/node/ledger/shell/vote_extensions/val_set_update.rs b/crates/node/src/ledger/shell/vote_extensions/val_set_update.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shell/vote_extensions/val_set_update.rs rename to crates/node/src/ledger/shell/vote_extensions/val_set_update.rs diff --git a/crates/apps_lib/src/node/ledger/shims/abcipp_shim.rs b/crates/node/src/ledger/shims/abcipp_shim.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shims/abcipp_shim.rs rename to crates/node/src/ledger/shims/abcipp_shim.rs diff --git a/crates/apps_lib/src/node/ledger/shims/abcipp_shim_types.rs b/crates/node/src/ledger/shims/abcipp_shim_types.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shims/abcipp_shim_types.rs rename to crates/node/src/ledger/shims/abcipp_shim_types.rs diff --git a/crates/apps_lib/src/node/ledger/shims/mod.rs b/crates/node/src/ledger/shims/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/shims/mod.rs rename to crates/node/src/ledger/shims/mod.rs diff --git a/crates/apps_lib/src/node/ledger/storage/mod.rs b/crates/node/src/ledger/storage/mod.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/storage/mod.rs rename to crates/node/src/ledger/storage/mod.rs diff --git a/crates/apps_lib/src/node/ledger/storage/rocksdb.rs b/crates/node/src/ledger/storage/rocksdb.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/storage/rocksdb.rs rename to crates/node/src/ledger/storage/rocksdb.rs diff --git a/crates/apps_lib/src/node/ledger/tendermint_node.rs b/crates/node/src/ledger/tendermint_node.rs similarity index 100% rename from crates/apps_lib/src/node/ledger/tendermint_node.rs rename to crates/node/src/ledger/tendermint_node.rs diff --git a/crates/apps_lib/src/node/mod.rs b/crates/node/src/mod.rs similarity index 100% rename from crates/apps_lib/src/node/mod.rs rename to crates/node/src/mod.rs From 2867ae492942c4d1e5108db9c4536770f1a61569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Thu, 16 May 2024 17:50:17 +0200 Subject: [PATCH 03/10] `mv crates/node/src/mod.rs crates/node/src/lib.rs` --- crates/node/src/{mod.rs => lib.rs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename crates/node/src/{mod.rs => lib.rs} (100%) diff --git a/crates/node/src/mod.rs b/crates/node/src/lib.rs similarity index 100% rename from crates/node/src/mod.rs rename to crates/node/src/lib.rs From 9a0a87dc6a75d2165039d3d05f809b7574e26698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Thu, 16 May 2024 18:02:34 +0200 Subject: [PATCH 04/10] `mv crates/node/src/ledger/* crates/node/src/` --- crates/node/src/{ledger => }/abortable.rs | 0 crates/node/src/{ledger => }/broadcaster.rs | 0 crates/node/src/{ledger => }/ethereum_oracle/control.rs | 0 crates/node/src/{ledger => }/ethereum_oracle/events.rs | 0 crates/node/src/{ledger => }/ethereum_oracle/mod.rs | 0 .../{ledger => }/ethereum_oracle/test_tools/events_endpoint.rs | 0 crates/node/src/{ledger => }/ethereum_oracle/test_tools/mod.rs | 0 crates/node/src/{ledger => }/mod.rs | 0 crates/node/src/{ledger => }/shell/block_alloc.rs | 0 crates/node/src/{ledger => }/shell/block_alloc/states.rs | 0 .../node/src/{ledger => }/shell/block_alloc/states/normal_txs.rs | 0 .../src/{ledger => }/shell/block_alloc/states/protocol_txs.rs | 0 crates/node/src/{ledger => }/shell/finalize_block.rs | 0 crates/node/src/{ledger => }/shell/governance.rs | 0 crates/node/src/{ledger => }/shell/init_chain.rs | 0 crates/node/src/{ledger => }/shell/mod.rs | 0 crates/node/src/{ledger => }/shell/prepare_proposal.rs | 0 crates/node/src/{ledger => }/shell/process_proposal.rs | 0 crates/node/src/{ledger => }/shell/queries.rs | 0 crates/node/src/{ledger => }/shell/stats.rs | 0 crates/node/src/{ledger => }/shell/testing/client.rs | 0 crates/node/src/{ledger => }/shell/testing/mod.rs | 0 crates/node/src/{ledger => }/shell/testing/node.rs | 0 crates/node/src/{ledger => }/shell/testing/utils.rs | 0 crates/node/src/{ledger => }/shell/utils.rs | 0 crates/node/src/{ledger => }/shell/vote_extensions.rs | 0 .../src/{ledger => }/shell/vote_extensions/bridge_pool_vext.rs | 0 crates/node/src/{ledger => }/shell/vote_extensions/eth_events.rs | 0 .../node/src/{ledger => }/shell/vote_extensions/val_set_update.rs | 0 crates/node/src/{ledger => }/shims/abcipp_shim.rs | 0 crates/node/src/{ledger => }/shims/abcipp_shim_types.rs | 0 crates/node/src/{ledger => }/shims/mod.rs | 0 crates/node/src/{ledger => }/storage/mod.rs | 0 crates/node/src/{ledger => }/storage/rocksdb.rs | 0 crates/node/src/{ledger => }/tendermint_node.rs | 0 35 files changed, 0 insertions(+), 0 deletions(-) rename crates/node/src/{ledger => }/abortable.rs (100%) rename crates/node/src/{ledger => }/broadcaster.rs (100%) rename crates/node/src/{ledger => }/ethereum_oracle/control.rs (100%) rename crates/node/src/{ledger => }/ethereum_oracle/events.rs (100%) rename crates/node/src/{ledger => }/ethereum_oracle/mod.rs (100%) rename crates/node/src/{ledger => }/ethereum_oracle/test_tools/events_endpoint.rs (100%) rename crates/node/src/{ledger => }/ethereum_oracle/test_tools/mod.rs (100%) rename crates/node/src/{ledger => }/mod.rs (100%) rename crates/node/src/{ledger => }/shell/block_alloc.rs (100%) rename crates/node/src/{ledger => }/shell/block_alloc/states.rs (100%) rename crates/node/src/{ledger => }/shell/block_alloc/states/normal_txs.rs (100%) rename crates/node/src/{ledger => }/shell/block_alloc/states/protocol_txs.rs (100%) rename crates/node/src/{ledger => }/shell/finalize_block.rs (100%) rename crates/node/src/{ledger => }/shell/governance.rs (100%) rename crates/node/src/{ledger => }/shell/init_chain.rs (100%) rename crates/node/src/{ledger => }/shell/mod.rs (100%) rename crates/node/src/{ledger => }/shell/prepare_proposal.rs (100%) rename crates/node/src/{ledger => }/shell/process_proposal.rs (100%) rename crates/node/src/{ledger => }/shell/queries.rs (100%) rename crates/node/src/{ledger => }/shell/stats.rs (100%) rename crates/node/src/{ledger => }/shell/testing/client.rs (100%) rename crates/node/src/{ledger => }/shell/testing/mod.rs (100%) rename crates/node/src/{ledger => }/shell/testing/node.rs (100%) rename crates/node/src/{ledger => }/shell/testing/utils.rs (100%) rename crates/node/src/{ledger => }/shell/utils.rs (100%) rename crates/node/src/{ledger => }/shell/vote_extensions.rs (100%) rename crates/node/src/{ledger => }/shell/vote_extensions/bridge_pool_vext.rs (100%) rename crates/node/src/{ledger => }/shell/vote_extensions/eth_events.rs (100%) rename crates/node/src/{ledger => }/shell/vote_extensions/val_set_update.rs (100%) rename crates/node/src/{ledger => }/shims/abcipp_shim.rs (100%) rename crates/node/src/{ledger => }/shims/abcipp_shim_types.rs (100%) rename crates/node/src/{ledger => }/shims/mod.rs (100%) rename crates/node/src/{ledger => }/storage/mod.rs (100%) rename crates/node/src/{ledger => }/storage/rocksdb.rs (100%) rename crates/node/src/{ledger => }/tendermint_node.rs (100%) diff --git a/crates/node/src/ledger/abortable.rs b/crates/node/src/abortable.rs similarity index 100% rename from crates/node/src/ledger/abortable.rs rename to crates/node/src/abortable.rs diff --git a/crates/node/src/ledger/broadcaster.rs b/crates/node/src/broadcaster.rs similarity index 100% rename from crates/node/src/ledger/broadcaster.rs rename to crates/node/src/broadcaster.rs diff --git a/crates/node/src/ledger/ethereum_oracle/control.rs b/crates/node/src/ethereum_oracle/control.rs similarity index 100% rename from crates/node/src/ledger/ethereum_oracle/control.rs rename to crates/node/src/ethereum_oracle/control.rs diff --git a/crates/node/src/ledger/ethereum_oracle/events.rs b/crates/node/src/ethereum_oracle/events.rs similarity index 100% rename from crates/node/src/ledger/ethereum_oracle/events.rs rename to crates/node/src/ethereum_oracle/events.rs diff --git a/crates/node/src/ledger/ethereum_oracle/mod.rs b/crates/node/src/ethereum_oracle/mod.rs similarity index 100% rename from crates/node/src/ledger/ethereum_oracle/mod.rs rename to crates/node/src/ethereum_oracle/mod.rs diff --git a/crates/node/src/ledger/ethereum_oracle/test_tools/events_endpoint.rs b/crates/node/src/ethereum_oracle/test_tools/events_endpoint.rs similarity index 100% rename from crates/node/src/ledger/ethereum_oracle/test_tools/events_endpoint.rs rename to crates/node/src/ethereum_oracle/test_tools/events_endpoint.rs diff --git a/crates/node/src/ledger/ethereum_oracle/test_tools/mod.rs b/crates/node/src/ethereum_oracle/test_tools/mod.rs similarity index 100% rename from crates/node/src/ledger/ethereum_oracle/test_tools/mod.rs rename to crates/node/src/ethereum_oracle/test_tools/mod.rs diff --git a/crates/node/src/ledger/mod.rs b/crates/node/src/mod.rs similarity index 100% rename from crates/node/src/ledger/mod.rs rename to crates/node/src/mod.rs diff --git a/crates/node/src/ledger/shell/block_alloc.rs b/crates/node/src/shell/block_alloc.rs similarity index 100% rename from crates/node/src/ledger/shell/block_alloc.rs rename to crates/node/src/shell/block_alloc.rs diff --git a/crates/node/src/ledger/shell/block_alloc/states.rs b/crates/node/src/shell/block_alloc/states.rs similarity index 100% rename from crates/node/src/ledger/shell/block_alloc/states.rs rename to crates/node/src/shell/block_alloc/states.rs diff --git a/crates/node/src/ledger/shell/block_alloc/states/normal_txs.rs b/crates/node/src/shell/block_alloc/states/normal_txs.rs similarity index 100% rename from crates/node/src/ledger/shell/block_alloc/states/normal_txs.rs rename to crates/node/src/shell/block_alloc/states/normal_txs.rs diff --git a/crates/node/src/ledger/shell/block_alloc/states/protocol_txs.rs b/crates/node/src/shell/block_alloc/states/protocol_txs.rs similarity index 100% rename from crates/node/src/ledger/shell/block_alloc/states/protocol_txs.rs rename to crates/node/src/shell/block_alloc/states/protocol_txs.rs diff --git a/crates/node/src/ledger/shell/finalize_block.rs b/crates/node/src/shell/finalize_block.rs similarity index 100% rename from crates/node/src/ledger/shell/finalize_block.rs rename to crates/node/src/shell/finalize_block.rs diff --git a/crates/node/src/ledger/shell/governance.rs b/crates/node/src/shell/governance.rs similarity index 100% rename from crates/node/src/ledger/shell/governance.rs rename to crates/node/src/shell/governance.rs diff --git a/crates/node/src/ledger/shell/init_chain.rs b/crates/node/src/shell/init_chain.rs similarity index 100% rename from crates/node/src/ledger/shell/init_chain.rs rename to crates/node/src/shell/init_chain.rs diff --git a/crates/node/src/ledger/shell/mod.rs b/crates/node/src/shell/mod.rs similarity index 100% rename from crates/node/src/ledger/shell/mod.rs rename to crates/node/src/shell/mod.rs diff --git a/crates/node/src/ledger/shell/prepare_proposal.rs b/crates/node/src/shell/prepare_proposal.rs similarity index 100% rename from crates/node/src/ledger/shell/prepare_proposal.rs rename to crates/node/src/shell/prepare_proposal.rs diff --git a/crates/node/src/ledger/shell/process_proposal.rs b/crates/node/src/shell/process_proposal.rs similarity index 100% rename from crates/node/src/ledger/shell/process_proposal.rs rename to crates/node/src/shell/process_proposal.rs diff --git a/crates/node/src/ledger/shell/queries.rs b/crates/node/src/shell/queries.rs similarity index 100% rename from crates/node/src/ledger/shell/queries.rs rename to crates/node/src/shell/queries.rs diff --git a/crates/node/src/ledger/shell/stats.rs b/crates/node/src/shell/stats.rs similarity index 100% rename from crates/node/src/ledger/shell/stats.rs rename to crates/node/src/shell/stats.rs diff --git a/crates/node/src/ledger/shell/testing/client.rs b/crates/node/src/shell/testing/client.rs similarity index 100% rename from crates/node/src/ledger/shell/testing/client.rs rename to crates/node/src/shell/testing/client.rs diff --git a/crates/node/src/ledger/shell/testing/mod.rs b/crates/node/src/shell/testing/mod.rs similarity index 100% rename from crates/node/src/ledger/shell/testing/mod.rs rename to crates/node/src/shell/testing/mod.rs diff --git a/crates/node/src/ledger/shell/testing/node.rs b/crates/node/src/shell/testing/node.rs similarity index 100% rename from crates/node/src/ledger/shell/testing/node.rs rename to crates/node/src/shell/testing/node.rs diff --git a/crates/node/src/ledger/shell/testing/utils.rs b/crates/node/src/shell/testing/utils.rs similarity index 100% rename from crates/node/src/ledger/shell/testing/utils.rs rename to crates/node/src/shell/testing/utils.rs diff --git a/crates/node/src/ledger/shell/utils.rs b/crates/node/src/shell/utils.rs similarity index 100% rename from crates/node/src/ledger/shell/utils.rs rename to crates/node/src/shell/utils.rs diff --git a/crates/node/src/ledger/shell/vote_extensions.rs b/crates/node/src/shell/vote_extensions.rs similarity index 100% rename from crates/node/src/ledger/shell/vote_extensions.rs rename to crates/node/src/shell/vote_extensions.rs diff --git a/crates/node/src/ledger/shell/vote_extensions/bridge_pool_vext.rs b/crates/node/src/shell/vote_extensions/bridge_pool_vext.rs similarity index 100% rename from crates/node/src/ledger/shell/vote_extensions/bridge_pool_vext.rs rename to crates/node/src/shell/vote_extensions/bridge_pool_vext.rs diff --git a/crates/node/src/ledger/shell/vote_extensions/eth_events.rs b/crates/node/src/shell/vote_extensions/eth_events.rs similarity index 100% rename from crates/node/src/ledger/shell/vote_extensions/eth_events.rs rename to crates/node/src/shell/vote_extensions/eth_events.rs diff --git a/crates/node/src/ledger/shell/vote_extensions/val_set_update.rs b/crates/node/src/shell/vote_extensions/val_set_update.rs similarity index 100% rename from crates/node/src/ledger/shell/vote_extensions/val_set_update.rs rename to crates/node/src/shell/vote_extensions/val_set_update.rs diff --git a/crates/node/src/ledger/shims/abcipp_shim.rs b/crates/node/src/shims/abcipp_shim.rs similarity index 100% rename from crates/node/src/ledger/shims/abcipp_shim.rs rename to crates/node/src/shims/abcipp_shim.rs diff --git a/crates/node/src/ledger/shims/abcipp_shim_types.rs b/crates/node/src/shims/abcipp_shim_types.rs similarity index 100% rename from crates/node/src/ledger/shims/abcipp_shim_types.rs rename to crates/node/src/shims/abcipp_shim_types.rs diff --git a/crates/node/src/ledger/shims/mod.rs b/crates/node/src/shims/mod.rs similarity index 100% rename from crates/node/src/ledger/shims/mod.rs rename to crates/node/src/shims/mod.rs diff --git a/crates/node/src/ledger/storage/mod.rs b/crates/node/src/storage/mod.rs similarity index 100% rename from crates/node/src/ledger/storage/mod.rs rename to crates/node/src/storage/mod.rs diff --git a/crates/node/src/ledger/storage/rocksdb.rs b/crates/node/src/storage/rocksdb.rs similarity index 100% rename from crates/node/src/ledger/storage/rocksdb.rs rename to crates/node/src/storage/rocksdb.rs diff --git a/crates/node/src/ledger/tendermint_node.rs b/crates/node/src/tendermint_node.rs similarity index 100% rename from crates/node/src/ledger/tendermint_node.rs rename to crates/node/src/tendermint_node.rs From 0cde0c256f53e737cab5dd496376cf10ea9b5978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 17 May 2024 13:16:51 +0200 Subject: [PATCH 05/10] `mv crates/node/src/tendermint_node.rs crates/apps_lib/src/` --- crates/{node => apps_lib}/src/tendermint_node.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename crates/{node => apps_lib}/src/tendermint_node.rs (100%) diff --git a/crates/node/src/tendermint_node.rs b/crates/apps_lib/src/tendermint_node.rs similarity index 100% rename from crates/node/src/tendermint_node.rs rename to crates/apps_lib/src/tendermint_node.rs From 17ba4ca98c5b0e2cefb5dadee7a08240658736ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 17 May 2024 16:34:20 +0200 Subject: [PATCH 06/10] `mv crates/apps_lib/src/bench_utils.rs crates/node/src/` --- crates/{apps_lib => node}/src/bench_utils.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename crates/{apps_lib => node}/src/bench_utils.rs (100%) diff --git a/crates/apps_lib/src/bench_utils.rs b/crates/node/src/bench_utils.rs similarity index 100% rename from crates/apps_lib/src/bench_utils.rs rename to crates/node/src/bench_utils.rs From d7ca694c77c7b2ce2932b573c892fe902e5d30f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 17 May 2024 17:09:54 +0200 Subject: [PATCH 07/10] `rm crates/node/src/lib.rs` --- crates/node/src/lib.rs | 1 - 1 file changed, 1 deletion(-) delete mode 100644 crates/node/src/lib.rs diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs deleted file mode 100644 index 370e1150a2..0000000000 --- a/crates/node/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod ledger; From 1a4de82952c115e3f81d904a4a58dcb1755d15cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 17 May 2024 17:10:35 +0200 Subject: [PATCH 08/10] `mv crates/node/src/mod.rs crates/node/src/lib.rs` --- crates/node/src/{mod.rs => lib.rs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename crates/node/src/{mod.rs => lib.rs} (100%) diff --git a/crates/node/src/mod.rs b/crates/node/src/lib.rs similarity index 100% rename from crates/node/src/mod.rs rename to crates/node/src/lib.rs From 4295161be956f3238276fc48e8a938cc8cb89051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 17 May 2024 17:44:50 +0200 Subject: [PATCH 09/10] post node split-up fixes --- Cargo.lock | 100 +- crates/apps/Cargo.toml | 3 +- crates/apps/src/bin/namada-node/cli.rs | 24 +- crates/apps_lib/Cargo.toml | 54 +- crates/apps_lib/src/cli.rs | 46 +- crates/apps_lib/src/cli/client.rs | 41 +- crates/apps_lib/src/cli/wallet.rs | 2 +- crates/apps_lib/src/client/tx.rs | 2 +- crates/apps_lib/src/client/utils.rs | 28 +- crates/apps_lib/src/config/genesis.rs | 14 +- crates/apps_lib/src/config/genesis/chain.rs | 2 +- crates/apps_lib/src/lib.rs | 10 +- crates/apps_lib/src/tendermint_node.rs | 380 +--- crates/benches/Cargo.toml | 3 +- crates/benches/host_env.rs | 6 +- crates/benches/native_vps.rs | 4 +- crates/benches/process_wrapper.rs | 4 +- crates/benches/txs.rs | 4 +- crates/node/Cargo.toml | 94 + crates/node/src/bench_utils.rs | 20 +- crates/node/src/ethereum_oracle/events.rs | 2 +- crates/node/src/ethereum_oracle/mod.rs | 6 +- .../test_tools/events_endpoint.rs | 2 +- .../src/ethereum_oracle/test_tools/mod.rs | 2 +- crates/node/src/lib.rs | 44 +- crates/node/src/shell/block_alloc.rs | 4 +- crates/node/src/shell/block_alloc/states.rs | 14 +- .../shell/block_alloc/states/normal_txs.rs | 2 +- .../shell/block_alloc/states/protocol_txs.rs | 2 +- crates/node/src/shell/finalize_block.rs | 48 +- crates/node/src/shell/init_chain.rs | 7 +- crates/node/src/shell/mod.rs | 60 +- crates/node/src/shell/prepare_proposal.rs | 46 +- crates/node/src/shell/process_proposal.rs | 46 +- crates/node/src/shell/queries.rs | 4 +- crates/node/src/shell/testing/client.rs | 12 +- crates/node/src/shell/testing/node.rs | 28 +- crates/node/src/shell/vote_extensions.rs | 2 +- .../shell/vote_extensions/bridge_pool_vext.rs | 6 +- .../src/shell/vote_extensions/eth_events.rs | 4 +- .../shell/vote_extensions/val_set_update.rs | 6 +- crates/node/src/shims/abcipp_shim.rs | 2 +- crates/node/src/shims/abcipp_shim_types.rs | 2 +- crates/node/src/storage/mod.rs | 2 +- crates/node/src/tendermint_node.rs | 419 ++++ crates/node/src/utils.rs | 25 + crates/tests/Cargo.toml | 5 +- crates/tests/src/e2e/ledger_tests.rs | 7 +- crates/tests/src/integration/helpers.rs | 8 +- crates/tests/src/integration/ledger_tests.rs | 6 +- crates/tests/src/integration/masp.rs | 8 +- crates/tests/src/integration/setup.rs | 12 +- wasm/Cargo.lock | 1695 +++++++++++++-- wasm_for_tests/Cargo.lock | 1832 +++++++++++++++-- 54 files changed, 4058 insertions(+), 1153 deletions(-) create mode 100644 crates/node/src/tendermint_node.rs create mode 100644 crates/node/src/utils.rs diff --git a/Cargo.lock b/Cargo.lock index 880b93aa71..ce8a808a5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4474,6 +4474,7 @@ dependencies = [ "git2", "namada", "namada_apps_lib", + "namada_node", "namada_test_utils", "proptest", "test-log", @@ -4491,31 +4492,18 @@ dependencies = [ name = "namada_apps_lib" version = "0.35.1" dependencies = [ - "ark-serialize", - "ark-std", "assert_matches", "async-trait", "base64 0.13.1", - "bech32 0.8.1", - "bimap", "bit-set", - "blake2b-rs", "borsh 1.2.1", "borsh-ext", - "byte-unit", - "byteorder", - "bytes", "clap", "color-eyre", "config", "data-encoding", "derivative", "directories", - "drain_filter_polyfill", - "ed25519-consensus", - "ethabi", - "ethbridge-bridge-events", - "ethbridge-events", "eyre", "fd-lock", "flate2", @@ -4525,42 +4513,23 @@ dependencies = [ "lazy_static", "ledger-namada-rs", "ledger-transport-hid", - "libc", - "libloading", "linkme", "masp_primitives", - "masp_proofs", "namada", "namada_macros", "namada_migrations", "namada_sdk", "namada_test_utils", - "num-rational", - "num-traits 0.2.17", - "num256", - "num_cpus", - "once_cell", - "orion", "pretty_assertions", "proptest", "prost 0.12.3", - "prost-types 0.12.3", "rand 0.8.5", "rand_core 0.6.4", - "rayon", - "regex", "reqwest", - "ripemd", - "rlimit", - "rocksdb", "rpassword", "serde 1.0.193", - "serde_bytes", "serde_json", "sha2 0.9.9", - "smooth-operator", - "sparse-merkle-tree", - "sysinfo", "tar", "tempfile", "tendermint-config", @@ -4571,14 +4540,10 @@ dependencies = [ "tokio", "tokio-test", "toml 0.5.11", - "tower", - "tower-abci", "tracing", "tracing-appender", "tracing-log", "tracing-subscriber", - "warp", - "winapi", "zeroize", ] @@ -4593,6 +4558,7 @@ dependencies = [ "masp_primitives", "namada", "namada_apps_lib", + "namada_node", "prost 0.12.3", "rand 0.8.5", "rand_core 0.6.4", @@ -4872,6 +4838,67 @@ dependencies = [ "namada_macros", ] +[[package]] +name = "namada_node" +version = "0.35.1" +dependencies = [ + "assert_matches", + "async-trait", + "blake2b-rs", + "borsh 1.2.1", + "borsh-ext", + "byte-unit", + "bytes", + "clap", + "color-eyre", + "data-encoding", + "drain_filter_polyfill", + "ethabi", + "ethbridge-bridge-events", + "ethbridge-events", + "eyre", + "futures", + "itertools 0.12.1", + "lazy_static", + "linkme", + "masp_primitives", + "masp_proofs", + "namada", + "namada_apps_lib", + "namada_migrations", + "namada_sdk", + "namada_test_utils", + "num-rational", + "num-traits 0.2.17", + "num256", + "num_cpus", + "once_cell", + "proptest", + "prost 0.12.3", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "regex", + "rlimit", + "rocksdb", + "serde_json", + "sha2 0.9.9", + "smooth-operator", + "sparse-merkle-tree", + "sysinfo", + "tempfile", + "test-log", + "thiserror", + "tokio", + "tokio-test", + "toml 0.5.11", + "tower", + "tower-abci", + "tracing", + "tracing-subscriber", + "warp", +] + [[package]] name = "namada_parameters" version = "0.35.1" @@ -5106,6 +5133,7 @@ dependencies = [ "namada", "namada_apps_lib", "namada_core", + "namada_node", "namada_sdk", "namada_test_utils", "namada_tx_prelude", diff --git a/crates/apps/Cargo.toml b/crates/apps/Cargo.toml index a41350d198..88a2490135 100644 --- a/crates/apps/Cargo.toml +++ b/crates/apps/Cargo.toml @@ -46,13 +46,14 @@ path = "src/bin/namada-relayer/main.rs" [features] default = ["namada/mainnet", "migrations"] mainnet = ["namada_apps_lib/mainnet"] -jemalloc = ["namada_apps_lib/jemalloc"] +jemalloc = ["namada_node/jemalloc"] migrations = ["namada/migrations", "namada_apps_lib/migrations"] namada-eth-bridge = ["namada_apps_lib/namada-eth-bridge"] [dependencies] namada = {path = "../namada"} namada_apps_lib = {path = "../apps_lib"} +namada_node = {path = "../node"} color-eyre.workspace = true eyre.workspace = true diff --git a/crates/apps/src/bin/namada-node/cli.rs b/crates/apps/src/bin/namada-node/cli.rs index c9fab41d7c..eb941e0d62 100644 --- a/crates/apps/src/bin/namada-node/cli.rs +++ b/crates/apps/src/bin/namada-node/cli.rs @@ -2,9 +2,10 @@ use eyre::{Context, Result}; use namada::core::time::{DateTimeUtc, Utc}; +use namada_apps_lib::cli::cmds::TestGenesis; use namada_apps_lib::cli::{self, cmds}; use namada_apps_lib::config::{Action, ActionAtHeight, ValidatorLocalConfig}; -use namada_apps_lib::node::ledger; +use namada_node as node; #[cfg(not(feature = "migrations"))] use namada_sdk::display_line; @@ -16,7 +17,7 @@ pub fn main() -> Result<()> { let chain_ctx = ctx.take_chain_or_exit(); let wasm_dir = chain_ctx.wasm_dir(); sleep_until(args.start_time); - ledger::run(chain_ctx.config.ledger, wasm_dir); + node::run(chain_ctx.config.ledger, wasm_dir); } cmds::Ledger::RunUntil(cmds::LedgerRunUntil(args)) => { let mut chain_ctx = ctx.take_chain_or_exit(); @@ -24,20 +25,20 @@ pub fn main() -> Result<()> { sleep_until(args.time); chain_ctx.config.ledger.shell.action_at_height = Some(args.action_at_height); - ledger::run(chain_ctx.config.ledger, wasm_dir); + node::run(chain_ctx.config.ledger, wasm_dir); } cmds::Ledger::Reset(_) => { let chain_ctx = ctx.take_chain_or_exit(); - ledger::reset(chain_ctx.config.ledger) + node::reset(chain_ctx.config.ledger) .wrap_err("Failed to reset Namada node")?; } cmds::Ledger::DumpDb(cmds::LedgerDumpDb(args)) => { let chain_ctx = ctx.take_chain_or_exit(); - ledger::dump_db(chain_ctx.config.ledger, args); + node::dump_db(chain_ctx.config.ledger, args); } cmds::Ledger::RollBack(_) => { let chain_ctx = ctx.take_chain_or_exit(); - ledger::rollback(chain_ctx.config.ledger) + node::rollback(chain_ctx.config.ledger) .wrap_err("Failed to rollback the Namada node")?; } cmds::Ledger::UpdateDB(cmds::LedgerUpdateDB(args)) => { @@ -50,7 +51,7 @@ pub fn main() -> Result<()> { } let mut chain_ctx = ctx.take_chain_or_exit(); #[cfg(feature = "migrations")] - ledger::update_db_keys( + node::update_db_keys( chain_ctx.config.ledger.clone(), args.updates, args.dry_run, @@ -68,7 +69,7 @@ pub fn main() -> Result<()> { ); // don't stop on panics let handle = std::thread::spawn(|| { - ledger::run(chain_ctx.config.ledger, wasm_dir) + node::run(chain_ctx.config.ledger, wasm_dir) }); _ = handle.join(); std::env::remove_var("NAMADA_INITIAL_HEIGHT"); @@ -84,7 +85,7 @@ pub fn main() -> Result<()> { } let chain_ctx = ctx.take_chain_or_exit(); #[cfg(feature = "migrations")] - ledger::query_db( + node::query_db( chain_ctx.config.ledger, &args.key, &args.hash, @@ -129,6 +130,11 @@ pub fn main() -> Result<()> { std::fs::write(config_path, updated_config).unwrap(); } }, + cmds::NamadaNode::Utils(sub) => match sub { + cmds::NodeUtils::TestGenesis(TestGenesis(args)) => { + node::utils::test_genesis(args) + } + }, } Ok(()) } diff --git a/crates/apps_lib/Cargo.toml b/crates/apps_lib/Cargo.toml index 31a720fdf5..4363c635d7 100644 --- a/crates/apps_lib/Cargo.toml +++ b/crates/apps_lib/Cargo.toml @@ -18,15 +18,14 @@ mainnet = [ "namada/mainnet", ] # for integration tests and test utilities -testing = ["namada_test_utils"] -benches = ["namada_test_utils"] +testing = ["namada_test_utils", "lazy_static"] +benches = ["namada_test_utils", "lazy_static"] integration = [] -jemalloc = ["rocksdb/jemalloc"] migrations = [ "namada_migrations", "namada_sdk/migrations", "namada/migrations", - "linkme", + "linkme" ] namada-eth-bridge = [ "namada/namada-eth-bridge", @@ -40,67 +39,34 @@ namada_migrations = {path = "../migrations", optional = true} namada_sdk = {path = "../sdk", default-features = false, features = ["download-params", "std", "rand"]} namada_test_utils = {path = "../test_utils", optional = true} -ark-serialize.workspace = true -ark-std.workspace = true -arse-merkle-tree = { workspace = true, features = ["blake2b"] } -assert_matches.workspace = true async-trait.workspace = true base64.workspace = true -bech32.workspace = true -bimap.workspace = true -blake2b-rs.workspace = true borsh.workspace = true borsh-ext.workspace = true -byte-unit.workspace = true -byteorder.workspace = true clap.workspace = true color-eyre.workspace = true config.workspace = true data-encoding.workspace = true derivative.workspace = true directories.workspace = true -drain_filter_polyfill.workspace = true -ed25519-consensus = { workspace = true, features = ["std"] } -ethabi.workspace = true -ethbridge-bridge-events.workspace = true -ethbridge-events.workspace = true eyre.workspace = true fd-lock.workspace = true flate2.workspace = true futures.workspace = true itertools.workspace = true -lazy_static.workspace= true +lazy_static = { workspace = true, optional = true } +linkme = { workspace = true, optional = true } ledger-namada-rs.workspace = true ledger-transport-hid.workspace = true -libc.workspace = true -libloading.workspace = true -linkme = { workspace = true, optional = true } masp_primitives = { workspace = true, features = ["transparent-inputs"] } -masp_proofs = { workspace = true, features = ["bundled-prover", "download-params"] } -num_cpus.workspace = true -num256.workspace = true -num-rational.workspace = true -num-traits.workspace = true -once_cell.workspace = true -orion.workspace = true -pretty_assertions.workspace = true -prost-types.workspace = true prost.workspace = true rand_core = { workspace = true, features = ["std"] } rand = { workspace = true, features = ["std"] } -rayon.workspace = true -regex.workspace = true reqwest.workspace = true -ripemd.workspace = true -rlimit.workspace = true -rocksdb.workspace = true rpassword.workspace = true -serde_bytes.workspace = true serde_json = {workspace = true, features = ["raw_value"]} serde.workspace = true sha2.workspace = true -smooth-operator.workspace = true -sysinfo.workspace = true tar.workspace = true tempfile.workspace = true tendermint-config.workspace = true @@ -109,25 +75,23 @@ textwrap-macros = "0.3.0" thiserror.workspace = true tokio = {workspace = true, features = ["full"]} toml.workspace = true -tower-abci.workspace = true -tower.workspace = true tracing-appender.workspace = true tracing-log.workspace = true tracing-subscriber = { workspace = true, features = ["std", "json", "ansi", "tracing-log"]} tracing.workspace = true -winapi.workspace = true zeroize.workspace = true -warp = "0.3.2" -bytes = "1.1.0" [dev-dependencies] -assert_matches = "1.5.0" namada = {path = "../namada", default-features = false, features = ["testing", "wasm-runtime"]} namada_test_utils = {path = "../test_utils"} + +assert_matches = "1.5.0" bit-set.workspace = true proptest.workspace = true test-log.workspace = true tokio-test.workspace = true +lazy_static.workspace= true +pretty_assertions.workspace = true [build-dependencies] git2.workspace = true diff --git a/crates/apps_lib/src/cli.rs b/crates/apps_lib/src/cli.rs index ea1a13dd2a..7b855547ff 100644 --- a/crates/apps_lib/src/cli.rs +++ b/crates/apps_lib/src/cli.rs @@ -123,17 +123,21 @@ pub mod cmds { pub enum NamadaNode { Ledger(Ledger), Config(Config), + Utils(NodeUtils), } impl Cmd for NamadaNode { fn add_sub(app: App) -> App { - app.subcommand(Ledger::def()).subcommand(Config::def()) + app.subcommand(Ledger::def()) + .subcommand(Config::def()) + .subcommand(NodeUtils::def()) } fn parse(matches: &ArgMatches) -> Option { let ledger = SubCmd::parse(matches).map(Self::Ledger); let config = SubCmd::parse(matches).map(Self::Config); - ledger.or(config) + let utils = SubCmd::parse(matches).map(Self::Utils); + ledger.or(config).or(utils) } } impl SubCmd for NamadaNode { @@ -206,7 +210,7 @@ pub mod cmds { /// don't exist. WithContext(NamadaClientWithContext), /// Utils don't have [`super::Context`], only the global arguments. - WithoutContext(Utils), + WithoutContext(ClientUtils), } impl Cmd for NamadaClient { @@ -270,7 +274,7 @@ pub mod cmds { .subcommand(SignTx::def().display_order(6)) .subcommand(ShieldedSync::def().display_order(6)) // Utils - .subcommand(Utils::def().display_order(7)) + .subcommand(ClientUtils::def().display_order(7)) } fn parse(matches: &ArgMatches) -> Option { @@ -2174,7 +2178,30 @@ pub mod cmds { } #[derive(Clone, Debug)] - pub enum Utils { + pub enum NodeUtils { + TestGenesis(TestGenesis), + } + + impl SubCmd for NodeUtils { + const CMD: &'static str = "utils"; + + fn parse(matches: &ArgMatches) -> Option { + matches.subcommand_matches(Self::CMD).and_then(|matches| { + SubCmd::parse(matches).map(Self::TestGenesis) + }) + } + + fn def() -> App { + App::new(Self::CMD) + .about(wrap!("Utilities.")) + .subcommand(TestGenesis::def()) + .subcommand_required(true) + .arg_required_else_help(true) + } + } + + #[derive(Clone, Debug)] + pub enum ClientUtils { JoinNetwork(JoinNetwork), ValidateWasm(ValidateWasm), InitNetwork(InitNetwork), @@ -2186,12 +2213,11 @@ pub mod cmds { DefaultBaseDir(DefaultBaseDir), EpochSleep(EpochSleep), ValidateGenesisTemplates(ValidateGenesisTemplates), - TestGenesis(TestGenesis), SignGenesisTxs(SignGenesisTxs), ParseMigrationJson(MigrationJson), } - impl SubCmd for Utils { + impl SubCmd for ClientUtils { const CMD: &'static str = "utils"; fn parse(matches: &ArgMatches) -> Option { @@ -2219,8 +2245,6 @@ pub mod cmds { SubCmd::parse(matches).map(Self::ValidateGenesisTemplates); let genesis_tx = SubCmd::parse(matches).map(Self::SignGenesisTxs); - let test_genesis = - SubCmd::parse(matches).map(Self::TestGenesis); let parse_migrations_json = SubCmd::parse(matches).map(Self::ParseMigrationJson); join_network @@ -2234,7 +2258,6 @@ pub mod cmds { .or(default_base_dir) .or(epoch_sleep) .or(validate_genesis_templates) - .or(test_genesis) .or(genesis_tx) .or(parse_migrations_json) }) @@ -2254,7 +2277,6 @@ pub mod cmds { .subcommand(DefaultBaseDir::def()) .subcommand(EpochSleep::def()) .subcommand(ValidateGenesisTemplates::def()) - .subcommand(TestGenesis::def()) .subcommand(SignGenesisTxs::def()) .subcommand(MigrationJson::def()) .subcommand_required(true) @@ -7701,7 +7723,7 @@ pub fn namada_node_cli() -> Result<(cmds::NamadaNode, Context)> { #[allow(clippy::large_enum_variant)] pub enum NamadaClient { - WithoutContext(cmds::Utils, args::Global), + WithoutContext(cmds::ClientUtils, args::Global), WithContext(Box<(cmds::NamadaClientWithContext, Context)>), } diff --git a/crates/apps_lib/src/cli/client.rs b/crates/apps_lib/src/cli/client.rs index df20f803ab..222653d406 100644 --- a/crates/apps_lib/src/cli/client.rs +++ b/crates/apps_lib/src/cli/client.rs @@ -724,34 +724,34 @@ impl CliApi { } cli::NamadaClient::WithoutContext(cmd, global_args) => match cmd { // Utils cmds - Utils::JoinNetwork(JoinNetwork(args)) => { + ClientUtils::JoinNetwork(JoinNetwork(args)) => { utils::join_network(global_args, args).await } - Utils::ValidateWasm(ValidateWasm(args)) => { + ClientUtils::ValidateWasm(ValidateWasm(args)) => { utils::validate_wasm(args) } - Utils::InitNetwork(InitNetwork(args)) => { + ClientUtils::InitNetwork(InitNetwork(args)) => { utils::init_network(args); } - Utils::GenesisBond(GenesisBond(args)) => { + ClientUtils::GenesisBond(GenesisBond(args)) => { utils::genesis_bond(args) } - Utils::DeriveGenesisAddresses(DeriveGenesisAddresses(args)) => { - utils::derive_genesis_addresses(global_args, args) - } - Utils::InitGenesisEstablishedAccount( + ClientUtils::DeriveGenesisAddresses( + DeriveGenesisAddresses(args), + ) => utils::derive_genesis_addresses(global_args, args), + ClientUtils::InitGenesisEstablishedAccount( InitGenesisEstablishedAccount(args), ) => utils::init_genesis_established_account(global_args, args), - Utils::InitGenesisValidator(InitGenesisValidator(args)) => { - utils::init_genesis_validator(global_args, args) - } - Utils::PkToTmAddress(PkToTmAddress(args)) => { + ClientUtils::InitGenesisValidator(InitGenesisValidator( + args, + )) => utils::init_genesis_validator(global_args, args), + ClientUtils::PkToTmAddress(PkToTmAddress(args)) => { utils::pk_to_tm_address(global_args, args) } - Utils::DefaultBaseDir(DefaultBaseDir(args)) => { + ClientUtils::DefaultBaseDir(DefaultBaseDir(args)) => { utils::default_base_dir(global_args, args) } - Utils::EpochSleep(EpochSleep(args)) => { + ClientUtils::EpochSleep(EpochSleep(args)) => { let mut ctx = cli::Context::new::(global_args) .expect("expected to construct a context"); let chain_ctx = ctx.borrow_mut_chain_or_exit(); @@ -762,16 +762,13 @@ impl CliApi { let namada = ctx.to_sdk(client, io); rpc::epoch_sleep(&namada, args).await; } - Utils::ValidateGenesisTemplates(ValidateGenesisTemplates( - args, - )) => utils::validate_genesis_templates(global_args, args), - Utils::TestGenesis(TestGenesis(args)) => { - utils::test_genesis(args) - } - Utils::SignGenesisTxs(SignGenesisTxs(args)) => { + ClientUtils::ValidateGenesisTemplates( + ValidateGenesisTemplates(args), + ) => utils::validate_genesis_templates(global_args, args), + ClientUtils::SignGenesisTxs(SignGenesisTxs(args)) => { utils::sign_genesis_tx(global_args, args).await } - Utils::ParseMigrationJson(MigrationJson(args)) => { + ClientUtils::ParseMigrationJson(MigrationJson(args)) => { #[cfg(feature = "migrations")] { let mut update_json = String::new(); diff --git a/crates/apps_lib/src/cli/wallet.rs b/crates/apps_lib/src/cli/wallet.rs index db950cf05e..4eeab319f6 100644 --- a/crates/apps_lib/src/cli/wallet.rs +++ b/crates/apps_lib/src/cli/wallet.rs @@ -28,7 +28,7 @@ use crate::cli::api::CliApi; use crate::cli::args::CliToSdk; use crate::cli::{args, cmds, Context}; use crate::client::utils::PRE_GENESIS_DIR; -use crate::node::ledger::tendermint_node::validator_key_to_json; +use crate::tendermint_node::validator_key_to_json; use crate::wallet::{ self, read_and_confirm_encryption_password, CliWalletUtils, }; diff --git a/crates/apps_lib/src/client/tx.rs b/crates/apps_lib/src/client/tx.rs index bd1c7cdb96..df826c6b33 100644 --- a/crates/apps_lib/src/client/tx.rs +++ b/crates/apps_lib/src/client/tx.rs @@ -28,7 +28,7 @@ use crate::client::tx::signing::{default_sign, SigningTxData}; use crate::client::tx::tx::ProcessTxResponse; use crate::config::TendermintMode; use crate::facade::tendermint_rpc::endpoint::broadcast::tx_sync::Response; -use crate::node::ledger::tendermint_node; +use crate::tendermint_node; use crate::wallet::{gen_validator_keys, read_and_confirm_encryption_password}; /// Wrapper around `signing::aux_signing_data` that stores the optional diff --git a/crates/apps_lib/src/client/utils.rs b/crates/apps_lib/src/client/utils.rs index b99e7bf3dc..d7c112dc85 100644 --- a/crates/apps_lib/src/client/utils.rs +++ b/crates/apps_lib/src/client/utils.rs @@ -2,7 +2,6 @@ use std::env; use std::fs::{self, File, OpenOptions}; use std::io::Write; use std::path::{Path, PathBuf}; -use std::str::FromStr; use borsh_ext::BorshSerializeExt; use color_eyre::owo_colors::OwoColorize; @@ -24,7 +23,6 @@ use sha2::{Digest, Sha256}; use tokio::sync::RwLock; use crate::cli::args; -use crate::cli::args::TestGenesis; use crate::cli::context::wasm_dir_from_env_or; use crate::config::genesis::chain::DeriveEstablishedAddress; use crate::config::genesis::transactions::{ @@ -33,9 +31,8 @@ use crate::config::genesis::transactions::{ use crate::config::global::GlobalConfig; use crate::config::{self, genesis, get_default_namada_folder, TendermintMode}; use crate::facade::tendermint::node::Id as TendermintNodeId; -use crate::node::ledger::tendermint_node; use crate::wallet::{pre_genesis, CliWalletUtils}; -use crate::wasm_loader; +use crate::{tendermint_node, wasm_loader}; pub const NET_ACCOUNTS_DIR: &str = "setup"; pub const NET_OTHER_ACCOUNTS_DIR: &str = "other"; @@ -439,29 +436,6 @@ pub fn init_network( release_file } -pub fn test_genesis(args: TestGenesis) { - use crate::facade::tendermint::Timeout; - - let templates = genesis::templates::load_and_validate(&args.path).unwrap(); - let genesis = genesis::chain::finalize( - templates, - FromStr::from_str("namada-dryrun").unwrap(), - Default::default(), - Timeout::from_str("30s").unwrap(), - ); - let chain_id = &genesis.metadata.chain_id; - let test_dir = tempfile::tempdir().unwrap(); - let config = crate::config::Config::load(test_dir.path(), chain_id, None); - genesis - .write_toml_files(&test_dir.path().join(chain_id.to_string())) - .unwrap(); - crate::node::ledger::test_genesis_files( - config.ledger, - genesis, - args.wasm_dir, - ); -} - pub fn pk_to_tm_address( _global_args: args::Global, args::PkToTmAddress { public_key }: args::PkToTmAddress, diff --git a/crates/apps_lib/src/config/genesis.rs b/crates/apps_lib/src/config/genesis.rs index 04ea662e97..08db754c1b 100644 --- a/crates/apps_lib/src/config/genesis.rs +++ b/crates/apps_lib/src/config/genesis.rs @@ -31,9 +31,6 @@ use namada_macros::BorshDeserializer; use namada_migrations::*; use serde::{Deserialize, Serialize}; -#[cfg(all(any(test, feature = "benches"), not(feature = "integration")))] -use crate::config::genesis::chain::{Finalized, FinalizedEstablishedAccountTx}; - #[derive( Clone, Debug, @@ -326,11 +323,14 @@ pub struct Parameters { /// This includes adding the Ethereum bridge parameters and /// adding a specified number of validators. #[allow(clippy::arithmetic_side_effects)] -#[cfg(all(any(test, feature = "benches"), not(feature = "integration")))] +#[cfg(all( + any(test, feature = "benches", feature = "testing"), + not(feature = "integration") +))] pub fn make_dev_genesis( num_validators: u64, target_chain_dir: &std::path::Path, -) -> Finalized { +) -> crate::config::genesis::chain::Finalized { use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use std::time::Duration; @@ -343,7 +343,9 @@ pub fn make_dev_genesis( use namada::tx::standalone_signature; use namada_sdk::wallet::alias::Alias; - use crate::config::genesis::chain::{finalize, DeriveEstablishedAddress}; + use crate::config::genesis::chain::{ + finalize, DeriveEstablishedAddress, FinalizedEstablishedAccountTx, + }; use crate::wallet::defaults; let mut current_path = std::env::current_dir() diff --git a/crates/apps_lib/src/config/genesis/chain.rs b/crates/apps_lib/src/config/genesis/chain.rs index d4f6fb9322..a47c37d9de 100644 --- a/crates/apps_lib/src/config/genesis/chain.rs +++ b/crates/apps_lib/src/config/genesis/chain.rs @@ -29,7 +29,7 @@ use crate::config::utils::{set_ip, set_port}; use crate::config::{Config, TendermintMode}; use crate::facade::tendermint::node::Id as TendermintNodeId; use crate::facade::tendermint_config::net::Address as TendermintAddress; -use crate::node::ledger::tendermint_node::id_from_pk; +use crate::tendermint_node::id_from_pk; use crate::wallet::{Alias, CliWalletUtils}; use crate::wasm_loader; diff --git a/crates/apps_lib/src/lib.rs b/crates/apps_lib/src/lib.rs index eedbd17e99..0240b28ad8 100644 --- a/crates/apps_lib/src/lib.rs +++ b/crates/apps_lib/src/lib.rs @@ -1,4 +1,4 @@ -//! Shared code for the node, client etc. +//! Shared code for the Namada apps. #![doc(html_favicon_url = "https://dev.namada.net/master/favicon.png")] #![doc(html_logo_url = "https://dev.namada.net/master/rustdoc-logo.png")] @@ -14,13 +14,11 @@ clippy::dbg_macro )] -#[cfg(feature = "benches")] -pub mod bench_utils; pub mod cli; pub mod client; pub mod config; pub mod logging; -pub mod node; +pub mod tendermint_node; pub mod wallet; pub mod wasm_loader; @@ -33,8 +31,4 @@ pub mod facade { // TODO: re-import v0_37 only pub use namada::{tendermint, tendermint_proto, tendermint_rpc}; pub use tendermint_config; - pub mod tower_abci { - pub use tower_abci::v037::*; - pub use tower_abci::BoxError; - } } diff --git a/crates/apps_lib/src/tendermint_node.rs b/crates/apps_lib/src/tendermint_node.rs index b5a01fa9a7..17b6d4a9ec 100644 --- a/crates/apps_lib/src/tendermint_node.rs +++ b/crates/apps_lib/src/tendermint_node.rs @@ -1,29 +1,13 @@ -use std::env; use std::path::{Path, PathBuf}; -use std::process::Stdio; -use std::str::FromStr; use borsh_ext::BorshSerializeExt; -use namada::core::chain::{ChainId, ProposalBytes}; use namada::core::key::*; -use namada::core::storage::BlockHeight; -use namada::core::time::DateTimeUtc; use serde_json::json; use sha2::{Digest, Sha256}; use thiserror::Error; -use tokio::fs::{File, OpenOptions}; -use tokio::io::{AsyncReadExt, AsyncWriteExt}; -use tokio::process::{Child, Command}; -use tokio::sync::oneshot::error::RecvError; -use tokio::sync::oneshot::{Receiver, Sender}; -use crate::cli::namada_version; -use crate::config; use crate::facade::tendermint::node::Id as TendermintNodeId; -use crate::facade::tendermint::{block, Genesis, Moniker}; -use crate::facade::tendermint_config::{ - Error as TendermintError, TendermintConfig, -}; +use crate::facade::tendermint_config::Error as TendermintError; /// Env. var to output Tendermint log to stdout pub const ENV_VAR_TM_STDOUT: &str = "NAMADA_CMT_STDOUT"; @@ -58,224 +42,6 @@ pub enum Error { pub type Result = std::result::Result; -/// Check if the COMET env var has been set and use that as the -/// location of the COMET binary. Otherwise, assume it is on path -/// -/// Returns an error if the env var is defined but not a valid Unicode. -fn from_env_or_default() -> Result { - match std::env::var("COMETBFT") { - Ok(path) => { - tracing::info!("Using CometBFT path from env variable: {}", path); - Ok(path) - } - Err(std::env::VarError::NotPresent) => Ok(String::from("cometbft")), - Err(std::env::VarError::NotUnicode(msg)) => { - Err(Error::TendermintPath(msg)) - } - } -} - -/// Run the tendermint node. -pub async fn run( - home_dir: PathBuf, - chain_id: ChainId, - genesis_time: DateTimeUtc, - proxy_app_address: String, - config: config::Ledger, - abort_recv: Receiver>, -) -> Result<()> { - let (home_dir_string, tendermint_path) = - initalize_config(home_dir, chain_id, genesis_time, config).await?; - let tendermint_node = - start_node(proxy_app_address, home_dir_string, tendermint_path)?; - - tracing::info!("CometBFT node started"); - - handle_node_response(tendermint_node, abort_recv).await -} - -/// Setup the tendermint configuration. We return the tendermint path and home -/// directory -async fn initalize_config( - home_dir: PathBuf, - chain_id: ChainId, - genesis_time: DateTimeUtc, - config: config::Ledger, -) -> Result<(String, String)> { - let home_dir_string = home_dir.to_string_lossy().to_string(); - let tendermint_path = from_env_or_default()?; - let mode = config.shell.tendermint_mode.to_str().to_owned(); - - // init and run a tendermint node child process - let output = Command::new(&tendermint_path) - .args(["init", &mode, "--home", &home_dir_string]) - .output() - .await - .map_err(Error::Init)?; - if !output.status.success() { - panic!("Tendermint failed to initialize with {:#?}", output); - } - - write_tm_genesis(&home_dir, chain_id, genesis_time).await?; - - update_tendermint_config(&home_dir, config.cometbft).await?; - Ok((home_dir_string, tendermint_path)) -} - -/// Startup the node -fn start_node( - proxy_app_address: String, - home_dir_string: String, - tendermint_path: String, -) -> Result { - let mut tendermint_node = Command::new(tendermint_path); - tendermint_node.args([ - "start", - "--proxy_app", - &proxy_app_address, - "--home", - &home_dir_string, - ]); - - let log_stdout = match env::var(ENV_VAR_TM_STDOUT) { - Ok(val) => val.to_ascii_lowercase().trim() == "true", - _ => false, - }; - if !log_stdout { - tendermint_node.stdout(Stdio::null()); - } - - tendermint_node - .kill_on_drop(true) - .spawn() - .map_err(Error::StartUp) -} - -/// Handle the node response -async fn handle_node_response( - mut tendermint_node: Child, - abort_recv: Receiver>, -) -> Result<()> { - tokio::select! { - status = tendermint_node.wait() => { - match status { - Ok(status) => { - if status.success() { - Ok(()) - } else { - Err(Error::Runtime(status.to_string())) - } - }, - Err(err) => { - Err(Error::Runtime(err.to_string())) - } - } - }, - resp_sender = abort_recv => { - handle_abort(resp_sender, &mut tendermint_node).await; - Ok(()) - } - } -} -// Handle tendermint aborting -async fn handle_abort( - resp_sender: std::result::Result, RecvError>, - node: &mut Child, -) { - match resp_sender { - Ok(resp_sender) => { - tracing_kill(node).await; - resp_sender.send(()).unwrap(); - } - Err(err) => { - tracing::error!( - "The Tendermint abort sender has unexpectedly dropped: {}", - err - ); - tracing_kill(node).await; - } - } -} - -pub fn reset(tendermint_dir: impl AsRef) -> Result<()> { - let tendermint_path = from_env_or_default()?; - let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); - // reset all the Tendermint state, if any - std::process::Command::new(tendermint_path) - .args([ - "reset-state", - "unsafe-all", - // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels - // "--log-level=\"*debug\"", - "--home", - &tendermint_dir, - ]) - .output() - .expect("Failed to reset tendermint node's data"); - std::fs::remove_dir_all(format!("{}/config", tendermint_dir,)) - .expect("Failed to reset tendermint node's config"); - Ok(()) -} - -pub fn reset_state(tendermint_dir: impl AsRef) -> Result<()> { - let tendermint_path = from_env_or_default()?; - let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); - // reset all the Tendermint state, if any - std::process::Command::new(tendermint_path) - .args([ - "unsafe-reset-all", - // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels - // "--log-level=\"*debug\"", - "--home", - &tendermint_dir, - ]) - .output() - .expect("Failed to reset tendermint node's data"); - Ok(()) -} - -pub fn rollback(tendermint_dir: impl AsRef) -> Result { - let tendermint_path = from_env_or_default()?; - let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); - - // Rollback tendermint state, see https://github.com/tendermint/tendermint/blob/main/cmd/tendermint/commands/rollback.go for details - // on how the tendermint rollback behaves - let output = std::process::Command::new(tendermint_path) - .args([ - "rollback", - "unsafe-all", - // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels - // "--log-level=\"*debug\"", - "--home", - &tendermint_dir, - ]) - .output() - .map_err(|e| Error::RollBack(e.to_string()))?; - - // Capture the block height from the output of tendermint rollback - // Tendermint stdout message: "Rolled - // back state to height %d and hash %v" - let output_msg = String::from_utf8(output.stdout) - .map_err(|e| Error::RollBack(e.to_string()))?; - let (_, right) = output_msg - .split_once("Rolled back state to height") - .ok_or(Error::RollBack( - "Missing expected block height in tendermint stdout message" - .to_string(), - ))?; - - let mut sub = right.split_ascii_whitespace(); - let height = sub.next().ok_or(Error::RollBack( - "Missing expected block height in tendermint stdout message" - .to_string(), - ))?; - - Ok(height - .parse::() - .map_err(|e| Error::RollBack(e.to_string()))? - .into()) -} - /// Convert a common signing scheme validator key into JSON for /// Tendermint pub fn validator_key_to_json( @@ -386,140 +152,6 @@ pub fn id_from_pk(pk: &common::PublicKey) -> TendermintNodeId { TendermintNodeId::new(bytes) } -async fn update_tendermint_config( - home_dir: impl AsRef, - mut config: TendermintConfig, -) -> Result<()> { - let path = configuration(home_dir); - - config.moniker = - Moniker::from_str(&format!("{}-{}", config.moniker, namada_version())) - .expect("Invalid moniker"); - - config.consensus.create_empty_blocks = true; - - // mempool config - // https://forum.cosmos.network/t/our-understanding-of-the-cosmos-hub-mempool-issues/12040 - { - // We set this to true as we don't want any invalid tx be re-applied. - // This also implies that it's not possible for an invalid tx to - // become valid again in the future. - config.mempool.keep_invalid_txs_in_cache = false; - - // Drop txs from the mempool that are larger than 1 MiB - // - // The application (Namada) can assign arbitrary max tx sizes, - // which are subject to consensus. Either way, nodes are able to - // configure their local mempool however they please. - // - // 1 MiB is a reasonable value that allows governance proposal txs - // containing wasm code to be proposed by a leading validator - // during some round's start - config.mempool.max_tx_bytes = 1024 * 1024; - - // Hold 50x the max amount of txs in a block. - #[allow(clippy::arithmetic_side_effects)] - { - // Multiply with consts - cannot overflow - config.mempool.max_txs_bytes = 50 * ProposalBytes::MAX.get(); - } - - // Hold up to 4k txs in the mempool - config.mempool.size = 4000; - } - - // Bumped from the default `1_000_000`, because some WASMs can be - // quite large - config.rpc.max_body_bytes = 2_000_000; - - let mut file = OpenOptions::new() - .write(true) - .truncate(true) - .open(path) - .await - .map_err(Error::OpenWriteConfig)?; - let config_str = - toml::to_string(&config).map_err(Error::ConfigSerializeToml)?; - file.write_all(config_str.as_bytes()) - .await - .map_err(Error::WriteConfig) -} - -async fn write_tm_genesis( - home_dir: impl AsRef, - chain_id: ChainId, - genesis_time: DateTimeUtc, -) -> Result<()> { - let path = genesis(home_dir); - let mut file = File::open(&path).await.unwrap_or_else(|err| { - panic!( - "Couldn't open the genesis file at {:?}, error: {}", - path, err - ) - }); - let mut file_contents = vec![]; - file.read_to_end(&mut file_contents) - .await - .expect("Couldn't read Tendermint genesis file"); - // Set `Option` for the omitted `app_state` - let mut genesis: Genesis> = - serde_json::from_slice(&file_contents[..]) - .expect("Couldn't deserialize the genesis file"); - genesis.chain_id = - FromStr::from_str(chain_id.as_str()).expect("Invalid chain ID"); - genesis.genesis_time = genesis_time - .try_into() - .expect("Couldn't convert DateTimeUtc to Tendermint Time"); - if let Some(height) = super::migrating_state() { - genesis.initial_height = height - .0 - .try_into() - .expect("Failed to convert initial genesis height"); - } - const EVIDENCE_AND_PROTOBUF_OVERHEAD: u64 = 10 * 1024 * 1024; - let size = block::Size { - // maximum size of a serialized Tendermint block. - // on Namada, we have a hard-cap of 16 MiB (6 MiB max - // txs in a block + 10 MiB reserved for evidence data, - // block headers and protobuf serialization overhead). - // Addition with consts - cannot overflow. - #[allow(clippy::arithmetic_side_effects)] - max_bytes: EVIDENCE_AND_PROTOBUF_OVERHEAD + ProposalBytes::MAX.get(), - // gas is metered app-side, so we disable it - // at the Tendermint level - max_gas: -1, - // This parameter has no value anymore in Tendermint-core - time_iota_ms: block::Size::default_time_iota_ms(), - }; - genesis.consensus_params.block = size; - - let mut file = OpenOptions::new() - .write(true) - .truncate(true) - .open(&path) - .await - .unwrap_or_else(|err| { - panic!( - "Couldn't open the genesis file at {:?} for writing, error: {}", - path, err - ) - }); - let data = serde_json::to_vec_pretty(&genesis) - .map_err(|_| Error::CantEncode(GENESIS_FILE))?; - file.write_all(&data[..]).await.map_err(|err| { - Error::CantWrite(format!( - "{} to {}. Caused by {err}", - GENESIS_FILE, - path.to_string_lossy() - )) - }) -} - -async fn tracing_kill(node: &mut Child) { - tracing::info!("Shutting down Tendermint node..."); - node.kill().await.unwrap(); -} - fn ensure_empty(path: &PathBuf) -> std::io::Result { std::fs::OpenOptions::new() .create(true) @@ -527,6 +159,7 @@ fn ensure_empty(path: &PathBuf) -> std::io::Result { .truncate(true) .open(path) } + fn validator_key(home_dir: impl AsRef) -> PathBuf { home_dir .as_ref() @@ -541,13 +174,6 @@ fn validator_state(home_dir: impl AsRef) -> PathBuf { .join("priv_validator_state.json") } -fn configuration(home_dir: impl AsRef) -> PathBuf { - home_dir.as_ref().join("config").join("config.toml") -} -fn genesis(home_dir: impl AsRef) -> PathBuf { - home_dir.as_ref().join("config").join("genesis.json") -} - // Constant strings to avoid repeating our magic words const KEY_FILE: &str = "private validator key file"; @@ -555,5 +181,3 @@ const KEY_DIR: &str = "private validator key directory"; const STATE_FILE: &str = "private validator state file"; const STATE_DIR: &str = "private validator state directory"; - -const GENESIS_FILE: &str = "CometBFT genesis file"; diff --git a/crates/benches/Cargo.toml b/crates/benches/Cargo.toml index ae5daaa92b..965e67b502 100644 --- a/crates/benches/Cargo.toml +++ b/crates/benches/Cargo.toml @@ -48,7 +48,8 @@ namada-eth-bridge = [ # NOTE: this crate MUST NOT import any dependency with testing features to prevent benchmarking non-production code [dev-dependencies] namada = { path = "../namada", features = ["rand", "benches"] } -namada_apps_lib = { path = "../apps_lib", features = ["benches"] } +namada_apps_lib = { path = "../apps_lib" } +namada_node = { path = "../node", features = ["benches"] } masp_primitives.workspace = true borsh.workspace = true borsh-ext.workspace = true diff --git a/crates/benches/host_env.rs b/crates/benches/host_env.rs index 9b2870e962..8b13760964 100644 --- a/crates/benches/host_env.rs +++ b/crates/benches/host_env.rs @@ -6,12 +6,12 @@ use namada::ledger::storage::DB; use namada::token::{Amount, Transfer}; use namada::tx::Authorization; use namada::vm::wasm::TxCache; -use namada_apps_lib::bench_utils::{ +use namada_apps_lib::wallet::defaults; +use namada_apps_lib::wasm_loader; +use namada_node::bench_utils::{ BenchShell, TX_INIT_PROPOSAL_WASM, TX_REVEAL_PK_WASM, TX_TRANSFER_WASM, TX_UPDATE_ACCOUNT_WASM, VP_USER_WASM, WASM_DIR, }; -use namada_apps_lib::wallet::defaults; -use namada_apps_lib::wasm_loader; // Benchmarks the validation of a single signature on a single `Section` of a // transaction diff --git a/crates/benches/native_vps.rs b/crates/benches/native_vps.rs index 0287065d1c..0a0d08a1dd 100644 --- a/crates/benches/native_vps.rs +++ b/crates/benches/native_vps.rs @@ -56,13 +56,13 @@ use namada::sdk::masp_proofs::sapling::SaplingVerificationContext; use namada::state::{Epoch, StorageRead, StorageWrite, TxIndex}; use namada::token::{Amount, Transfer}; use namada::tx::{BatchedTx, Code, Section, Tx}; -use namada_apps_lib::bench_utils::{ +use namada_apps_lib::wallet::defaults; +use namada_node::bench_utils::{ generate_foreign_key_tx, BenchShell, BenchShieldedCtx, ALBERT_PAYMENT_ADDRESS, ALBERT_SPENDING_KEY, BERTHA_PAYMENT_ADDRESS, TX_BRIDGE_POOL_WASM, TX_IBC_WASM, TX_INIT_PROPOSAL_WASM, TX_RESIGN_STEWARD, TX_TRANSFER_WASM, TX_UPDATE_STEWARD_COMMISSION, TX_VOTE_PROPOSAL_WASM, }; -use namada_apps_lib::wallet::defaults; fn governance(c: &mut Criterion) { let mut group = c.benchmark_group("vp_governance"); diff --git a/crates/benches/process_wrapper.rs b/crates/benches/process_wrapper.rs index bc79a0d6dc..26ad6d2e74 100644 --- a/crates/benches/process_wrapper.rs +++ b/crates/benches/process_wrapper.rs @@ -6,9 +6,9 @@ use namada::core::time::DateTimeUtc; use namada::token::{Amount, DenominatedAmount, Transfer}; use namada::tx::data::{Fee, WrapperTx}; use namada::tx::Authorization; -use namada_apps_lib::bench_utils::{BenchShell, TX_TRANSFER_WASM}; -use namada_apps_lib::node::ledger::shell::process_proposal::ValidationMeta; use namada_apps_lib::wallet::defaults; +use namada_node::bench_utils::{BenchShell, TX_TRANSFER_WASM}; +use namada_node::shell::process_proposal::ValidationMeta; fn process_tx(c: &mut Criterion) { let mut shell = BenchShell::default(); diff --git a/crates/benches/txs.rs b/crates/benches/txs.rs index be963966a4..58ade0d01b 100644 --- a/crates/benches/txs.rs +++ b/crates/benches/txs.rs @@ -16,10 +16,10 @@ use namada::ibc::core::host::types::identifiers::{ use namada::ibc::primitives::ToProto; use namada::proof_of_stake::KeySeg; use namada::token::Amount; -use namada_apps_lib::bench_utils::{ +use namada_apps_lib::wallet::defaults; +use namada_node::bench_utils::{ BenchShieldedCtx, ALBERT_PAYMENT_ADDRESS, ALBERT_SPENDING_KEY, TX_IBC_WASM, }; -use namada_apps_lib::wallet::defaults; fn ibc(c: &mut Criterion) { let mut group = c.benchmark_group("tx_ibc"); diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 1e8979a736..0dddf16665 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -12,5 +12,99 @@ readme.workspace = true repository.workspace = true version.workspace = true +[features] +default = ["migrations"] +mainnet = [ + "namada/mainnet", +] +# for integration tests and test utilities +testing = [ + "namada_apps_lib/testing", + "namada_test_utils", + "clap", + "lazy_static", +] +benches = [ + "namada_apps_lib/benches", + "namada_test_utils", + "tracing-subscriber", + "rand_core" +] +integration = ["namada_apps_lib/integration"] +jemalloc = ["rocksdb/jemalloc"] +migrations = [ + "namada_migrations", + "namada_sdk/migrations", + "namada/migrations", + "linkme", +] +namada-eth-bridge = [ + "namada/namada-eth-bridge", + "namada_sdk/namada-eth-bridge", +] [dependencies] +namada = {path = "../namada", features = ["multicore", "http-client", "tendermint-rpc", "std"]} +namada_apps_lib = {path = "../apps_lib"} +namada_migrations = {path = "../migrations", optional = true} +namada_sdk = {path = "../sdk", default-features = false, features = ["download-params", "std", "rand"]} +namada_test_utils = {path = "../test_utils", optional = true} + +arse-merkle-tree = { workspace = true, features = ["blake2b"] } +async-trait.workspace = true +blake2b-rs.workspace = true +borsh.workspace = true +borsh-ext.workspace = true +byte-unit.workspace = true +bytes = "1.1.0" +clap = { workspace = true, optional = true } +color-eyre.workspace = true +data-encoding.workspace = true +drain_filter_polyfill.workspace = true +ethabi.workspace = true +ethbridge-bridge-events.workspace = true +ethbridge-events.workspace = true +eyre.workspace = true +futures.workspace = true +itertools.workspace = true +lazy_static = { workspace = true, optional = true } +linkme = { workspace = true, optional = true } +masp_primitives = { workspace = true, features = ["transparent-inputs"] } +masp_proofs = { workspace = true, features = ["bundled-prover", "download-params"] } +num_cpus.workspace = true +num256.workspace = true +num-rational.workspace = true +num-traits.workspace = true +once_cell.workspace = true +prost.workspace = true +rand_core = { workspace = true, optional = true, features = ["std"] } +rayon.workspace = true +regex.workspace = true +rlimit.workspace = true +rocksdb.workspace = true +serde_json = {workspace = true, features = ["raw_value"]} +sha2.workspace = true +smooth-operator.workspace = true +sysinfo.workspace = true +tempfile.workspace = true +thiserror.workspace = true +tokio = {workspace = true, features = ["full"]} +toml.workspace = true +tower-abci.workspace = true +tower.workspace = true +tracing-subscriber = { workspace = true, optional = true, features = ["std", "json", "ansi", "tracing-log"]} +tracing.workspace = true +warp = "0.3.2" + +[dev-dependencies] +namada = {path = "../namada", default-features = false, features = ["testing", "wasm-runtime"]} +namada_apps_lib = {path = "../apps_lib", features = ["testing"]} +namada_test_utils = {path = "../test_utils"} + +assert_matches = "1.5.0" +clap.workspace = true +lazy_static.workspace= true +proptest.workspace = true +rand = { workspace = true, features = ["std"] } +test-log.workspace = true +tokio-test.workspace = true diff --git a/crates/node/src/bench_utils.rs b/crates/node/src/bench_utils.rs index a0a7488719..8053609298 100644 --- a/crates/node/src/bench_utils.rs +++ b/crates/node/src/bench_utils.rs @@ -85,6 +85,10 @@ use namada::tx::{ }; use namada::vm::wasm::run; use namada::{proof_of_stake, tendermint}; +use namada_apps_lib::cli; +use namada_apps_lib::cli::context::FromContext; +use namada_apps_lib::cli::Context; +use namada_apps_lib::wallet::{defaults, CliWalletUtils}; use namada_sdk::masp::{ self, ContextSyncStatus, ShieldedContext, ShieldedTransfer, ShieldedUtils, }; @@ -108,15 +112,13 @@ use rand_core::OsRng; use sha2::{Digest, Sha256}; use tempfile::TempDir; -use crate::cli::context::FromContext; -use crate::cli::Context; use crate::config; use crate::config::global::GlobalConfig; use crate::config::TendermintMode; use crate::facade::tendermint::v0_37::abci::request::InitChain; use crate::facade::tendermint_proto::google::protobuf::Timestamp; -use crate::node::ledger::shell::Shell; -use crate::wallet::{defaults, CliWalletUtils}; +use crate::facade::tendermint_rpc; +use crate::shell::Shell; pub const WASM_DIR: &str = "../../wasm"; @@ -959,12 +961,12 @@ impl Default for BenchShieldedCtx { // needed in `Context::new` let config = GlobalConfig::new(shell.inner.chain_id.clone()); config.write(&base_dir).unwrap(); - let wallet = crate::wallet::CliWalletUtils::new( + let wallet = namada_apps_lib::wallet::CliWalletUtils::new( base_dir.join(shell.inner.chain_id.as_str()), ); wallet.save().unwrap(); - let ctx = Context::new::(crate::cli::args::Global { + let ctx = Context::new::(cli::args::Global { is_pre_genesis: false, chain_id: Some(shell.inner.chain_id.clone()), base_dir, @@ -987,7 +989,7 @@ impl Default for BenchShieldedCtx { true, &mut OsRng, ); - crate::wallet::save(&chain_ctx.wallet).unwrap(); + namada_apps_lib::wallet::save(&chain_ctx.wallet).unwrap(); // Generate payment addresses for both Albert and Bertha for (alias, viewing_alias) in [ @@ -1021,7 +1023,7 @@ impl Default for BenchShieldedCtx { .unwrap(); } - crate::wallet::save(&chain_ctx.wallet).unwrap(); + namada_apps_lib::wallet::save(&chain_ctx.wallet).unwrap(); Self { shielded: ShieldedContext::default(), @@ -1045,7 +1047,7 @@ impl BenchShieldedCtx { .find_spending_key(ALBERT_SPENDING_KEY, None) .unwrap(); self.shielded = async_runtime - .block_on(crate::client::masp::syncing( + .block_on(namada_apps_lib::client::masp::syncing( self.shielded, &self.shell, &StdIo, diff --git a/crates/node/src/ethereum_oracle/events.rs b/crates/node/src/ethereum_oracle/events.rs index 7ecfe51906..64e94a1757 100644 --- a/crates/node/src/ethereum_oracle/events.rs +++ b/crates/node/src/ethereum_oracle/events.rs @@ -306,7 +306,7 @@ pub mod eth_events { use namada::eth_bridge::ethers::contract::EthEvent; use super::*; - use crate::node::ledger::ethereum_oracle::test_tools::event_log::GetLog; + use crate::ethereum_oracle::test_tools::event_log::GetLog; /// Test that for Ethereum events for which a custom number of /// confirmations may be specified, if a value lower than the diff --git a/crates/node/src/ethereum_oracle/mod.rs b/crates/node/src/ethereum_oracle/mod.rs index 97e52d5ef3..c0b49a4db4 100644 --- a/crates/node/src/ethereum_oracle/mod.rs +++ b/crates/node/src/ethereum_oracle/mod.rs @@ -23,7 +23,7 @@ use tokio::task::LocalSet; use self::events::PendingEvent; use super::abortable::AbortableSpawner; -use crate::node::ledger::oracle::control::Command; +use crate::oracle::control::Command; /// The default amount of time the oracle will wait between processing blocks const DEFAULT_BACKOFF: Duration = Duration::from_millis(500); @@ -631,8 +631,8 @@ mod test_oracle { use tokio::time::timeout; use super::*; - use crate::node::ledger::ethereum_oracle::test_tools::event_log::GetLog; - use crate::node::ledger::ethereum_oracle::test_tools::mock_web3_client::{ + use crate::ethereum_oracle::test_tools::event_log::GetLog; + use crate::ethereum_oracle::test_tools::mock_web3_client::{ event_signature, TestCmd, TestOracle, Web3Client, Web3Controller, }; diff --git a/crates/node/src/ethereum_oracle/test_tools/events_endpoint.rs b/crates/node/src/ethereum_oracle/test_tools/events_endpoint.rs index 2826bc8dbd..23f77d9301 100644 --- a/crates/node/src/ethereum_oracle/test_tools/events_endpoint.rs +++ b/crates/node/src/ethereum_oracle/test_tools/events_endpoint.rs @@ -7,7 +7,7 @@ use tokio::sync::oneshot::{Receiver, Sender}; use warp::reply::WithStatus; use warp::Filter; -use crate::node::ledger::ethereum_oracle as oracle; +use crate::ethereum_oracle as oracle; /// The endpoint to which Borsh-serialized Ethereum events should be sent to, /// via an HTTP POST request. diff --git a/crates/node/src/ethereum_oracle/test_tools/mod.rs b/crates/node/src/ethereum_oracle/test_tools/mod.rs index 4d853a9515..46425c4362 100644 --- a/crates/node/src/ethereum_oracle/test_tools/mod.rs +++ b/crates/node/src/ethereum_oracle/test_tools/mod.rs @@ -76,7 +76,7 @@ pub mod mock_web3_client { use tokio::sync::oneshot::Sender; use super::super::super::ethereum_oracle::{Error, Oracle, RpcClient}; - use crate::node::ledger::ethereum_oracle::SyncStatus; + use crate::ethereum_oracle::SyncStatus; /// Mock oracle used during unit tests. pub type TestOracle = Oracle; diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 8e4a384d16..bac9eb2062 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -1,10 +1,28 @@ +//! Library code for a Namada node. + +#![doc(html_favicon_url = "https://dev.namada.net/master/favicon.png")] +#![doc(html_logo_url = "https://dev.namada.net/master/rustdoc-logo.png")] +#![deny(rustdoc::broken_intra_doc_links)] +#![deny(rustdoc::private_intra_doc_links)] +#![warn( + rust_2018_idioms, + clippy::cast_sign_loss, + clippy::cast_possible_truncation, + clippy::cast_possible_wrap, + clippy::cast_lossless, + clippy::arithmetic_side_effects +)] + mod abortable; +#[cfg(feature = "benches")] +pub mod bench_utils; mod broadcaster; pub mod ethereum_oracle; pub mod shell; pub mod shims; pub mod storage; pub mod tendermint_node; +pub mod utils; use std::convert::TryInto; use std::net::SocketAddr; @@ -20,6 +38,11 @@ use namada::eth_bridge::ethers::providers::{Http, Provider}; use namada::state::DB; use namada::storage::DbColFam; use namada::tendermint::abci::request::CheckTxKind; +use namada_apps_lib::cli::args; +use namada_apps_lib::config::utils::{ + convert_tm_addr_to_socket_addr, num_of_threads, +}; +use namada_apps_lib::{config, wasm_loader}; use namada_sdk::state::StateRead; use once_cell::unsync::Lazy; use sysinfo::{RefreshKind, System, SystemExt}; @@ -31,17 +54,22 @@ use self::abortable::AbortableSpawner; use self::ethereum_oracle::last_processed_block; use self::shell::EthereumOracleChannels; use self::shims::abcipp_shim::AbciService; -use crate::cli::args; -use crate::config::utils::{convert_tm_addr_to_socket_addr, num_of_threads}; +use crate::broadcaster::Broadcaster; use crate::config::{ethereum_bridge, TendermintMode}; +use crate::ethereum_oracle as oracle; use crate::facade::tendermint::v0_37::abci::response; use crate::facade::tower_abci::{split, Server}; -use crate::node::ledger::broadcaster::Broadcaster; -use crate::node::ledger::ethereum_oracle as oracle; -use crate::node::ledger::shell::{Error, MempoolTxType, Shell}; -use crate::node::ledger::shims::abcipp_shim::AbcippShim; -use crate::node::ledger::shims::abcipp_shim_types::shim::{Request, Response}; -use crate::{config, wasm_loader}; +use crate::shell::{Error, MempoolTxType, Shell}; +use crate::shims::abcipp_shim::AbcippShim; +use crate::shims::abcipp_shim_types::shim::{Request, Response}; + +pub mod facade { + pub use namada_apps_lib::facade::*; + pub mod tower_abci { + pub use tower_abci::v037::*; + pub use tower_abci::BoxError; + } +} /// Env. var to set a number of Tokio RT worker threads const ENV_VAR_TOKIO_THREADS: &str = "NAMADA_TOKIO_THREADS"; diff --git a/crates/node/src/shell/block_alloc.rs b/crates/node/src/shell/block_alloc.rs index 7f57094c43..321e5d8cd6 100644 --- a/crates/node/src/shell/block_alloc.rs +++ b/crates/node/src/shell/block_alloc.rs @@ -50,7 +50,7 @@ use namada::state::{self, WlState}; #[allow(unused_imports)] use crate::facade::tendermint_proto::abci::RequestPrepareProposal; -use crate::node::ledger::shell::block_alloc::states::WithNormalTxs; +use crate::shell::block_alloc::states::WithNormalTxs; /// Block allocation failure status responses. #[derive(Debug, Copy, Clone, Eq, PartialEq)] @@ -357,7 +357,7 @@ mod tests { BuildingNormalTxBatch, BuildingProtocolTxBatch, NextState, TryAlloc, }; use super::*; - use crate::node::ledger::shims::abcipp_shim_types::shim::TxBytes; + use crate::shims::abcipp_shim_types::shim::TxBytes; /// Convenience alias for a block space allocator at a state with protocol /// txs. diff --git a/crates/node/src/shell/block_alloc/states.rs b/crates/node/src/shell/block_alloc/states.rs index ed5d5e3004..3fcc57a0ad 100644 --- a/crates/node/src/shell/block_alloc/states.rs +++ b/crates/node/src/shell/block_alloc/states.rs @@ -26,7 +26,7 @@ use super::AllocFailure; /// up any remaining space with un-allocated protocol txs. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub struct BuildingProtocolTxBatch { /// One of [`WithNormalTxs`] and [`WithoutNormalTxs`]. _mode: Mode, @@ -35,26 +35,26 @@ pub struct BuildingProtocolTxBatch { /// Allow block proposals to include user submitted txs. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub enum WithNormalTxs {} /// Allow block proposals to include encrypted txs. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub enum WithoutNormalTxs {} /// The leader of the current Tendermint round is building /// a new batch of user submitted (non-protocol) transactions. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub struct BuildingNormalTxBatch {} /// Try to allocate a new transaction on a `BlockAllocator` state. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub trait TryAlloc { type Resources<'tx>; @@ -71,7 +71,7 @@ pub trait TryAlloc { /// [`NextState`]. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub trait NextStateImpl { /// The next state in the `BlockAllocator` state machine. type Next; @@ -85,7 +85,7 @@ pub trait NextStateImpl { /// state with a null transition function. /// /// For more info, read the module docs of -/// [`crate::node::ledger::shell::block_alloc::states`]. +/// [`crate::shell::block_alloc::states`]. pub trait NextState: NextStateImpl { /// Transition to the next state in the `BlockAllocator` state, /// using a null transiiton function. diff --git a/crates/node/src/shell/block_alloc/states/normal_txs.rs b/crates/node/src/shell/block_alloc/states/normal_txs.rs index e15333216f..1b84d08a16 100644 --- a/crates/node/src/shell/block_alloc/states/normal_txs.rs +++ b/crates/node/src/shell/block_alloc/states/normal_txs.rs @@ -5,7 +5,7 @@ use super::{ BuildingNormalTxBatch, BuildingProtocolTxBatch, NextStateImpl, TryAlloc, WithoutNormalTxs, }; -use crate::node::ledger::shell::block_alloc::BlockResources; +use crate::shell::block_alloc::BlockResources; impl TryAlloc for BlockAllocator { type Resources<'tx> = BlockResources<'tx>; diff --git a/crates/node/src/shell/block_alloc/states/protocol_txs.rs b/crates/node/src/shell/block_alloc/states/protocol_txs.rs index 302dc83824..81aaba9942 100644 --- a/crates/node/src/shell/block_alloc/states/protocol_txs.rs +++ b/crates/node/src/shell/block_alloc/states/protocol_txs.rs @@ -5,7 +5,7 @@ use super::{ BuildingNormalTxBatch, BuildingProtocolTxBatch, NextStateImpl, TryAlloc, WithNormalTxs, }; -use crate::node::ledger::shell::block_alloc::TxBin; +use crate::shell::block_alloc::TxBin; impl TryAlloc for BlockAllocator> { type Resources<'tx> = &'tx [u8]; diff --git a/crates/node/src/shell/finalize_block.rs b/crates/node/src/shell/finalize_block.rs index f1505ad874..be1fb8d531 100644 --- a/crates/node/src/shell/finalize_block.rs +++ b/crates/node/src/shell/finalize_block.rs @@ -32,7 +32,7 @@ use namada::vote_ext::ethereum_tx_data_variants; use super::*; use crate::facade::tendermint::abci::types::VoteInfo; -use crate::node::ledger::shell::stats::InternalStats; +use crate::shell::stats::InternalStats; impl Shell where @@ -1040,9 +1040,9 @@ mod test_finalize_block { use super::*; use crate::facade::tendermint::abci::types::Validator; - use crate::node::ledger::oracle::control::Command; - use crate::node::ledger::shell::test_utils::*; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::{ + use crate::oracle::control::Command; + use crate::shell::test_utils::*; + use crate::shims::abcipp_shim_types::shim::request::{ FinalizeBlock, ProcessedTx, }; @@ -1469,7 +1469,7 @@ mod test_finalize_block { test_bp(|shell: &mut TestShell| { let asset = EthAddress([0xff; 20]); let receiver = EthAddress([0xaa; 20]); - let bertha = crate::wallet::defaults::bertha_address(); + let bertha = namada_apps_lib::wallet::defaults::bertha_address(); // add bertha's escrowed `asset` to the pool { let token = wrapped_erc20s::token(&asset); @@ -1526,8 +1526,10 @@ mod test_finalize_block { transfers: vec![transfer], relayer: bertha, }; - let (protocol_key, _) = crate::wallet::defaults::validator_keys(); - let validator_addr = crate::wallet::defaults::validator_address(); + let (protocol_key, _) = + namada_apps_lib::wallet::defaults::validator_keys(); + let validator_addr = + namada_apps_lib::wallet::defaults::validator_address(); let ext = { let ext = ethereum_events::Vext { validator_addr, @@ -2770,8 +2772,10 @@ mod test_finalize_block { fn test_replay_keys_not_merklized() { let (mut shell, _, _, _) = setup(); - let (wrapper_tx, processed_tx) = - mk_wrapper_tx(&shell, &crate::wallet::defaults::albert_keypair()); + let (wrapper_tx, processed_tx) = mk_wrapper_tx( + &shell, + &namada_apps_lib::wallet::defaults::albert_keypair(), + ); let wrapper_hash_key = replay_protection::current_key(&wrapper_tx.header_hash()); @@ -2877,8 +2881,8 @@ mod test_finalize_block { #[test] fn test_duplicated_tx_same_block() { let (mut shell, _broadcaster, _, _) = setup(); - let keypair = crate::wallet::defaults::albert_keypair(); - let keypair_2 = crate::wallet::defaults::bertha_keypair(); + let keypair = namada_apps_lib::wallet::defaults::albert_keypair(); + let keypair_2 = namada_apps_lib::wallet::defaults::bertha_keypair(); let tx_code = TestWasms::TxNoOp.read_bytes(); let mut wrapper = @@ -2984,8 +2988,8 @@ mod test_finalize_block { #[test] fn test_duplicated_tx_same_block_with_failure() { let (mut shell, _, _, _) = setup(); - let keypair = crate::wallet::defaults::albert_keypair(); - let keypair_2 = crate::wallet::defaults::bertha_keypair(); + let keypair = namada_apps_lib::wallet::defaults::albert_keypair(); + let keypair_2 = namada_apps_lib::wallet::defaults::bertha_keypair(); let tx_code = TestWasms::TxWriteStorageKey.read_bytes(); let mut wrapper = @@ -3092,7 +3096,7 @@ mod test_finalize_block { #[test] fn test_tx_hash_handling() { let (mut shell, _broadcaster, _, _) = setup(); - let keypair = crate::wallet::defaults::bertha_keypair(); + let keypair = namada_apps_lib::wallet::defaults::bertha_keypair(); let mut out_of_gas_wrapper = { let tx_code = TestWasms::TxNoOp.read_bytes(); let mut wrapper_tx = @@ -3393,7 +3397,7 @@ mod test_finalize_block { #[test] fn test_fee_payment_if_invalid_inner_tx() { let (mut shell, _, _, _) = setup(); - let keypair = crate::wallet::defaults::albert_keypair(); + let keypair = namada_apps_lib::wallet::defaults::albert_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( @@ -3591,7 +3595,7 @@ mod test_finalize_block { amount_per_gas_unit: DenominatedAmount::native(1.into()), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), 5_000_000.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -3599,7 +3603,7 @@ mod test_finalize_block { wrapper.set_data(Data::new("Transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -5354,7 +5358,7 @@ mod test_finalize_block { #[test] fn test_successful_batch() { let (mut shell, _broadcaster, _, _) = setup(); - let sk = crate::wallet::defaults::bertha_keypair(); + let sk = wallet::defaults::bertha_keypair(); let (batch, processed_tx) = mk_tx_batch(&shell, &sk, false, false, false); @@ -5400,7 +5404,7 @@ mod test_finalize_block { #[test] fn test_failing_atomic_batch() { let (mut shell, _broadcaster, _, _) = setup(); - let sk = crate::wallet::defaults::bertha_keypair(); + let sk = wallet::defaults::bertha_keypair(); let (batch, processed_tx) = mk_tx_batch(&shell, &sk, true, true, false); @@ -5449,7 +5453,7 @@ mod test_finalize_block { #[test] fn test_failing_non_atomic_batch() { let (mut shell, _broadcaster, _, _) = setup(); - let sk = crate::wallet::defaults::bertha_keypair(); + let sk = wallet::defaults::bertha_keypair(); let (batch, processed_tx) = mk_tx_batch(&shell, &sk, false, true, false); @@ -5518,7 +5522,7 @@ mod test_finalize_block { #[test] fn test_gas_error_atomic_batch() { let (mut shell, _, _, _) = setup(); - let sk = crate::wallet::defaults::bertha_keypair(); + let sk = wallet::defaults::bertha_keypair(); let (batch, processed_tx) = mk_tx_batch(&shell, &sk, true, false, true); @@ -5566,7 +5570,7 @@ mod test_finalize_block { #[test] fn test_gas_error_non_atomic_batch() { let (mut shell, _, _, _) = setup(); - let sk = crate::wallet::defaults::bertha_keypair(); + let sk = wallet::defaults::bertha_keypair(); let (batch, processed_tx) = mk_tx_batch(&shell, &sk, false, false, true); diff --git a/crates/node/src/shell/init_chain.rs b/crates/node/src/shell/init_chain.rs index e3bae81805..3f81d9b3fe 100644 --- a/crates/node/src/shell/init_chain.rs +++ b/crates/node/src/shell/init_chain.rs @@ -29,7 +29,6 @@ use crate::config::genesis::transactions::{ BondTx, EstablishedAccountTx, Signed as SignedTx, ValidatorAccountTx, }; use crate::facade::tendermint_proto::google::protobuf; -use crate::node::ledger; use crate::wasm_loader; /// Errors that represent panics in normal flow but get demoted to errors @@ -98,7 +97,7 @@ where chain_id, init.chain_id ))); } - if ledger::migrating_state().is_some() { + if crate::migrating_state().is_some() { let rsp = response::InitChain { validators: self .get_abci_validator_updates(true, |pk, power| { @@ -973,12 +972,12 @@ mod test { use std::str::FromStr; use namada::core::string_encoding::StringEncoded; + use namada_apps_lib::wallet::defaults; use namada_sdk::wallet::alias::Alias; use super::*; use crate::config::genesis::{transactions, GenesisAddress}; - use crate::node::ledger::shell::test_utils::TestShell; - use crate::wallet::defaults; + use crate::shell::test_utils::TestShell; /// Test that the init-chain handler never commits changes directly to the /// DB. diff --git a/crates/node/src/shell/mod.rs b/crates/node/src/shell/mod.rs index d27b2e1ed6..99c98b3ff8 100644 --- a/crates/node/src/shell/mod.rs +++ b/crates/node/src/shell/mod.rs @@ -62,6 +62,7 @@ use namada::tx::{Section, Tx}; use namada::vm::wasm::{TxCache, VpCache}; use namada::vm::{WasmCacheAccess, WasmCacheRwAccess}; use namada::vote_ext::EthereumTxData; +use namada_apps_lib::wallet::{self, ValidatorData, ValidatorKeys}; use namada_sdk::eth_bridge::{EthBridgeQueries, EthereumOracleConfig}; use namada_sdk::tendermint::AppHash; use thiserror::Error; @@ -72,11 +73,9 @@ use crate::config::{self, genesis, TendermintMode, ValidatorLocalConfig}; use crate::facade::tendermint::v0_37::abci::{request, response}; use crate::facade::tendermint::{self, validator}; use crate::facade::tendermint_proto::v0_37::crypto::public_key; -use crate::node::ledger; -use crate::node::ledger::shims::abcipp_shim_types::shim; -use crate::node::ledger::shims::abcipp_shim_types::shim::response::TxResult; -use crate::node::ledger::{storage, tendermint_node}; -use crate::wallet::{ValidatorData, ValidatorKeys}; +use crate::shims::abcipp_shim_types::shim; +use crate::shims::abcipp_shim_types::shim::response::TxResult; +use crate::{storage, tendermint_node}; fn key_to_tendermint( pk: &common::PublicKey, @@ -458,7 +457,7 @@ where "Loading wallet from {}", wallet_path.to_string_lossy() ); - let mut wallet = crate::wallet::load(wallet_path) + let mut wallet = wallet::load(wallet_path) .expect("Validator node must have a wallet"); let validator_local_config_path = wallet_path.join("validator_local_config.toml"); @@ -492,11 +491,10 @@ where #[cfg(test)] { let (protocol_keypair, eth_bridge_keypair) = - crate::wallet::defaults::validator_keys(); + wallet::defaults::validator_keys(); ShellMode::Validator { data: ValidatorData { - address: crate::wallet::defaults::validator_address( - ), + address: wallet::defaults::validator_address(), keys: ValidatorKeys { protocol_keypair, eth_bridge_keypair, @@ -553,7 +551,7 @@ where /// Load the Merkle root hash and the height of the last committed block, if /// any. This is returned when ABCI sends an `info` request. pub fn last_state(&self) -> response::Info { - if ledger::migrating_state().is_some() { + if crate::migrating_state().is_some() { // When migrating state, return a height of 0, such // that CometBFT calls InitChain and subsequently // updates the apphash in its state. @@ -711,7 +709,7 @@ where /// Broadcast any pending protocol transactions. fn broadcast_protocol_txs(&mut self) { - use crate::node::ledger::shell::vote_extensions::iter_protocol_txs; + use crate::shell::vote_extensions::iter_protocol_txs; let ext = self.craft_extension(); @@ -1356,8 +1354,8 @@ mod test_utils { use crate::facade::tendermint_proto::v0_37::abci::{ RequestPrepareProposal, RequestProcessProposal, }; - use crate::node::ledger::shims::abcipp_shim_types; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::{ + use crate::shims::abcipp_shim_types; + use crate::shims::abcipp_shim_types::shim::request::{ FinalizeBlock, ProcessedTx, }; @@ -1374,7 +1372,7 @@ mod test_utils { .expect("Current directory should exist") .canonicalize() .expect("Current directory should exist"); - while current_path.file_name().unwrap() != "apps_lib" { + while current_path.file_name().unwrap() != "node" { current_path.pop(); } // Two-dirs up to root @@ -1570,7 +1568,7 @@ mod test_utils { .collect(), proposer_address: HEXUPPER .decode( - crate::wallet::defaults::validator_keypair() + wallet::defaults::validator_keypair() .to_public() .tm_raw_hash() .as_bytes(), @@ -1618,7 +1616,7 @@ mod test_utils { ) -> abcipp_shim_types::shim::response::PrepareProposal { req.proposer_address = HEXUPPER .decode( - crate::wallet::defaults::validator_keypair() + wallet::defaults::validator_keypair() .to_public() .tm_raw_hash() .as_bytes(), @@ -1800,7 +1798,7 @@ mod test_utils { txs: vec![], proposer_address: HEXUPPER .decode( - crate::wallet::defaults::validator_keypair() + wallet::defaults::validator_keypair() .to_public() .tm_raw_hash() .as_bytes(), @@ -1876,10 +1874,10 @@ mod shell_tests { bridge_pool_roots, ethereum_events, ethereum_tx_data_variants, }; use namada::{address, replay_protection}; + use wallet; use super::*; - use crate::node::ledger::shell::token::DenominatedAmount; - use crate::wallet; + use crate::shell::token::DenominatedAmount; const GAS_LIMIT_MULTIPLIER: u64 = 100_000; @@ -2321,7 +2319,7 @@ mod shell_tests { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -2329,7 +2327,7 @@ mod shell_tests { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -2381,12 +2379,12 @@ mod shell_tests { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::bertha_keypair().ref_to(), + wallet::defaults::bertha_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::bertha_keypair())] + [(0, wallet::defaults::bertha_keypair())] .into_iter() .collect(), None, @@ -2560,7 +2558,7 @@ mod shell_tests { ), token: address::testing::apfel(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -2568,7 +2566,7 @@ mod shell_tests { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -2593,7 +2591,7 @@ mod shell_tests { amount_per_gas_unit: DenominatedAmount::native(0.into()), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -2601,7 +2599,7 @@ mod shell_tests { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -2627,7 +2625,7 @@ mod shell_tests { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + wallet::defaults::albert_keypair().ref_to(), 150_000.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -2635,7 +2633,7 @@ mod shell_tests { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -2661,7 +2659,7 @@ mod shell_tests { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -2669,7 +2667,7 @@ mod shell_tests { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, wallet::defaults::albert_keypair())] .into_iter() .collect(), None, diff --git a/crates/node/src/shell/prepare_proposal.rs b/crates/node/src/shell/prepare_proposal.rs index 4eaf93855e..6b5f5e9a3e 100644 --- a/crates/node/src/shell/prepare_proposal.rs +++ b/crates/node/src/shell/prepare_proposal.rs @@ -24,8 +24,8 @@ use super::block_alloc::{AllocFailure, BlockAllocator, BlockResources}; use crate::config::ValidatorLocalConfig; use crate::facade::tendermint_proto::google::protobuf::Timestamp; use crate::facade::tendermint_proto::v0_37::abci::RequestPrepareProposal; -use crate::node::ledger::shell::ShellMode; -use crate::node::ledger::shims::abcipp_shim_types::shim::{response, TxBytes}; +use crate::shell::ShellMode; +use crate::shims::abcipp_shim_types::shim::{response, TxBytes}; impl Shell where @@ -423,15 +423,15 @@ mod test_prepare_proposal { use namada::tx::{Authorization, Code, Data, Section, Signed}; use namada::vote_ext::{ethereum_events, ethereum_tx_data_variants}; use namada::{replay_protection, token}; + use namada_apps_lib::wallet; use namada_sdk::storage::StorageWrite; use super::*; - use crate::node::ledger::shell::test_utils::{ + use crate::shell::test_utils::{ self, gen_keypair, get_pkh_from_address, TestShell, }; - use crate::node::ledger::shell::EthereumTxData; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::FinalizeBlock; - use crate::wallet; + use crate::shell::EthereumTxData; + use crate::shims::abcipp_shim_types::shim::request::FinalizeBlock; /// Check if we are filtering out an invalid vote extension `vext` fn check_eth_events_filtering( @@ -749,7 +749,7 @@ mod test_prepare_proposal { fn test_wrapper_tx_hash() { let (mut shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( Fee { @@ -791,7 +791,7 @@ mod test_prepare_proposal { fn test_wrapper_tx_hash_same_block() { let (shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( Fee { @@ -824,7 +824,7 @@ mod test_prepare_proposal { fn test_inner_tx_hash() { let (mut shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( Fee { @@ -868,8 +868,8 @@ mod test_prepare_proposal { fn test_inner_tx_hash_same_block() { let (shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); - let keypair_2 = crate::wallet::defaults::albert_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); + let keypair_2 = namada_apps_lib::wallet::defaults::albert_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( Fee { @@ -1061,7 +1061,7 @@ mod test_prepare_proposal { ), token: address::testing::btc(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), ); @@ -1072,7 +1072,7 @@ mod test_prepare_proposal { .set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper_tx.add_section(Section::Authorization(Authorization::new( wrapper_tx.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1107,7 +1107,7 @@ mod test_prepare_proposal { ), token: address::testing::apfel(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), ); @@ -1118,7 +1118,7 @@ mod test_prepare_proposal { .set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper_tx.add_section(Section::Authorization(Authorization::new( wrapper_tx.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1158,7 +1158,7 @@ mod test_prepare_proposal { amount_per_gas_unit: DenominatedAmount::native(10.into()), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), ); let mut wrapper_tx = Tx::from_type(TxType::Wrapper(Box::new(wrapper))); @@ -1168,7 +1168,7 @@ mod test_prepare_proposal { .set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper_tx.add_section(Section::Authorization(Authorization::new( wrapper_tx.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1196,7 +1196,7 @@ mod test_prepare_proposal { amount_per_gas_unit: DenominatedAmount::native(0.into()), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), ); let mut wrapper_tx = Tx::from_type(TxType::Wrapper(Box::new(wrapper))); @@ -1206,7 +1206,7 @@ mod test_prepare_proposal { .set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper_tx.add_section(Section::Authorization(Authorization::new( wrapper_tx.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1235,7 +1235,7 @@ mod test_prepare_proposal { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), ); let mut wrapper_tx = Tx::from_type(TxType::Wrapper(Box::new(wrapper))); @@ -1245,7 +1245,7 @@ mod test_prepare_proposal { .set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper_tx.add_section(Section::Authorization(Authorization::new( wrapper_tx.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1274,7 +1274,7 @@ mod test_prepare_proposal { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), ); let mut wrapper_tx = Tx::from_type(TxType::Wrapper(Box::new(wrapper))); @@ -1284,7 +1284,7 @@ mod test_prepare_proposal { .set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper_tx.add_section(Section::Authorization(Authorization::new( wrapper_tx.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, diff --git a/crates/node/src/shell/process_proposal.rs b/crates/node/src/shell/process_proposal.rs index f14fed4d3b..bc211c6aec 100644 --- a/crates/node/src/shell/process_proposal.rs +++ b/crates/node/src/shell/process_proposal.rs @@ -11,9 +11,9 @@ use namada::vote_ext::ethereum_tx_data_variants; use super::block_alloc::{BlockGas, BlockSpace}; use super::*; use crate::facade::tendermint_proto::v0_37::abci::RequestProcessProposal; -use crate::node::ledger::shell::block_alloc::{AllocFailure, TxBin}; -use crate::node::ledger::shims::abcipp_shim_types::shim::response::ProcessProposal; -use crate::node::ledger::shims::abcipp_shim_types::shim::TxBytes; +use crate::shell::block_alloc::{AllocFailure, TxBin}; +use crate::shims::abcipp_shim_types::shim::response::ProcessProposal; +use crate::shims::abcipp_shim_types::shim::TxBytes; /// Validation metadata, to keep track of used resources or /// transaction numbers, in a block proposal. @@ -564,14 +564,14 @@ mod test_process_proposal { bridge_pool_roots, ethereum_events, validator_set_update, }; use namada::{address, replay_protection}; + use namada_apps_lib::wallet; use super::*; - use crate::node::ledger::shell::test_utils::{ + use crate::shell::test_utils::{ deactivate_bridge, gen_keypair, get_bp_bytes_to_sign, ProcessProposal, TestError, TestShell, }; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::ProcessedTx; - use crate::wallet; + use crate::shims::abcipp_shim_types::shim::request::ProcessedTx; const GAS_LIMIT_MULTIPLIER: u64 = 100_000; @@ -1035,7 +1035,7 @@ mod test_process_proposal { #[test] fn test_wrapper_insufficient_balance_address() { let (mut shell, _recv, _, _) = test_utils::setup_at_height(3u64); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); // reduce address balance to match the 100 token min fee let balance_key = token::storage_key::balance_key( &shell.state.in_mem().native_token, @@ -1100,7 +1100,7 @@ mod test_process_proposal { fn test_raw_tx_rejected() { let (shell, _recv, _, _) = test_utils::setup_at_height(3u64); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut tx = Tx::new(shell.chain_id.clone(), None); tx.add_code("wasm_code".as_bytes().to_owned(), None) @@ -1139,7 +1139,7 @@ mod test_process_proposal { fn test_wrapper_tx_hash() { let (mut shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( @@ -1199,7 +1199,7 @@ mod test_process_proposal { fn test_wrapper_tx_hash_same_block() { let (mut shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); // Add unshielded balance for fee payment let balance_key = token::storage_key::balance_key( @@ -1259,7 +1259,7 @@ mod test_process_proposal { fn test_inner_tx_hash() { let (mut shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( @@ -1319,8 +1319,8 @@ mod test_process_proposal { fn test_inner_tx_hash_same_block() { let (shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); - let keypair_2 = crate::wallet::defaults::albert_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); + let keypair_2 = namada_apps_lib::wallet::defaults::albert_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( @@ -1370,7 +1370,7 @@ mod test_process_proposal { #[test] fn test_wrong_chain_id() { let (shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( @@ -1432,7 +1432,7 @@ mod test_process_proposal { #[test] fn test_expired_wrapper() { let (shell, _recv, _, _) = test_utils::setup(); - let keypair = crate::wallet::defaults::daewon_keypair(); + let keypair = namada_apps_lib::wallet::defaults::daewon_keypair(); let mut wrapper = Tx::from_type(TxType::Wrapper(Box::new(WrapperTx::new( @@ -1570,7 +1570,7 @@ mod test_process_proposal { ), token: address::testing::apfel(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -1578,7 +1578,7 @@ mod test_process_proposal { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1611,7 +1611,7 @@ mod test_process_proposal { amount_per_gas_unit: DenominatedAmount::native(0.into()), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -1619,7 +1619,7 @@ mod test_process_proposal { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1654,7 +1654,7 @@ mod test_process_proposal { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), 150_000.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -1662,7 +1662,7 @@ mod test_process_proposal { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, @@ -1697,7 +1697,7 @@ mod test_process_proposal { ), token: shell.state.in_mem().native_token.clone(), }, - crate::wallet::defaults::albert_keypair().ref_to(), + namada_apps_lib::wallet::defaults::albert_keypair().ref_to(), GAS_LIMIT_MULTIPLIER.into(), )))); wrapper.header.chain_id = shell.chain_id.clone(); @@ -1705,7 +1705,7 @@ mod test_process_proposal { wrapper.set_data(Data::new("transaction data".as_bytes().to_owned())); wrapper.add_section(Section::Authorization(Authorization::new( wrapper.sechashes(), - [(0, crate::wallet::defaults::albert_keypair())] + [(0, namada_apps_lib::wallet::defaults::albert_keypair())] .into_iter() .collect(), None, diff --git a/crates/node/src/shell/queries.rs b/crates/node/src/shell/queries.rs index 7dab7cb27e..fe9c5d5935 100644 --- a/crates/node/src/shell/queries.rs +++ b/crates/node/src/shell/queries.rs @@ -78,8 +78,8 @@ mod test_queries { use namada_sdk::eth_bridge::SendValsetUpd; use super::*; - use crate::node::ledger::shell::test_utils::get_pkh_from_address; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::FinalizeBlock; + use crate::shell::test_utils::get_pkh_from_address; + use crate::shims::abcipp_shim_types::shim::request::FinalizeBlock; macro_rules! test_must_send_valset_upd { (epoch_assertions: $epoch_assertions:expr $(,)?) => { diff --git a/crates/node/src/shell/testing/client.rs b/crates/node/src/shell/testing/client.rs index 5f1df9be2b..037c390bd4 100644 --- a/crates/node/src/shell/testing/client.rs +++ b/crates/node/src/shell/testing/client.rs @@ -1,13 +1,15 @@ use clap::Command as App; use eyre::Report; use namada::io::Io; +use namada_apps_lib::cli::api::{CliApi, CliClient}; +use namada_apps_lib::cli::args::Global; +use namada_apps_lib::cli::{ + args, cmds, Cmd, Context, NamadaClient, NamadaRelayer, +}; use namada_sdk::error::Error as SdkError; use super::node::MockNode; -use crate::cli::api::{CliApi, CliClient}; -use crate::cli::args::Global; -use crate::cli::{args, cmds, Cmd, Context, NamadaClient, NamadaRelayer}; -use crate::node::ledger::shell::testing::utils::{Bin, TestingIo}; +use crate::shell::testing::utils::{Bin, TestingIo}; pub fn run( node: &MockNode, @@ -92,7 +94,7 @@ pub fn run( #[async_trait::async_trait(?Send)] impl<'a> CliClient for &'a MockNode { - fn from_tendermint_address(_: &tendermint_rpc::Url) -> Self { + fn from_tendermint_address(_: &crate::facade::tendermint_rpc::Url) -> Self { unreachable!("MockNode should always be instantiated at test start.") } diff --git a/crates/node/src/shell/testing/node.rs b/crates/node/src/shell/testing/node.rs index dd190774c8..be308531f9 100644 --- a/crates/node/src/shell/testing/node.rs +++ b/crates/node/src/shell/testing/node.rs @@ -42,28 +42,28 @@ use namada_sdk::queries::Client; use namada_sdk::tendermint_proto::google::protobuf::Timestamp; use namada_sdk::tx::data::ResultCode; use regex::Regex; -use tendermint_rpc::endpoint::block; -use tendermint_rpc::SimpleRequest; use tokio::sync::mpsc; -use crate::facade::tendermint; -use crate::facade::tendermint_proto::v0_37::abci::{ - RequestPrepareProposal, RequestProcessProposal, -}; -use crate::facade::tendermint_rpc::error::Error as RpcError; -use crate::node::ledger::ethereum_oracle::test_tools::mock_web3_client::{ +use crate::ethereum_oracle::test_tools::mock_web3_client::{ TestOracle, Web3Client, Web3Controller, }; -use crate::node::ledger::ethereum_oracle::{ +use crate::ethereum_oracle::{ control, last_processed_block, try_process_eth_events, }; -use crate::node::ledger::shell::testing::utils::TestDir; -use crate::node::ledger::shell::{EthereumOracleChannels, Shell}; -use crate::node::ledger::shims::abcipp_shim_types::shim::request::{ +use crate::facade::tendermint_proto::v0_37::abci::{ + RequestPrepareProposal, RequestProcessProposal, +}; +use crate::facade::tendermint_rpc::endpoint::block; +use crate::facade::tendermint_rpc::error::Error as RpcError; +use crate::facade::tendermint_rpc::SimpleRequest; +use crate::facade::{tendermint, tendermint_rpc}; +use crate::shell::testing::utils::TestDir; +use crate::shell::{EthereumOracleChannels, Shell}; +use crate::shims::abcipp_shim_types::shim::request::{ FinalizeBlock, ProcessedTx, }; -use crate::node::ledger::shims::abcipp_shim_types::shim::response::TxResult; -use crate::node::ledger::storage; +use crate::shims::abcipp_shim_types::shim::response::TxResult; +use crate::storage; /// Mock Ethereum oracle used for testing purposes. struct MockEthOracle { diff --git a/crates/node/src/shell/vote_extensions.rs b/crates/node/src/shell/vote_extensions.rs index fa6fdbfcf9..705c6ade0a 100644 --- a/crates/node/src/shell/vote_extensions.rs +++ b/crates/node/src/shell/vote_extensions.rs @@ -15,7 +15,7 @@ use namada::vote_ext::{ }; use super::*; -use crate::node::ledger::shims::abcipp_shim_types::shim::TxBytes; +use crate::shims::abcipp_shim_types::shim::TxBytes; /// Message to be passed to `.expect()` calls in this module. const VALIDATOR_EXPECT_MSG: &str = "Only validators receive this method call."; diff --git a/crates/node/src/shell/vote_extensions/bridge_pool_vext.rs b/crates/node/src/shell/vote_extensions/bridge_pool_vext.rs index 892bc7ad5f..59ced93374 100644 --- a/crates/node/src/shell/vote_extensions/bridge_pool_vext.rs +++ b/crates/node/src/shell/vote_extensions/bridge_pool_vext.rs @@ -76,10 +76,10 @@ mod test_bp_vote_extensions { use namada::tendermint::abci::types::VoteInfo; use namada::tx::Signed; use namada::vote_ext::bridge_pool_roots; + use namada_apps_lib::wallet::defaults::{bertha_address, bertha_keypair}; - use crate::node::ledger::shell::test_utils::*; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::FinalizeBlock; - use crate::wallet::defaults::{bertha_address, bertha_keypair}; + use crate::shell::test_utils::*; + use crate::shims::abcipp_shim_types::shim::request::FinalizeBlock; /// Make Bertha a validator. fn add_validator(shell: &mut TestShell) { diff --git a/crates/node/src/shell/vote_extensions/eth_events.rs b/crates/node/src/shell/vote_extensions/eth_events.rs index f8cd28dec7..6e39450389 100644 --- a/crates/node/src/shell/vote_extensions/eth_events.rs +++ b/crates/node/src/shell/vote_extensions/eth_events.rs @@ -159,8 +159,8 @@ mod test_vote_extensions { use namada_sdk::storage::StorageWrite; use super::validate_eth_events_vext; - use crate::node::ledger::shell::test_utils::*; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::FinalizeBlock; + use crate::shell::test_utils::*; + use crate::shims::abcipp_shim_types::shim::request::FinalizeBlock; /// Test validating Ethereum events. #[test] diff --git a/crates/node/src/shell/vote_extensions/val_set_update.rs b/crates/node/src/shell/vote_extensions/val_set_update.rs index dcbf4e7c0f..389ee7eba8 100644 --- a/crates/node/src/shell/vote_extensions/val_set_update.rs +++ b/crates/node/src/shell/vote_extensions/val_set_update.rs @@ -122,12 +122,12 @@ mod test_vote_extensions { use namada::state::collections::lazy_map::{NestedSubKey, SubKey}; use namada::tendermint::abci::types::VoteInfo; use namada::vote_ext::validator_set_update; + use namada_apps_lib::wallet; use namada_sdk::eth_bridge::EthBridgeQueries; use super::validate_valset_upd_vext; - use crate::node::ledger::shell::test_utils::{self, get_pkh_from_address}; - use crate::node::ledger::shims::abcipp_shim_types::shim::request::FinalizeBlock; - use crate::wallet; + use crate::shell::test_utils::{self, get_pkh_from_address}; + use crate::shims::abcipp_shim_types::shim::request::FinalizeBlock; /// Test if a [`validator_set_update::Vext`] that incorrectly labels what /// epoch it was included on in a vote extension is rejected diff --git a/crates/node/src/shims/abcipp_shim.rs b/crates/node/src/shims/abcipp_shim.rs index 0632969633..4583666472 100644 --- a/crates/node/src/shims/abcipp_shim.rs +++ b/crates/node/src/shims/abcipp_shim.rs @@ -22,7 +22,7 @@ use crate::facade::tendermint::v0_37::abci::{ request, Request as Req, Response as Resp, }; use crate::facade::tower_abci::BoxError; -use crate::node::ledger::shell::{EthereumOracleChannels, Shell}; +use crate::shell::{EthereumOracleChannels, Shell}; /// The shim wraps the shell, which implements ABCI++. /// The shim makes a crude translation between the ABCI interface currently used diff --git a/crates/node/src/shims/abcipp_shim_types.rs b/crates/node/src/shims/abcipp_shim_types.rs index af94ae8723..6decadeb6b 100644 --- a/crates/node/src/shims/abcipp_shim_types.rs +++ b/crates/node/src/shims/abcipp_shim_types.rs @@ -9,7 +9,7 @@ pub mod shim { use crate::facade::tendermint::v0_37::abci::{ request as tm_request, response as tm_response, }; - use crate::node::ledger::shell; + use crate::shell; pub type TxBytes = prost::bytes::Bytes; diff --git a/crates/node/src/storage/mod.rs b/crates/node/src/storage/mod.rs index 144326599d..610e87b57b 100644 --- a/crates/node/src/storage/mod.rs +++ b/crates/node/src/storage/mod.rs @@ -79,7 +79,7 @@ mod tests { use tempfile::TempDir; use super::*; - use crate::node::ledger::shell::is_merklized_storage_key; + use crate::shell::is_merklized_storage_key; #[test] fn test_crud_value() { diff --git a/crates/node/src/tendermint_node.rs b/crates/node/src/tendermint_node.rs new file mode 100644 index 0000000000..b0a4164ba8 --- /dev/null +++ b/crates/node/src/tendermint_node.rs @@ -0,0 +1,419 @@ +use std::env; +use std::path::{Path, PathBuf}; +use std::process::Stdio; +use std::str::FromStr; + +use namada::core::chain::{ChainId, ProposalBytes}; +use namada::core::storage::BlockHeight; +use namada::core::time::DateTimeUtc; +use namada_apps_lib::cli::namada_version; +use namada_apps_lib::config; +pub use namada_apps_lib::tendermint_node::*; +use thiserror::Error; +use tokio::fs::{File, OpenOptions}; +use tokio::io::{AsyncReadExt, AsyncWriteExt}; +use tokio::process::{Child, Command}; +use tokio::sync::oneshot::error::RecvError; +use tokio::sync::oneshot::{Receiver, Sender}; + +use crate::facade::tendermint::{block, Genesis, Moniker}; +use crate::facade::tendermint_config::{ + Error as TendermintError, TendermintConfig, +}; + +/// Env. var to output Tendermint log to stdout +pub const ENV_VAR_TM_STDOUT: &str = "NAMADA_CMT_STDOUT"; + +#[derive(Error, Debug)] +pub enum Error { + #[error("Failed to initialize CometBFT: {0}")] + Init(std::io::Error), + #[error("Failed to load CometBFT config file: {0}")] + LoadConfig(TendermintError), + #[error("Failed to open CometBFT config for writing: {0}")] + OpenWriteConfig(std::io::Error), + #[error("Failed to serialize CometBFT config TOML to string: {0}")] + ConfigSerializeToml(toml::ser::Error), + #[error("Failed to write CometBFT config: {0}")] + WriteConfig(std::io::Error), + #[error("Failed to start up CometBFT node: {0}")] + StartUp(std::io::Error), + #[error("{0}")] + Runtime(String), + #[error("Failed to rollback CometBFT state: {0}")] + RollBack(String), + #[error("Failed to convert to String: {0:?}")] + TendermintPath(std::ffi::OsString), + #[error("Couldn't write {0}")] + CantWrite(String), + #[error("Couldn't create {0}")] + CantCreate(String), + #[error("Couldn't encode {0}")] + CantEncode(&'static str), +} + +pub type Result = std::result::Result; + +/// Check if the COMET env var has been set and use that as the +/// location of the COMET binary. Otherwise, assume it is on path +/// +/// Returns an error if the env var is defined but not a valid Unicode. +fn from_env_or_default() -> Result { + match std::env::var("COMETBFT") { + Ok(path) => { + tracing::info!("Using CometBFT path from env variable: {}", path); + Ok(path) + } + Err(std::env::VarError::NotPresent) => Ok(String::from("cometbft")), + Err(std::env::VarError::NotUnicode(msg)) => { + Err(Error::TendermintPath(msg)) + } + } +} + +/// Run the tendermint node. +pub async fn run( + home_dir: PathBuf, + chain_id: ChainId, + genesis_time: DateTimeUtc, + proxy_app_address: String, + config: config::Ledger, + abort_recv: Receiver>, +) -> Result<()> { + let (home_dir_string, tendermint_path) = + initalize_config(home_dir, chain_id, genesis_time, config).await?; + let tendermint_node = + start_node(proxy_app_address, home_dir_string, tendermint_path)?; + + tracing::info!("CometBFT node started"); + + handle_node_response(tendermint_node, abort_recv).await +} + +/// Setup the tendermint configuration. We return the tendermint path and home +/// directory +async fn initalize_config( + home_dir: PathBuf, + chain_id: ChainId, + genesis_time: DateTimeUtc, + config: config::Ledger, +) -> Result<(String, String)> { + let home_dir_string = home_dir.to_string_lossy().to_string(); + let tendermint_path = from_env_or_default()?; + let mode = config.shell.tendermint_mode.to_str().to_owned(); + + // init and run a tendermint node child process + let output = Command::new(&tendermint_path) + .args(["init", &mode, "--home", &home_dir_string]) + .output() + .await + .map_err(Error::Init)?; + if !output.status.success() { + panic!("Tendermint failed to initialize with {:#?}", output); + } + + write_tm_genesis(&home_dir, chain_id, genesis_time).await?; + + update_tendermint_config(&home_dir, config.cometbft).await?; + Ok((home_dir_string, tendermint_path)) +} + +/// Startup the node +fn start_node( + proxy_app_address: String, + home_dir_string: String, + tendermint_path: String, +) -> Result { + let mut tendermint_node = Command::new(tendermint_path); + tendermint_node.args([ + "start", + "--proxy_app", + &proxy_app_address, + "--home", + &home_dir_string, + ]); + + let log_stdout = match env::var(ENV_VAR_TM_STDOUT) { + Ok(val) => val.to_ascii_lowercase().trim() == "true", + _ => false, + }; + if !log_stdout { + tendermint_node.stdout(Stdio::null()); + } + + tendermint_node + .kill_on_drop(true) + .spawn() + .map_err(Error::StartUp) +} + +/// Handle the node response +async fn handle_node_response( + mut tendermint_node: Child, + abort_recv: Receiver>, +) -> Result<()> { + tokio::select! { + status = tendermint_node.wait() => { + match status { + Ok(status) => { + if status.success() { + Ok(()) + } else { + Err(Error::Runtime(status.to_string())) + } + }, + Err(err) => { + Err(Error::Runtime(err.to_string())) + } + } + }, + resp_sender = abort_recv => { + handle_abort(resp_sender, &mut tendermint_node).await; + Ok(()) + } + } +} +// Handle tendermint aborting +async fn handle_abort( + resp_sender: std::result::Result, RecvError>, + node: &mut Child, +) { + match resp_sender { + Ok(resp_sender) => { + tracing_kill(node).await; + resp_sender.send(()).unwrap(); + } + Err(err) => { + tracing::error!( + "The Tendermint abort sender has unexpectedly dropped: {}", + err + ); + tracing_kill(node).await; + } + } +} + +pub fn reset(tendermint_dir: impl AsRef) -> Result<()> { + let tendermint_path = from_env_or_default()?; + let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); + // reset all the Tendermint state, if any + std::process::Command::new(tendermint_path) + .args([ + "reset-state", + "unsafe-all", + // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels + // "--log-level=\"*debug\"", + "--home", + &tendermint_dir, + ]) + .output() + .expect("Failed to reset tendermint node's data"); + std::fs::remove_dir_all(format!("{}/config", tendermint_dir,)) + .expect("Failed to reset tendermint node's config"); + Ok(()) +} + +pub fn reset_state(tendermint_dir: impl AsRef) -> Result<()> { + let tendermint_path = from_env_or_default()?; + let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); + // reset all the Tendermint state, if any + std::process::Command::new(tendermint_path) + .args([ + "unsafe-reset-all", + // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels + // "--log-level=\"*debug\"", + "--home", + &tendermint_dir, + ]) + .output() + .expect("Failed to reset tendermint node's data"); + Ok(()) +} + +pub fn rollback(tendermint_dir: impl AsRef) -> Result { + let tendermint_path = from_env_or_default()?; + let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); + + // Rollback tendermint state, see https://github.com/tendermint/tendermint/blob/main/cmd/tendermint/commands/rollback.go for details + // on how the tendermint rollback behaves + let output = std::process::Command::new(tendermint_path) + .args([ + "rollback", + "unsafe-all", + // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels + // "--log-level=\"*debug\"", + "--home", + &tendermint_dir, + ]) + .output() + .map_err(|e| Error::RollBack(e.to_string()))?; + + // Capture the block height from the output of tendermint rollback + // Tendermint stdout message: "Rolled + // back state to height %d and hash %v" + let output_msg = String::from_utf8(output.stdout) + .map_err(|e| Error::RollBack(e.to_string()))?; + let (_, right) = output_msg + .split_once("Rolled back state to height") + .ok_or(Error::RollBack( + "Missing expected block height in tendermint stdout message" + .to_string(), + ))?; + + let mut sub = right.split_ascii_whitespace(); + let height = sub.next().ok_or(Error::RollBack( + "Missing expected block height in tendermint stdout message" + .to_string(), + ))?; + + Ok(height + .parse::() + .map_err(|e| Error::RollBack(e.to_string()))? + .into()) +} + +async fn update_tendermint_config( + home_dir: impl AsRef, + mut config: TendermintConfig, +) -> Result<()> { + let path = configuration(home_dir); + + config.moniker = + Moniker::from_str(&format!("{}-{}", config.moniker, namada_version())) + .expect("Invalid moniker"); + + config.consensus.create_empty_blocks = true; + + // mempool config + // https://forum.cosmos.network/t/our-understanding-of-the-cosmos-hub-mempool-issues/12040 + { + // We set this to true as we don't want any invalid tx be re-applied. + // This also implies that it's not possible for an invalid tx to + // become valid again in the future. + config.mempool.keep_invalid_txs_in_cache = false; + + // Drop txs from the mempool that are larger than 1 MiB + // + // The application (Namada) can assign arbitrary max tx sizes, + // which are subject to consensus. Either way, nodes are able to + // configure their local mempool however they please. + // + // 1 MiB is a reasonable value that allows governance proposal txs + // containing wasm code to be proposed by a leading validator + // during some round's start + config.mempool.max_tx_bytes = 1024 * 1024; + + // Hold 50x the max amount of txs in a block. + #[allow(clippy::arithmetic_side_effects)] + { + // Multiply with consts - cannot overflow + config.mempool.max_txs_bytes = 50 * ProposalBytes::MAX.get(); + } + + // Hold up to 4k txs in the mempool + config.mempool.size = 4000; + } + + // Bumped from the default `1_000_000`, because some WASMs can be + // quite large + config.rpc.max_body_bytes = 2_000_000; + + let mut file = OpenOptions::new() + .write(true) + .truncate(true) + .open(path) + .await + .map_err(Error::OpenWriteConfig)?; + let config_str = + toml::to_string(&config).map_err(Error::ConfigSerializeToml)?; + file.write_all(config_str.as_bytes()) + .await + .map_err(Error::WriteConfig) +} + +async fn write_tm_genesis( + home_dir: impl AsRef, + chain_id: ChainId, + genesis_time: DateTimeUtc, +) -> Result<()> { + let path = genesis(home_dir); + let mut file = File::open(&path).await.unwrap_or_else(|err| { + panic!( + "Couldn't open the genesis file at {:?}, error: {}", + path, err + ) + }); + let mut file_contents = vec![]; + file.read_to_end(&mut file_contents) + .await + .expect("Couldn't read Tendermint genesis file"); + // Set `Option` for the omitted `app_state` + let mut genesis: Genesis> = + serde_json::from_slice(&file_contents[..]) + .expect("Couldn't deserialize the genesis file"); + genesis.chain_id = + FromStr::from_str(chain_id.as_str()).expect("Invalid chain ID"); + genesis.genesis_time = genesis_time + .try_into() + .expect("Couldn't convert DateTimeUtc to Tendermint Time"); + if let Some(height) = super::migrating_state() { + genesis.initial_height = height + .0 + .try_into() + .expect("Failed to convert initial genesis height"); + } + const EVIDENCE_AND_PROTOBUF_OVERHEAD: u64 = 10 * 1024 * 1024; + let size = block::Size { + // maximum size of a serialized Tendermint block. + // on Namada, we have a hard-cap of 16 MiB (6 MiB max + // txs in a block + 10 MiB reserved for evidence data, + // block headers and protobuf serialization overhead). + // Addition with consts - cannot overflow. + #[allow(clippy::arithmetic_side_effects)] + max_bytes: EVIDENCE_AND_PROTOBUF_OVERHEAD + ProposalBytes::MAX.get(), + // gas is metered app-side, so we disable it + // at the Tendermint level + max_gas: -1, + // This parameter has no value anymore in Tendermint-core + time_iota_ms: block::Size::default_time_iota_ms(), + }; + genesis.consensus_params.block = size; + + let mut file = OpenOptions::new() + .write(true) + .truncate(true) + .open(&path) + .await + .unwrap_or_else(|err| { + panic!( + "Couldn't open the genesis file at {:?} for writing, error: {}", + path, err + ) + }); + let data = serde_json::to_vec_pretty(&genesis) + .map_err(|_| Error::CantEncode(GENESIS_FILE))?; + file.write_all(&data[..]).await.map_err(|err| { + Error::CantWrite(format!( + "{} to {}. Caused by {err}", + GENESIS_FILE, + path.to_string_lossy() + )) + }) +} + +async fn tracing_kill(node: &mut Child) { + tracing::info!("Shutting down Tendermint node..."); + node.kill().await.unwrap(); +} + +fn configuration(home_dir: impl AsRef) -> PathBuf { + home_dir.as_ref().join("config").join("config.toml") +} + +fn genesis(home_dir: impl AsRef) -> PathBuf { + home_dir.as_ref().join("config").join("genesis.json") +} + +// Constant strings to avoid repeating our magic words + +const GENESIS_FILE: &str = "CometBFT genesis file"; diff --git a/crates/node/src/utils.rs b/crates/node/src/utils.rs new file mode 100644 index 0000000000..5e8e4c3964 --- /dev/null +++ b/crates/node/src/utils.rs @@ -0,0 +1,25 @@ +//! Node utils commands handlers + +use std::str::FromStr; + +use namada_apps_lib::cli::args::TestGenesis; +use namada_apps_lib::config::genesis; + +pub fn test_genesis(args: TestGenesis) { + use crate::facade::tendermint::Timeout; + + let templates = genesis::templates::load_and_validate(&args.path).unwrap(); + let genesis = genesis::chain::finalize( + templates, + FromStr::from_str("namada-dryrun").unwrap(), + Default::default(), + Timeout::from_str("30s").unwrap(), + ); + let chain_id = &genesis.metadata.chain_id; + let test_dir = tempfile::tempdir().unwrap(); + let config = crate::config::Config::load(test_dir.path(), chain_id, None); + genesis + .write_toml_files(&test_dir.path().join(chain_id.to_string())) + .unwrap(); + crate::test_genesis_files(config.ledger, genesis, args.wasm_dir); +} diff --git a/crates/tests/Cargo.toml b/crates/tests/Cargo.toml index 470268934d..03ab798696 100644 --- a/crates/tests/Cargo.toml +++ b/crates/tests/Cargo.toml @@ -18,7 +18,7 @@ mainnet = [ "namada/mainnet", ] wasm-runtime = ["namada/wasm-runtime"] -integration = ["namada_apps_lib/integration"] +integration = ["namada_node/integration", "namada_apps_lib/integration"] migrations = [ "namada/migrations", "namada_sdk/migrations", @@ -33,10 +33,11 @@ namada-eth-bridge = [ [dependencies] namada = {path = "../namada", features = ["testing"]} namada_core = {path = "../core", features = ["testing"]} +namada_node = { path = "../node", features = ["testing"] } namada_sdk = {path = "../sdk", default-features = false, features = ["tendermint-rpc", "download-params", "std", "rand"]} namada_test_utils = {path = "../test_utils"} -namada_vp_prelude = {path = "../vp_prelude"} namada_tx_prelude = {path = "../tx_prelude"} +namada_vp_prelude = {path = "../vp_prelude"} async-trait.workspace = true chrono.workspace = true concat-idents.workspace = true diff --git a/crates/tests/src/e2e/ledger_tests.rs b/crates/tests/src/e2e/ledger_tests.rs index 199c2c293b..e0a69364e9 100644 --- a/crates/tests/src/e2e/ledger_tests.rs +++ b/crates/tests/src/e2e/ledger_tests.rs @@ -1877,11 +1877,8 @@ fn change_consensus_key() -> Result<()> { let new_sk = wallet.find_secret_key(new_key_alias, None).unwrap(); // Write the key to CometBFT dir let cometbft_dir = test.get_cometbft_home(Who::Validator(0)); - namada_apps_lib::node::ledger::tendermint_node::write_validator_key( - cometbft_dir, - &new_sk, - ) - .unwrap(); + namada_node::tendermint_node::write_validator_key(cometbft_dir, &new_sk) + .unwrap(); println!( "{}", "Done setting up the new validator consensus key in CometBFT.".blue() diff --git a/crates/tests/src/integration/helpers.rs b/crates/tests/src/integration/helpers.rs index 26ba4fcb4c..3b49ccbaea 100644 --- a/crates/tests/src/integration/helpers.rs +++ b/crates/tests/src/integration/helpers.rs @@ -2,12 +2,10 @@ use std::path::PathBuf; use std::str::FromStr; use eyre::eyre; -use namada_apps_lib::node::ledger::shell::testing::client::run; -use namada_apps_lib::node::ledger::shell::testing::node::MockNode; -use namada_apps_lib::node::ledger::shell::testing::utils::{ - Bin, CapturedOutput, -}; use namada_core::address::Address; +use namada_node::shell::testing::client::run; +use namada_node::shell::testing::node::MockNode; +use namada_node::shell::testing::utils::{Bin, CapturedOutput}; /// Query the wallet to get an address from a given alias. pub fn find_address( diff --git a/crates/tests/src/integration/ledger_tests.rs b/crates/tests/src/integration/ledger_tests.rs index feee8217a2..0c17b5b73b 100644 --- a/crates/tests/src/integration/ledger_tests.rs +++ b/crates/tests/src/integration/ledger_tests.rs @@ -7,14 +7,12 @@ use color_eyre::eyre::Result; use data_encoding::HEXLOWER; use namada::core::collections::HashMap; use namada::token; -use namada_apps_lib::node::ledger::shell::testing::client::run; -use namada_apps_lib::node::ledger::shell::testing::utils::{ - Bin, CapturedOutput, -}; use namada_apps_lib::wallet::defaults; use namada_core::dec::Dec; use namada_core::storage::Epoch; use namada_core::token::NATIVE_MAX_DECIMAL_PLACES; +use namada_node::shell::testing::client::run; +use namada_node::shell::testing::utils::{Bin, CapturedOutput}; use namada_sdk::tx::{TX_TRANSFER_WASM, VP_USER_WASM}; use namada_test_utils::TestWasms; use test_log::test; diff --git a/crates/tests/src/integration/masp.rs b/crates/tests/src/integration/masp.rs index d8d59a0f86..4912e3624a 100644 --- a/crates/tests/src/integration/masp.rs +++ b/crates/tests/src/integration/masp.rs @@ -6,14 +6,12 @@ use color_eyre::owo_colors::OwoColorize; use namada::state::{StorageRead, StorageWrite}; use namada::token::storage_key::masp_token_map_key; use namada::token::{self, DenominatedAmount}; -use namada_apps_lib::node::ledger::shell::testing::client::run; -use namada_apps_lib::node::ledger::shell::testing::node::NodeResults; -use namada_apps_lib::node::ledger::shell::testing::utils::{ - Bin, CapturedOutput, -}; use namada_apps_lib::wallet::defaults::christel_keypair; use namada_core::dec::Dec; use namada_core::masp::TokenMap; +use namada_node::shell::testing::client::run; +use namada_node::shell::testing::node::NodeResults; +use namada_node::shell::testing::utils::{Bin, CapturedOutput}; use namada_sdk::masp::fs::FsShieldedUtils; use test_log::test; diff --git a/crates/tests/src/integration/setup.rs b/crates/tests/src/integration/setup.rs index 0b52661c74..448ef59c08 100644 --- a/crates/tests/src/integration/setup.rs +++ b/crates/tests/src/integration/setup.rs @@ -16,15 +16,15 @@ use namada_apps_lib::config::genesis::templates::load_and_validate; use namada_apps_lib::config::TendermintMode; use namada_apps_lib::facade::tendermint::Timeout; use namada_apps_lib::facade::tendermint_proto::google::protobuf::Timestamp; -use namada_apps_lib::node::ledger::shell::testing::node::{ - mock_services, MockNode, MockServicesCfg, MockServicesController, - MockServicesPackage, -}; -use namada_apps_lib::node::ledger::shell::testing::utils::TestDir; -use namada_apps_lib::node::ledger::shell::Shell; use namada_apps_lib::wallet::pre_genesis; use namada_core::chain::ChainIdPrefix; use namada_core::collections::HashMap; +use namada_node::shell::testing::node::{ + mock_services, MockNode, MockServicesCfg, MockServicesController, + MockServicesPackage, +}; +use namada_node::shell::testing::utils::TestDir; +use namada_node::shell::Shell; use namada_sdk::wallet::alias::Alias; use crate::e2e::setup::{copy_wasm_to_chain_dir, SINGLE_NODE_NET_GENESIS}; diff --git a/wasm/Cargo.lock b/wasm/Cargo.lock index 242d8933b0..6e2f7bda24 100644 --- a/wasm/Cargo.lock +++ b/wasm/Cargo.lock @@ -83,6 +83,55 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "anyhow" version = "1.0.75" @@ -110,7 +159,7 @@ dependencies = [ "ark-serialize", "ark-std", "derivative", - "num-traits", + "num-traits 0.2.17", "zeroize", ] @@ -126,7 +175,7 @@ dependencies = [ "ark-std", "derivative", "num-bigint", - "num-traits", + "num-traits 0.2.17", "paste", "rustc_version 0.3.3", "zeroize", @@ -149,7 +198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ "num-bigint", - "num-traits", + "num-traits 0.2.17", "quote", "syn 1.0.109", ] @@ -170,7 +219,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ - "num-traits", + "num-traits 0.2.17", "rand 0.8.5", ] @@ -180,6 +229,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + [[package]] name = "arrayvec" version = "0.7.4" @@ -269,7 +324,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustversion", - "serde", + "serde 1.0.193", "sync_wrapper", "tower", "tower-layer", @@ -352,8 +407,8 @@ checksum = "4ba52d2e35c5bdd0ec8cee00da32a0b89720e36e6363ac95965a5d8c61e59ac7" dependencies = [ "displaydoc", "ics23", - "prost", - "serde", + "prost 0.12.3", + "serde 1.0.193", "serde_json", "sha2 0.10.8", "tendermint 0.35.0", @@ -381,10 +436,15 @@ dependencies = [ "bitvec", "blake2s_simd", "byteorder", + "crossbeam-channel", "ff", "group", + "lazy_static", + "log", + "num_cpus", "pairing", "rand_core 0.6.4", + "rayon", "subtle", ] @@ -394,7 +454,36 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" dependencies = [ - "serde", + "serde 1.0.193", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde 1.0.193", +] + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.5.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.52", ] [[package]] @@ -438,7 +527,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -453,6 +542,16 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake2b-rs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89a8565807f21b913288968e391819e7f9b2f0f46c7b89549c051cccf3a2771" +dependencies = [ + "cc", + "cty", +] + [[package]] name = "blake2b_simd" version = "1.0.2" @@ -460,7 +559,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "constant_time_eq", ] @@ -471,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "constant_time_eq", ] @@ -482,7 +581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "cc", "cfg-if 1.0.0", "constant_time_eq", @@ -624,6 +723,16 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[package]] +name = "byte-unit" +version = "4.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c" +dependencies = [ + "serde 1.0.193", + "utf8-width", +] + [[package]] name = "bytecheck" version = "0.6.11" @@ -658,7 +767,18 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ - "serde", + "serde 1.0.193", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", ] [[package]] @@ -667,7 +787,7 @@ version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -676,7 +796,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -688,7 +808,7 @@ dependencies = [ "camino", "cargo-platform", "semver 1.0.20", - "serde", + "serde 1.0.193", "serde_json", "thiserror", ] @@ -708,9 +828,19 @@ version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ + "jobserver", "libc", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom 7.1.3", +] + [[package]] name = "cfg-if" version = "0.1.10" @@ -762,7 +892,7 @@ dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits", + "num-traits 0.2.17", "wasm-bindgen", "windows-targets 0.48.5", ] @@ -787,6 +917,44 @@ dependencies = [ "version_check", ] +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading 0.8.3", +] + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + [[package]] name = "clru" version = "0.5.0" @@ -803,7 +971,7 @@ dependencies = [ "digest 0.10.7", "hmac 0.12.1", "k256", - "serde", + "serde 1.0.193", "sha2 0.10.8", "thiserror", ] @@ -837,13 +1005,46 @@ dependencies = [ "generic-array", "hex", "ripemd", - "serde", + "serde 1.0.193", "serde_derive", "sha2 0.10.8", "sha3", "thiserror", ] +[[package]] +name = "color-eyre" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + [[package]] name = "concat-idents" version = "1.1.5" @@ -854,6 +1055,22 @@ dependencies = [ "syn 2.0.52", ] +[[package]] +name = "config" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" +dependencies = [ + "lazy_static", + "nom 5.1.3", + "rust-ini", + "serde 1.0.193", + "serde-hjson", + "serde_json", + "toml 0.5.11", + "yaml-rust", +] + [[package]] name = "const-hex" version = "1.10.0" @@ -864,7 +1081,7 @@ dependencies = [ "cpufeatures", "hex", "proptest", - "serde", + "serde 1.0.193", ] [[package]] @@ -945,7 +1162,7 @@ checksum = "7879036156092ad1c22fe0d7316efc5a5eceec2bc3906462a2560215f2a2f929" dependencies = [ "cosmwasm-schema-derive", "schemars", - "serde", + "serde 1.0.193", "serde_json", "thiserror", ] @@ -976,7 +1193,7 @@ dependencies = [ "forward_ref", "hex", "schemars", - "serde", + "serde 1.0.193", "serde-json-wasm 0.5.2", "sha2 0.10.8", "static_assertions", @@ -1060,6 +1277,15 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -1143,6 +1369,12 @@ dependencies = [ "cipher", ] +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -1156,6 +1388,34 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version 0.4.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.52", +] + [[package]] name = "curve25519-dalek-ng" version = "4.1.1" @@ -1177,7 +1437,7 @@ checksum = "d5ff29294ee99373e2cd5fd21786a3c0ced99a52fec2ca347d565489c61b723c" dependencies = [ "cosmwasm-std", "schemars", - "serde", + "serde 1.0.193", ] [[package]] @@ -1319,6 +1579,18 @@ dependencies = [ "syn 2.0.52", ] +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "drain_filter_polyfill" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" + [[package]] name = "dunce" version = "1.0.4" @@ -1333,7 +1605,7 @@ checksum = "7c1a2e028bbf7921549873b291ddc0cfe08b673d9489da81ac28898cd5a0e6e0" dependencies = [ "chrono", "rust_decimal", - "serde", + "serde 1.0.193", "thiserror", "time", "winnow 0.6.8", @@ -1405,23 +1677,37 @@ dependencies = [ "curve25519-dalek-ng", "hex", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "sha2 0.9.9", "thiserror", "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek 4.1.2", + "ed25519", + "serde 1.0.193", + "sha2 0.10.8", + "subtle", + "zeroize", +] + [[package]] name = "ed25519-zebra" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 3.2.0", "hashbrown 0.12.3", "hex", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "sha2 0.9.9", "zeroize", ] @@ -1474,7 +1760,7 @@ dependencies = [ "log", "rand 0.8.5", "rlp", - "serde", + "serde 1.0.193", "sha3", "zeroize", ] @@ -1550,7 +1836,7 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "scrypt", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.10.8", "sha3", @@ -1568,7 +1854,7 @@ dependencies = [ "hex", "once_cell", "regex", - "serde", + "serde 1.0.193", "serde_json", "sha3", "thiserror", @@ -1612,6 +1898,15 @@ dependencies = [ "ethers-contract", ] +[[package]] +name = "ethbridge-events" +version = "0.24.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.24.0#d66708bb8a734111988b9eaf08c7473bd7020c00" +dependencies = [ + "ethbridge-bridge-events", + "ethers", +] + [[package]] name = "ethbridge-structs" version = "0.24.0" @@ -1661,7 +1956,7 @@ checksum = "8c405f24ea3a517899ba7985385c43dc4a7eb1209af3b1e0a1a32d7dcc7f8d09" dependencies = [ "ethers-core", "once_cell", - "serde", + "serde 1.0.193", "serde_json", ] @@ -1679,7 +1974,7 @@ dependencies = [ "futures-util", "once_cell", "pin-project", - "serde", + "serde 1.0.193", "serde_json", "thiserror", ] @@ -1699,7 +1994,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "serde", + "serde 1.0.193", "serde_json", "syn 2.0.52", "toml 0.8.2", @@ -1728,7 +2023,7 @@ version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f03e0bdc216eeb9e355b90cf610ef6c5bb8aca631f97b5ae9980ce34ea7878d" dependencies = [ - "arrayvec", + "arrayvec 0.7.4", "bytes", "cargo_metadata", "chrono", @@ -1742,7 +2037,7 @@ dependencies = [ "open-fastrlp", "rand 0.8.5", "rlp", - "serde", + "serde 1.0.193", "serde_json", "strum 0.25.0", "syn 2.0.52", @@ -1762,7 +2057,7 @@ dependencies = [ "ethers-core", "reqwest", "semver 1.0.20", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tracing", @@ -1785,7 +2080,7 @@ dependencies = [ "futures-util", "instant", "reqwest", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tokio", @@ -1817,7 +2112,7 @@ dependencies = [ "once_cell", "pin-project", "reqwest", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tokio", @@ -1893,6 +2188,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "filetime" version = "0.2.23" @@ -1948,6 +2249,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1974,7 +2290,7 @@ dependencies = [ "libm", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -2155,6 +2471,25 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "git2" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" +dependencies = [ + "bitflags 2.5.0", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "gloo-timers" version = "0.2.6" @@ -2214,7 +2549,7 @@ dependencies = [ "indexmap 2.1.0", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.10", "tracing", ] @@ -2251,6 +2586,40 @@ dependencies = [ "fxhash", ] +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "byteorder", + "num-traits 0.2.17", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http 0.2.11", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http 0.2.11", +] + [[package]] name = "heck" version = "0.4.1" @@ -2269,6 +2638,18 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hidapi" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798154e4b6570af74899d71155fb0072d5b17e6aa12f39c8ef22c60fb8ec99e7" +dependencies = [ + "cc", + "libc", + "pkg-config", + "winapi", +] + [[package]] name = "hmac" version = "0.8.1" @@ -2373,17 +2754,44 @@ dependencies = [ ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "hyper-rustls" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ + "futures-util", + "http 0.2.11", "hyper", - "pin-project-lite", + "rustls", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", "tokio", "tokio-io-timeout", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "iana-time-zone" version = "0.1.58" @@ -2450,7 +2858,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "serde-json-wasm 1.0.1", ] @@ -2480,7 +2888,7 @@ dependencies = [ "primitive-types", "scale-info", "schemars", - "serde", + "serde 1.0.193", "uint", ] @@ -2506,8 +2914,8 @@ dependencies = [ "derive_more", "ibc-client-wasm-types", "ibc-core", - "prost", - "serde", + "prost 0.12.3", + "serde 1.0.193", ] [[package]] @@ -2523,7 +2931,7 @@ dependencies = [ "ibc-core-handler-types", "ibc-core-host", "ibc-primitives", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "tendermint-light-client-verifier", ] @@ -2552,7 +2960,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "tendermint-light-client-verifier", "tendermint-proto 0.36.0", @@ -2571,7 +2979,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", - "serde", + "serde 1.0.193", ] [[package]] @@ -2635,7 +3043,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "sha2 0.10.8", "subtle-encoding", "tendermint 0.36.0", @@ -2688,7 +3096,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2708,7 +3116,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", ] @@ -2742,7 +3150,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2783,7 +3191,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2825,7 +3233,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", - "serde", + "serde 1.0.193", "sha2 0.10.8", "subtle-encoding", "tendermint 0.36.0", @@ -2844,7 +3252,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", ] [[package]] @@ -2877,7 +3285,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2904,10 +3312,10 @@ dependencies = [ "displaydoc", "ibc-proto", "parity-scale-codec", - "prost", + "prost 0.12.3", "scale-info", "schemars", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "time", ] @@ -2925,10 +3333,10 @@ dependencies = [ "ics23", "informalsystems-pbjson 0.7.0", "parity-scale-codec", - "prost", + "prost 0.12.3", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint-proto 0.36.0", "tonic", @@ -2978,9 +3386,9 @@ dependencies = [ "bytes", "hex", "informalsystems-pbjson 0.6.0", - "prost", + "prost 0.12.3", "ripemd", - "serde", + "serde 1.0.193", "sha2 0.10.8", "sha3", ] @@ -3017,7 +3425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "951641f13f873bff03d4bf19ae8bec531935ac0ac2cc775f84d7edfdcfed3f17" dependencies = [ "integer-sqrt", - "num-traits", + "num-traits 0.2.17", "uint", ] @@ -3036,7 +3444,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -3056,7 +3464,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5ad43a3f5795945459d577f6589cf62a476e92c79b75e70cd954364e14ce17b" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -3071,7 +3479,7 @@ version = "0.8.0" source = "git+https://github.com/heliaxdev/index-set?tag=v0.8.1#b0d928f83cf0d465ccda299d131e8df2859b5184" dependencies = [ "borsh 1.4.0", - "serde", + "serde 1.0.193", ] [[package]] @@ -3082,7 +3490,7 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", - "serde", + "serde 1.0.193", ] [[package]] @@ -3103,7 +3511,7 @@ dependencies = [ "borsh 1.4.0", "equivalent", "hashbrown 0.14.3", - "serde", + "serde 1.0.193", ] [[package]] @@ -3113,7 +3521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4eecd90f87bea412eac91c6ef94f6b1e390128290898cbe14f2b926787ae1fb" dependencies = [ "base64 0.13.1", - "serde", + "serde 1.0.193", ] [[package]] @@ -3123,7 +3531,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" dependencies = [ "base64 0.21.7", - "serde", + "serde 1.0.193", ] [[package]] @@ -3150,7 +3558,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" dependencies = [ - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -3159,6 +3567,21 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.11.0" @@ -3183,6 +3606,15 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.66" @@ -3201,7 +3633,7 @@ dependencies = [ "base64 0.21.7", "pem", "ring 0.16.20", - "serde", + "serde 1.0.193", "serde_json", "simple_asn1", ] @@ -3270,18 +3702,115 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "leb128" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "ledger-apdu" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe435806c197dfeaa5efcded5e623c4b8230fd28fdf1e91e7a86e40ef2acbf90" +dependencies = [ + "arrayref", + "no-std-compat", + "snafu", +] + +[[package]] +name = "ledger-namada-rs" +version = "0.0.1" +source = "git+https://github.com/Zondax/ledger-namada?tag=v0.0.12#3e7c30bec1d1e135b94c80b48b194aa7341519a4" +dependencies = [ + "bincode", + "byteorder", + "ed25519-dalek", + "leb128", + "ledger-transport", + "ledger-zondax-generic", + "prost 0.11.9", + "prost-types 0.11.9", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "ledger-transport" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1117f2143d92c157197785bf57711d7b02f2cfa101e162f8ca7900fb7f976321" +dependencies = [ + "async-trait", + "ledger-apdu", +] + +[[package]] +name = "ledger-transport-hid" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ba81a1f5f24396b37211478aff7fbcd605dd4544df8dbed07b9da3c2057aee" +dependencies = [ + "byteorder", + "cfg-if 1.0.0", + "hex", + "hidapi", + "ledger-transport", + "libc", + "log", + "thiserror", +] + +[[package]] +name = "ledger-zondax-generic" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02036c84eab9c48e85bc568d269221ba4f5e1cfbc785c3c2c2f6bb8c131f9287" +dependencies = [ + "async-trait", + "ledger-transport", + "serde 1.0.193", + "thiserror", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "ryu", + "static_assertions", +] + [[package]] name = "libc" version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" +[[package]] +name = "libgit2-sys" +version = "0.16.2+1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.7.4" @@ -3292,6 +3821,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if 1.0.0", + "windows-targets 0.52.0", +] + [[package]] name = "libm" version = "0.2.8" @@ -3309,6 +3848,38 @@ dependencies = [ "redox_syscall", ] +[[package]] +name = "librocksdb-sys" +version = "0.16.0+8.10.0" +source = "git+https://github.com/heliaxdev/rust-rocksdb?rev=4dc7f4fdfa17e923d3078d51261e3db66707754d#4dc7f4fdfa17e923d3078d51261e3db66707754d" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + [[package]] name = "linkme" version = "0.3.25" @@ -3417,7 +3988,7 @@ dependencies = [ "masp_note_encryption", "memuse", "nonempty", - "num-traits", + "num-traits 0.2.17", "proptest", "rand 0.8.5", "rand_core 0.6.4", @@ -3519,6 +4090,22 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -3558,6 +4145,24 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http 0.2.11", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + [[package]] name = "multimap" version = "0.8.3" @@ -3606,25 +4211,26 @@ dependencies = [ "namada_tx_env", "namada_vote_ext", "namada_vp_env", - "num-traits", + "num-traits 0.2.17", "num256", "orion", "owo-colors", "parity-wasm", "paste", "proptest", - "prost", + "prost 0.12.3", "rand 0.8.5", "rand_core 0.6.4", "rayon", "regex", "ripemd", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "slip10_ed25519", "smooth-operator", "tempfile", + "tendermint-rpc", "thiserror", "tiny-bip39", "tiny-hderive", @@ -3655,7 +4261,60 @@ dependencies = [ "namada_migrations", "namada_storage", "proptest", - "serde", + "serde 1.0.193", +] + +[[package]] +name = "namada_apps_lib" +version = "0.35.1" +dependencies = [ + "async-trait", + "base64 0.13.1", + "borsh 1.4.0", + "borsh-ext", + "clap", + "color-eyre", + "config", + "data-encoding", + "derivative", + "directories", + "eyre", + "fd-lock", + "flate2", + "futures", + "git2", + "itertools 0.12.1", + "lazy_static", + "ledger-namada-rs", + "ledger-transport-hid", + "linkme", + "masp_primitives", + "namada", + "namada_macros", + "namada_migrations", + "namada_sdk", + "namada_test_utils", + "prost 0.12.3", + "rand 0.8.5", + "rand_core 0.6.4", + "reqwest", + "rpassword", + "serde 1.0.193", + "serde_json", + "sha2 0.9.9", + "tar", + "tempfile", + "tendermint-config", + "tendermint-rpc", + "textwrap-macros", + "thiserror", + "tokio", + "toml 0.5.11", + "tracing", + "tracing-appender", + "tracing-log", + "tracing-subscriber", + "zeroize", ] [[package]] @@ -3692,15 +4351,15 @@ dependencies = [ "namada_migrations", "num-integer", "num-rational", - "num-traits", + "num-traits 0.2.17", "num256", "num_enum", "primitive-types", "proptest", - "prost-types", + "prost-types 0.12.3", "rand 0.8.5", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "smooth-operator", @@ -3738,7 +4397,7 @@ dependencies = [ "namada_tx", "namada_vote_ext", "rand 0.8.5", - "serde", + "serde 1.0.193", "serde_json", "tendermint 0.36.0", "tendermint-proto 0.36.0", @@ -3755,7 +4414,7 @@ dependencies = [ "namada_core", "namada_macros", "namada_migrations", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tracing", @@ -3771,7 +4430,7 @@ dependencies = [ "namada_events", "namada_macros", "namada_migrations", - "serde", + "serde 1.0.193", "thiserror", ] @@ -3791,7 +4450,7 @@ dependencies = [ "namada_storage", "namada_trans_token", "proptest", - "serde", + "serde 1.0.193", "serde_json", "smooth-operator", "thiserror", @@ -3821,8 +4480,8 @@ dependencies = [ "namada_tx", "primitive-types", "proptest", - "prost", - "serde", + "prost 0.12.3", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "thiserror", @@ -3849,7 +4508,7 @@ dependencies = [ "ics23", "namada_core", "namada_macros", - "prost", + "prost 0.12.3", "sparse-merkle-tree", "thiserror", ] @@ -3863,6 +4522,60 @@ dependencies = [ "namada_macros", ] +[[package]] +name = "namada_node" +version = "0.35.1" +dependencies = [ + "async-trait", + "blake2b-rs", + "borsh 1.4.0", + "borsh-ext", + "byte-unit", + "bytes", + "clap", + "color-eyre", + "data-encoding", + "drain_filter_polyfill", + "ethabi", + "ethbridge-bridge-events", + "ethbridge-events", + "eyre", + "futures", + "itertools 0.12.1", + "lazy_static", + "linkme", + "masp_primitives", + "masp_proofs", + "namada", + "namada_apps_lib", + "namada_migrations", + "namada_sdk", + "namada_test_utils", + "num-rational", + "num-traits 0.2.17", + "num256", + "num_cpus", + "once_cell", + "prost 0.12.3", + "rayon", + "regex", + "rlimit", + "rocksdb", + "serde_json", + "sha2 0.9.9", + "smooth-operator", + "sparse-merkle-tree", + "sysinfo", + "tempfile", + "thiserror", + "tokio", + "toml 0.5.11", + "tower", + "tower-abci", + "tracing", + "warp", +] + [[package]] name = "namada_parameters" version = "0.35.1" @@ -3892,10 +4605,10 @@ dependencies = [ "namada_parameters", "namada_storage", "namada_trans_token", - "num-traits", + "num-traits 0.2.17", "once_cell", "proptest", - "serde", + "serde 1.0.193", "smooth-operator", "thiserror", "tracing", @@ -3948,19 +4661,19 @@ dependencies = [ "namada_token", "namada_tx", "namada_vote_ext", - "num-traits", + "num-traits 0.2.17", "num256", "orion", "owo-colors", "paste", "patricia_tree", "proptest", - "prost", + "prost 0.12.3", "rand 0.8.5", "rand_core 0.6.4", "regex", "ripemd", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "slip10_ed25519", @@ -3989,7 +4702,8 @@ dependencies = [ "namada_storage", "namada_trans_token", "namada_tx", - "serde", + "rayon", + "serde 1.0.193", "smooth-operator", "tracing", ] @@ -4035,7 +4749,7 @@ dependencies = [ "namada_migrations", "namada_replay_protection", "regex", - "serde", + "serde 1.0.193", "smooth-operator", "thiserror", "tracing", @@ -4065,14 +4779,15 @@ dependencies = [ "lazy_static", "namada", "namada_core", + "namada_node", "namada_sdk", "namada_test_utils", "namada_tx_prelude", "namada_vp_prelude", - "num-traits", - "prost", + "num-traits 0.2.17", + "prost 0.12.3", "regex", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "tar", @@ -4121,11 +4836,11 @@ dependencies = [ "namada_macros", "namada_migrations", "num-derive 0.3.3", - "num-traits", + "num-traits 0.2.17", "proptest", - "prost", - "prost-types", - "serde", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "thiserror", @@ -4183,7 +4898,7 @@ dependencies = [ "namada_macros", "namada_migrations", "namada_tx", - "serde", + "serde 1.0.193", ] [[package]] @@ -4223,12 +4938,76 @@ dependencies = [ "thiserror", ] +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" +dependencies = [ + "lexical-core", + "memchr", + "version_check", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "nonempty" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num" version = "0.4.1" @@ -4240,7 +5019,7 @@ dependencies = [ "num-integer", "num-iter", "num-rational", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4251,7 +5030,7 @@ checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4260,7 +5039,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4292,7 +5071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4303,7 +5082,7 @@ checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4315,7 +5094,16 @@ dependencies = [ "autocfg", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.17", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.17", ] [[package]] @@ -4337,8 +5125,8 @@ dependencies = [ "lazy_static", "num", "num-derive 0.3.3", - "num-traits", - "serde", + "num-traits 0.2.17", + "serde 1.0.193", "serde_derive", ] @@ -4412,7 +5200,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ - "arrayvec", + "arrayvec 0.7.4", "auto_impl", "bytes", "ethereum-types", @@ -4431,6 +5219,50 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.52", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "orion" version = "0.16.1" @@ -4443,6 +5275,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "owo-colors" version = "3.5.0" @@ -4464,12 +5302,12 @@ version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" dependencies = [ - "arrayvec", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", - "serde", + "serde 1.0.193", ] [[package]] @@ -4696,6 +5534,18 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "platforms" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" + [[package]] name = "poly1305" version = "0.8.0" @@ -4804,6 +5654,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro2" version = "1.0.78" @@ -4823,7 +5679,7 @@ dependencies = [ "bit-vec", "bitflags 2.5.0", "lazy_static", - "num-traits", + "num-traits 0.2.17", "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", @@ -4833,6 +5689,16 @@ dependencies = [ "unarray", ] +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + [[package]] name = "prost" version = "0.12.3" @@ -4840,7 +5706,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.12.3", ] [[package]] @@ -4857,14 +5723,27 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost", - "prost-types", + "prost 0.12.3", + "prost-types 0.12.3", "regex", "syn 2.0.52", "tempfile", "which", ] +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "prost-derive" version = "0.12.3" @@ -4878,13 +5757,22 @@ dependencies = [ "syn 2.0.52", ] +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] + [[package]] name = "prost-types" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" dependencies = [ - "prost", + "prost 0.12.3", ] [[package]] @@ -5043,7 +5931,7 @@ dependencies = [ "jubjub", "pasta_curves", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "thiserror", "zeroize", ] @@ -5056,7 +5944,7 @@ checksum = "7a60db2c3bc9c6fd1e8631fee75abc008841d27144be744951d6b9b75f9b569c" dependencies = [ "rand_core 0.6.4", "reddsa", - "serde", + "serde 1.0.193", "thiserror", "zeroize", ] @@ -5172,18 +6060,26 @@ dependencies = [ "http 0.2.11", "http-body", "hyper", + "hyper-rustls", + "hyper-tls", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", - "serde", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "serde 1.0.193", "serde_json", "serde_urlencoded", "system-configuration", "tokio", + "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", @@ -5268,6 +6164,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rlimit" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81a9ed03edbed449d6897c2092c71ab5f7b5fb80f6f0b1a3ed6d40a6f9fc0720" +dependencies = [ + "libc", +] + [[package]] name = "rlp" version = "0.5.2" @@ -5290,14 +6195,39 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rocksdb" +version = "0.22.0" +source = "git+https://github.com/heliaxdev/rust-rocksdb?rev=4dc7f4fdfa17e923d3078d51261e3db66707754d#4dc7f4fdfa17e923d3078d51261e3db66707754d" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "rust-ini" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" + [[package]] name = "rust_decimal" version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a" dependencies = [ - "arrayvec", - "num-traits", + "arrayvec 0.7.4", + "num-traits 0.2.17", ] [[package]] @@ -5361,6 +6291,27 @@ dependencies = [ "sct", ] +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -5437,6 +6388,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "schemars" version = "0.8.16" @@ -5445,7 +6405,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "schemars_derive", - "serde", + "serde 1.0.193", "serde_json", ] @@ -5461,6 +6421,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -5496,18 +6462,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] -name = "sec1" -version = "0.7.3" +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", + "core-foundation-sys", + "libc", ] [[package]] @@ -5525,7 +6514,7 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5549,6 +6538,12 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +[[package]] +name = "serde" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" + [[package]] name = "serde" version = "1.0.193" @@ -5558,13 +6553,25 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-hjson" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" +dependencies = [ + "lazy_static", + "num-traits 0.1.43", + "regex", + "serde 0.8.23", +] + [[package]] name = "serde-json-wasm" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e9213a07d53faa0b8dd81e767a54a8188a242fdb9be99ab75ec576a774bfdd7" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5573,7 +6580,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5582,7 +6589,7 @@ version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5615,7 +6622,7 @@ checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", - "serde", + "serde 1.0.193", ] [[package]] @@ -5635,7 +6642,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5647,7 +6654,7 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde", + "serde 1.0.193", ] [[package]] @@ -5657,7 +6664,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ "base16ct", - "serde", + "serde 1.0.193", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", ] [[package]] @@ -5703,6 +6721,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -5741,7 +6765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", - "num-traits", + "num-traits 0.2.17", "thiserror", "time", ] @@ -5770,6 +6794,12 @@ version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + [[package]] name = "smooth-operator" version = "0.6.0" @@ -5788,6 +6818,28 @@ dependencies = [ "syn 2.0.52", ] +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "socket2" version = "0.4.10" @@ -5813,6 +6865,7 @@ name = "sparse-merkle-tree" version = "0.3.1-pre" source = "git+https://github.com/heliaxdev/sparse-merkle-tree?rev=bab8cb96872db22cc9a139b2d3dfc4e00521d097#bab8cb96872db22cc9a139b2d3dfc4e00521d097" dependencies = [ + "blake2b-rs", "borsh 1.4.0", "cfg-if 1.0.0", "ics23", @@ -5854,6 +6907,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "strum" version = "0.24.1" @@ -5959,6 +7018,20 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sysinfo" +version = "0.27.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "winapi", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -6027,11 +7100,11 @@ dependencies = [ "ed25519", "flex-error", "futures", - "num-traits", + "num-traits 0.2.17", "once_cell", - "prost", - "prost-types", - "serde", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_bytes", "serde_json", "serde_repr", @@ -6056,12 +7129,12 @@ dependencies = [ "flex-error", "futures", "k256", - "num-traits", + "num-traits 0.2.17", "once_cell", - "prost", - "prost-types", + "prost 0.12.3", + "prost-types 0.12.3", "ripemd", - "serde", + "serde 1.0.193", "serde_bytes", "serde_json", "serde_repr", @@ -6081,7 +7154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e07b383dc8780ebbec04cfb603f3fdaba6ea6663d8dd861425b1ffa7761fe90d" dependencies = [ "flex-error", - "serde", + "serde 1.0.193", "serde_json", "tendermint 0.36.0", "toml 0.8.2", @@ -6096,7 +7169,7 @@ checksum = "4216e487165e5dbd7af79952eaa0d5f06c5bde861eb76c690acd7f2d2a19395c" dependencies = [ "derive_more", "flex-error", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "time", ] @@ -6110,10 +7183,10 @@ dependencies = [ "bytes", "flex-error", "num-derive 0.4.2", - "num-traits", - "prost", - "prost-types", - "serde", + "num-traits 0.2.17", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_bytes", "subtle-encoding", "time", @@ -6127,9 +7200,9 @@ checksum = "46f193d04afde6592c20fd70788a10b8cb3823091c07456db70d8a93f5fb99c1" dependencies = [ "bytes", "flex-error", - "prost", - "prost-types", - "serde", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_bytes", "subtle-encoding", "time", @@ -6144,12 +7217,14 @@ dependencies = [ "async-trait", "bytes", "flex-error", + "futures", "getrandom 0.2.11", "peg", "pin-project", "rand 0.8.5", + "reqwest", "semver 1.0.20", - "serde", + "serde 1.0.193", "serde_bytes", "serde_json", "subtle", @@ -6159,6 +7234,8 @@ dependencies = [ "tendermint-proto 0.36.0", "thiserror", "time", + "tokio", + "tracing", "url", "uuid 1.8.0", "walkdir", @@ -6172,7 +7249,7 @@ checksum = "b233cec83c56c413ccc346af866cb9206a14d468fcecf0255080107bc9b103c0" dependencies = [ "ed25519-consensus", "gumdrop", - "serde", + "serde 1.0.193", "serde_json", "simple-error", "tempfile", @@ -6201,6 +7278,39 @@ dependencies = [ "syn 2.0.52", ] +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + +[[package]] +name = "textwrap-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975e7e5fec79db404c3f07c9182d1c4450d5e2c68340be6b5a7140f48b276a30" +dependencies = [ + "proc-macro-hack", + "textwrap-macros-impl", +] + +[[package]] +name = "textwrap-macros-impl" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32379e128f71c85438e4086388c6321232b64cd7e8560e2c2431d9bfc51fc3cc" +dependencies = [ + "proc-macro-hack", + "quote", + "syn 1.0.109", + "textwrap", +] + [[package]] name = "thiserror" version = "1.0.50" @@ -6240,7 +7350,7 @@ dependencies = [ "deranged", "itoa", "powerfmt", - "serde", + "serde 1.0.193", "time-core", "time-macros", ] @@ -6354,6 +7464,26 @@ dependencies = [ "syn 2.0.52", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.15" @@ -6365,6 +7495,32 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -6385,7 +7541,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -6394,7 +7550,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ - "serde", + "serde 1.0.193", "serde_spanned", "toml_datetime", "toml_edit 0.20.2", @@ -6406,7 +7562,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -6427,7 +7583,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ "indexmap 2.1.0", - "serde", + "serde 1.0.193", "serde_spanned", "toml_datetime", "winnow 0.5.25", @@ -6462,7 +7618,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", + "prost 0.12.3", "tokio", "tokio-stream", "tower", @@ -6492,18 +7648,38 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", + "hdrhistogram", "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.10", "tower-layer", "tower-service", "tracing", ] +[[package]] +name = "tower-abci" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74290cdda37842bf92c7deb4e7742d087af864fe4f4953446156d72a7778a626" +dependencies = [ + "bytes", + "futures", + "pin-project", + "prost 0.12.3", + "tendermint 0.36.0", + "tendermint-proto 0.36.0", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower", + "tracing", +] + [[package]] name = "tower-layer" version = "0.3.2" @@ -6528,6 +7704,18 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + [[package]] name = "tracing-attributes" version = "0.1.27" @@ -6546,6 +7734,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +dependencies = [ + "tracing", + "tracing-subscriber", ] [[package]] @@ -6558,6 +7757,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde 1.0.193", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.18" @@ -6565,12 +7785,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", + "nu-ansi-term", "once_cell", "regex", + "serde 1.0.193", + "serde_json", "sharded-slab", "thread_local", "tracing", "tracing-core", + "tracing-log", + "tracing-serde", ] [[package]] @@ -6579,6 +7804,25 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +[[package]] +name = "tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.0.0", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "tx_become_validator" version = "0.35.1" @@ -6882,6 +8126,15 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.14" @@ -6894,6 +8147,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.22" @@ -6948,6 +8207,24 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "uuid" version = "0.8.2" @@ -6955,7 +8232,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ "getrandom 0.2.11", - "serde", + "serde 1.0.193", ] [[package]] @@ -6964,6 +8241,18 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.4" @@ -7032,6 +8321,35 @@ dependencies = [ "try-lock", ] +[[package]] +name = "warp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http 0.2.11", + "hyper", + "log", + "mime", + "mime_guess", + "multer", + "percent-encoding", + "pin-project", + "scoped-tls", + "serde 1.0.193", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-tungstenite", + "tokio-util 0.7.10", + "tower-service", + "tracing", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -7185,7 +8503,7 @@ dependencies = [ "enumset", "loupe", "rkyv", - "serde", + "serde 1.0.193", "serde_bytes", "smallvec", "target-lexicon", @@ -7256,7 +8574,7 @@ dependencies = [ "memmap2", "more-asserts", "rustc-demangle", - "serde", + "serde 1.0.193", "serde_bytes", "target-lexicon", "thiserror", @@ -7275,11 +8593,11 @@ dependencies = [ "enum-iterator", "enumset", "leb128", - "libloading", + "libloading 0.7.4", "loupe", "object 0.28.4", "rkyv", - "serde", + "serde 1.0.193", "tempfile", "tracing", "wasmer-artifact", @@ -7346,7 +8664,7 @@ dependencies = [ "indexmap 1.9.3", "loupe", "rkyv", - "serde", + "serde 1.0.193", "thiserror", ] @@ -7370,7 +8688,7 @@ dependencies = [ "region", "rkyv", "scopeguard", - "serde", + "serde 1.0.193", "thiserror", "wasmer-artifact", "wasmer-types", @@ -7750,6 +9068,15 @@ dependencies = [ "rustix", ] +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "zcash_encoding" version = "0.2.0" @@ -7778,3 +9105,13 @@ dependencies = [ "quote", "syn 2.0.52", ] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/wasm_for_tests/Cargo.lock b/wasm_for_tests/Cargo.lock index 9ce0a2ff40..cd193fc4eb 100644 --- a/wasm_for_tests/Cargo.lock +++ b/wasm_for_tests/Cargo.lock @@ -83,6 +83,55 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "anyhow" version = "1.0.75" @@ -110,7 +159,7 @@ dependencies = [ "ark-serialize", "ark-std", "derivative", - "num-traits", + "num-traits 0.2.17", "zeroize", ] @@ -126,7 +175,7 @@ dependencies = [ "ark-std", "derivative", "num-bigint", - "num-traits", + "num-traits 0.2.17", "paste", "rustc_version 0.3.3", "zeroize", @@ -149,7 +198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ "num-bigint", - "num-traits", + "num-traits 0.2.17", "quote", "syn 1.0.109", ] @@ -170,7 +219,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ - "num-traits", + "num-traits 0.2.17", "rand 0.8.5", ] @@ -180,6 +229,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + [[package]] name = "arrayvec" version = "0.7.4" @@ -205,7 +260,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -216,7 +271,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -269,7 +324,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustversion", - "serde", + "serde 1.0.193", "sync_wrapper", "tower", "tower-layer", @@ -352,8 +407,8 @@ checksum = "4ba52d2e35c5bdd0ec8cee00da32a0b89720e36e6363ac95965a5d8c61e59ac7" dependencies = [ "displaydoc", "ics23", - "prost", - "serde", + "prost 0.12.3", + "serde 1.0.193", "serde_json", "sha2 0.10.8", "tendermint 0.35.0", @@ -381,10 +436,15 @@ dependencies = [ "bitvec", "blake2s_simd", "byteorder", + "crossbeam-channel", "ff", "group", + "lazy_static", + "log", + "num_cpus", "pairing", "rand_core 0.6.4", + "rayon", "subtle", ] @@ -394,7 +454,36 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" dependencies = [ - "serde", + "serde 1.0.193", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde 1.0.193", +] + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.5.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.65", ] [[package]] @@ -438,7 +527,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -453,6 +542,16 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake2b-rs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89a8565807f21b913288968e391819e7f9b2f0f46c7b89549c051cccf3a2771" +dependencies = [ + "cc", + "cty", +] + [[package]] name = "blake2b_simd" version = "1.0.2" @@ -460,7 +559,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "constant_time_eq", ] @@ -471,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "constant_time_eq", ] @@ -482,7 +581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "cc", "cfg-if 1.0.0", "constant_time_eq", @@ -568,7 +667,7 @@ dependencies = [ "proc-macro-crate 2.0.1", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", "syn_derive", ] @@ -624,6 +723,16 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[package]] +name = "byte-unit" +version = "4.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c" +dependencies = [ + "serde 1.0.193", + "utf8-width", +] + [[package]] name = "bytecheck" version = "0.6.11" @@ -658,7 +767,18 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ - "serde", + "serde 1.0.193", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", ] [[package]] @@ -667,7 +787,7 @@ version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -676,7 +796,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -688,7 +808,7 @@ dependencies = [ "camino", "cargo-platform", "semver 1.0.20", - "serde", + "serde 1.0.193", "serde_json", "thiserror", ] @@ -708,9 +828,19 @@ version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ + "jobserver", "libc", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom 7.1.3", +] + [[package]] name = "cfg-if" version = "0.1.10" @@ -762,7 +892,7 @@ dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits", + "num-traits 0.2.17", "wasm-bindgen", "windows-targets 0.48.5", ] @@ -787,6 +917,44 @@ dependencies = [ "version_check", ] +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading 0.8.3", +] + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + [[package]] name = "clru" version = "0.5.0" @@ -803,7 +971,7 @@ dependencies = [ "digest 0.10.7", "hmac 0.12.1", "k256", - "serde", + "serde 1.0.193", "sha2 0.10.8", "thiserror", ] @@ -837,13 +1005,46 @@ dependencies = [ "generic-array", "hex", "ripemd", - "serde", + "serde 1.0.193", "serde_derive", "sha2 0.10.8", "sha3", "thiserror", ] +[[package]] +name = "color-eyre" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + [[package]] name = "concat-idents" version = "1.1.5" @@ -851,7 +1052,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76990911f2267d837d9d0ad060aa63aaad170af40904b29461734c339030d4d" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.65", +] + +[[package]] +name = "config" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" +dependencies = [ + "lazy_static", + "nom 5.1.3", + "rust-ini", + "serde 1.0.193", + "serde-hjson", + "serde_json", + "toml 0.5.11", + "yaml-rust", ] [[package]] @@ -864,7 +1081,7 @@ dependencies = [ "cpufeatures", "hex", "proptest", - "serde", + "serde 1.0.193", ] [[package]] @@ -945,7 +1162,7 @@ checksum = "7879036156092ad1c22fe0d7316efc5a5eceec2bc3906462a2560215f2a2f929" dependencies = [ "cosmwasm-schema-derive", "schemars", - "serde", + "serde 1.0.193", "serde_json", "thiserror", ] @@ -976,7 +1193,7 @@ dependencies = [ "forward_ref", "hex", "schemars", - "serde", + "serde 1.0.193", "serde-json-wasm 0.5.2", "sha2 0.10.8", "static_assertions", @@ -1060,6 +1277,15 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -1143,6 +1369,12 @@ dependencies = [ "cipher", ] +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -1156,6 +1388,34 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version 0.4.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + [[package]] name = "curve25519-dalek-ng" version = "4.1.1" @@ -1177,7 +1437,7 @@ checksum = "d5ff29294ee99373e2cd5fd21786a3c0ced99a52fec2ca347d565489c61b723c" dependencies = [ "cosmwasm-std", "schemars", - "serde", + "serde 1.0.193", ] [[package]] @@ -1200,7 +1460,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -1211,7 +1471,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -1316,9 +1576,21 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "drain_filter_polyfill" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" + [[package]] name = "dunce" version = "1.0.4" @@ -1333,7 +1605,7 @@ checksum = "7c1a2e028bbf7921549873b291ddc0cfe08b673d9489da81ac28898cd5a0e6e0" dependencies = [ "chrono", "rust_decimal", - "serde", + "serde 1.0.193", "thiserror", "time", "winnow 0.6.8", @@ -1405,23 +1677,37 @@ dependencies = [ "curve25519-dalek-ng", "hex", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "sha2 0.9.9", "thiserror", "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek 4.1.2", + "ed25519", + "serde 1.0.193", + "sha2 0.10.8", + "subtle", + "zeroize", +] + [[package]] name = "ed25519-zebra" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 3.2.0", "hashbrown 0.12.3", "hex", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "sha2 0.9.9", "zeroize", ] @@ -1474,7 +1760,7 @@ dependencies = [ "log", "rand 0.8.5", "rlp", - "serde", + "serde 1.0.193", "sha3", "zeroize", ] @@ -1517,7 +1803,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -1550,7 +1836,7 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "scrypt", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.10.8", "sha3", @@ -1568,7 +1854,7 @@ dependencies = [ "hex", "once_cell", "regex", - "serde", + "serde 1.0.193", "serde_json", "sha3", "thiserror", @@ -1612,6 +1898,15 @@ dependencies = [ "ethers-contract", ] +[[package]] +name = "ethbridge-events" +version = "0.24.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.24.0#d66708bb8a734111988b9eaf08c7473bd7020c00" +dependencies = [ + "ethbridge-bridge-events", + "ethers", +] + [[package]] name = "ethbridge-structs" version = "0.24.0" @@ -1661,7 +1956,7 @@ checksum = "8c405f24ea3a517899ba7985385c43dc4a7eb1209af3b1e0a1a32d7dcc7f8d09" dependencies = [ "ethers-core", "once_cell", - "serde", + "serde 1.0.193", "serde_json", ] @@ -1679,7 +1974,7 @@ dependencies = [ "futures-util", "once_cell", "pin-project", - "serde", + "serde 1.0.193", "serde_json", "thiserror", ] @@ -1699,9 +1994,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "serde", + "serde 1.0.193", "serde_json", - "syn 2.0.39", + "syn 2.0.65", "toml 0.8.2", "walkdir", ] @@ -1719,7 +2014,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -1728,7 +2023,7 @@ version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f03e0bdc216eeb9e355b90cf610ef6c5bb8aca631f97b5ae9980ce34ea7878d" dependencies = [ - "arrayvec", + "arrayvec 0.7.4", "bytes", "cargo_metadata", "chrono", @@ -1742,10 +2037,10 @@ dependencies = [ "open-fastrlp", "rand 0.8.5", "rlp", - "serde", + "serde 1.0.193", "serde_json", "strum 0.25.0", - "syn 2.0.39", + "syn 2.0.65", "tempfile", "thiserror", "tiny-keccak", @@ -1762,7 +2057,7 @@ dependencies = [ "ethers-core", "reqwest", "semver 1.0.20", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tracing", @@ -1785,7 +2080,7 @@ dependencies = [ "futures-util", "instant", "reqwest", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tokio", @@ -1817,7 +2112,7 @@ dependencies = [ "once_cell", "pin-project", "reqwest", - "serde", + "serde 1.0.193", "serde_json", "thiserror", "tokio", @@ -1893,6 +2188,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "filetime" version = "0.2.23" @@ -1948,6 +2249,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1974,7 +2290,7 @@ dependencies = [ "libm", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -2049,7 +2365,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -2155,6 +2471,25 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "git2" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" +dependencies = [ + "bitflags 2.5.0", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "gloo-timers" version = "0.2.6" @@ -2214,7 +2549,7 @@ dependencies = [ "indexmap 2.1.0", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.10", "tracing", ] @@ -2251,6 +2586,40 @@ dependencies = [ "fxhash", ] +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "byteorder", + "num-traits 0.2.17", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http 0.2.11", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http 0.2.11", +] + [[package]] name = "heck" version = "0.4.1" @@ -2269,6 +2638,18 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hidapi" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798154e4b6570af74899d71155fb0072d5b17e6aa12f39c8ef22c60fb8ec99e7" +dependencies = [ + "cc", + "libc", + "pkg-config", + "winapi", +] + [[package]] name = "hmac" version = "0.8.1" @@ -2373,19 +2754,46 @@ dependencies = [ ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "hyper-rustls" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ + "futures-util", + "http 0.2.11", "hyper", - "pin-project-lite", + "rustls", "tokio", - "tokio-io-timeout", + "tokio-rustls", ] [[package]] -name = "iana-time-zone" +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" @@ -2450,7 +2858,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "serde-json-wasm 1.0.1", ] @@ -2480,7 +2888,7 @@ dependencies = [ "primitive-types", "scale-info", "schemars", - "serde", + "serde 1.0.193", "uint", ] @@ -2506,8 +2914,8 @@ dependencies = [ "derive_more", "ibc-client-wasm-types", "ibc-core", - "prost", - "serde", + "prost 0.12.3", + "serde 1.0.193", ] [[package]] @@ -2523,7 +2931,7 @@ dependencies = [ "ibc-core-handler-types", "ibc-core-host", "ibc-primitives", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "tendermint-light-client-verifier", ] @@ -2552,7 +2960,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "tendermint-light-client-verifier", "tendermint-proto 0.36.0", @@ -2571,7 +2979,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", - "serde", + "serde 1.0.193", ] [[package]] @@ -2635,7 +3043,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "sha2 0.10.8", "subtle-encoding", "tendermint 0.36.0", @@ -2688,7 +3096,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2708,7 +3116,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", ] @@ -2742,7 +3150,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2783,7 +3191,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2825,7 +3233,7 @@ dependencies = [ "ibc-core-host-types", "ibc-primitives", "ibc-proto", - "serde", + "serde 1.0.193", "sha2 0.10.8", "subtle-encoding", "tendermint 0.36.0", @@ -2844,7 +3252,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", ] [[package]] @@ -2877,7 +3285,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint 0.36.0", ] @@ -2890,7 +3298,7 @@ checksum = "23d961d2194fd5229961835d2eb78091906ef8afbaaa55bce7ad41bf3ead8aa9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -2904,10 +3312,10 @@ dependencies = [ "displaydoc", "ibc-proto", "parity-scale-codec", - "prost", + "prost 0.12.3", "scale-info", "schemars", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "time", ] @@ -2925,10 +3333,10 @@ dependencies = [ "ics23", "informalsystems-pbjson 0.7.0", "parity-scale-codec", - "prost", + "prost 0.12.3", "scale-info", "schemars", - "serde", + "serde 1.0.193", "subtle-encoding", "tendermint-proto 0.36.0", "tonic", @@ -2978,9 +3386,9 @@ dependencies = [ "bytes", "hex", "informalsystems-pbjson 0.6.0", - "prost", + "prost 0.12.3", "ripemd", - "serde", + "serde 1.0.193", "sha2 0.10.8", "sha3", ] @@ -3017,7 +3425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "951641f13f873bff03d4bf19ae8bec531935ac0ac2cc775f84d7edfdcfed3f17" dependencies = [ "integer-sqrt", - "num-traits", + "num-traits 0.2.17", "uint", ] @@ -3036,7 +3444,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -3056,7 +3464,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5ad43a3f5795945459d577f6589cf62a476e92c79b75e70cd954364e14ce17b" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -3071,7 +3479,7 @@ version = "0.8.0" source = "git+https://github.com/heliaxdev/index-set?tag=v0.8.1#b0d928f83cf0d465ccda299d131e8df2859b5184" dependencies = [ "borsh 1.2.1", - "serde", + "serde 1.0.193", ] [[package]] @@ -3082,7 +3490,7 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", - "serde", + "serde 1.0.193", ] [[package]] @@ -3103,7 +3511,7 @@ dependencies = [ "borsh 1.2.1", "equivalent", "hashbrown 0.14.3", - "serde", + "serde 1.0.193", ] [[package]] @@ -3113,7 +3521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4eecd90f87bea412eac91c6ef94f6b1e390128290898cbe14f2b926787ae1fb" dependencies = [ "base64 0.13.1", - "serde", + "serde 1.0.193", ] [[package]] @@ -3123,7 +3531,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" dependencies = [ "base64 0.21.7", - "serde", + "serde 1.0.193", ] [[package]] @@ -3150,7 +3558,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" dependencies = [ - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -3159,6 +3567,21 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.11.0" @@ -3183,6 +3606,15 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.66" @@ -3201,7 +3633,7 @@ dependencies = [ "base64 0.21.7", "pem", "ring 0.16.20", - "serde", + "serde 1.0.193", "serde_json", "simple_asn1", ] @@ -3270,18 +3702,115 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "leb128" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "ledger-apdu" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe435806c197dfeaa5efcded5e623c4b8230fd28fdf1e91e7a86e40ef2acbf90" +dependencies = [ + "arrayref", + "no-std-compat", + "snafu", +] + +[[package]] +name = "ledger-namada-rs" +version = "0.0.1" +source = "git+https://github.com/Zondax/ledger-namada?tag=v0.0.12#3e7c30bec1d1e135b94c80b48b194aa7341519a4" +dependencies = [ + "bincode", + "byteorder", + "ed25519-dalek", + "leb128", + "ledger-transport", + "ledger-zondax-generic", + "prost 0.11.9", + "prost-types 0.11.9", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "ledger-transport" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1117f2143d92c157197785bf57711d7b02f2cfa101e162f8ca7900fb7f976321" +dependencies = [ + "async-trait", + "ledger-apdu", +] + +[[package]] +name = "ledger-transport-hid" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ba81a1f5f24396b37211478aff7fbcd605dd4544df8dbed07b9da3c2057aee" +dependencies = [ + "byteorder", + "cfg-if 1.0.0", + "hex", + "hidapi", + "ledger-transport", + "libc", + "log", + "thiserror", +] + +[[package]] +name = "ledger-zondax-generic" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02036c84eab9c48e85bc568d269221ba4f5e1cfbc785c3c2c2f6bb8c131f9287" +dependencies = [ + "async-trait", + "ledger-transport", + "serde 1.0.193", + "thiserror", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "ryu", + "static_assertions", +] + [[package]] name = "libc" version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" +[[package]] +name = "libgit2-sys" +version = "0.16.2+1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.7.4" @@ -3292,6 +3821,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if 1.0.0", + "windows-targets 0.52.0", +] + [[package]] name = "libm" version = "0.2.8" @@ -3309,6 +3848,58 @@ dependencies = [ "redox_syscall", ] +[[package]] +name = "librocksdb-sys" +version = "0.16.0+8.10.0" +source = "git+https://github.com/heliaxdev/rust-rocksdb?rev=4dc7f4fdfa17e923d3078d51261e3db66707754d#4dc7f4fdfa17e923d3078d51261e3db66707754d" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linkme" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833222afbfe72868ac8f9770c91a33673f0d5fefc37c9dbe94aa3548b571623f" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f0dea92dbea3271557cc2e1848723967bba81f722f95026860974ec9283f08" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + [[package]] name = "linux-raw-sys" version = "0.4.12" @@ -3397,7 +3988,7 @@ dependencies = [ "masp_note_encryption", "memuse", "nonempty", - "num-traits", + "num-traits 0.2.17", "proptest", "rand 0.8.5", "rand_core 0.6.4", @@ -3499,6 +4090,22 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -3538,6 +4145,24 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http 0.2.11", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", +] + [[package]] name = "multimap" version = "0.8.3" @@ -3563,6 +4188,7 @@ dependencies = [ "futures", "itertools 0.12.1", "konst", + "linkme", "loupe", "masp_primitives", "masp_proofs", @@ -3574,6 +4200,7 @@ dependencies = [ "namada_governance", "namada_ibc", "namada_macros", + "namada_migrations", "namada_parameters", "namada_proof_of_stake", "namada_replay_protection", @@ -3584,25 +4211,26 @@ dependencies = [ "namada_tx_env", "namada_vote_ext", "namada_vp_env", - "num-traits", + "num-traits 0.2.17", "num256", "orion", "owo-colors", "parity-wasm", "paste", "proptest", - "prost", + "prost 0.12.3", "rand 0.8.5", "rand_core 0.6.4", "rayon", "regex", "ripemd", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "slip10_ed25519", "smooth-operator", "tempfile", + "tendermint-rpc", "thiserror", "tiny-bip39", "tiny-hderive", @@ -3627,11 +4255,66 @@ name = "namada_account" version = "0.35.1" dependencies = [ "borsh 1.2.1", + "linkme", "namada_core", "namada_macros", + "namada_migrations", "namada_storage", "proptest", - "serde", + "serde 1.0.193", +] + +[[package]] +name = "namada_apps_lib" +version = "0.35.1" +dependencies = [ + "async-trait", + "base64 0.13.1", + "borsh 1.2.1", + "borsh-ext", + "clap", + "color-eyre", + "config", + "data-encoding", + "derivative", + "directories", + "eyre", + "fd-lock", + "flate2", + "futures", + "git2", + "itertools 0.12.1", + "lazy_static", + "ledger-namada-rs", + "ledger-transport-hid", + "linkme", + "masp_primitives", + "namada", + "namada_macros", + "namada_migrations", + "namada_sdk", + "namada_test_utils", + "prost 0.12.3", + "rand 0.8.5", + "rand_core 0.6.4", + "reqwest", + "rpassword", + "serde 1.0.193", + "serde_json", + "sha2 0.9.9", + "tar", + "tempfile", + "tendermint-config", + "tendermint-rpc", + "textwrap-macros", + "thiserror", + "tokio", + "toml 0.5.11", + "tracing", + "tracing-appender", + "tracing-log", + "tracing-subscriber", + "zeroize", ] [[package]] @@ -3662,19 +4345,21 @@ dependencies = [ "index-set", "indexmap 2.2.4", "k256", + "linkme", "masp_primitives", "namada_macros", + "namada_migrations", "num-integer", "num-rational", - "num-traits", + "num-traits 0.2.17", "num256", "num_enum", "primitive-types", "proptest", - "prost-types", + "prost-types 0.12.3", "rand 0.8.5", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "smooth-operator", @@ -3698,10 +4383,12 @@ dependencies = [ "eyre", "itertools 0.12.1", "konst", + "linkme", "namada_account", "namada_core", "namada_events", "namada_macros", + "namada_migrations", "namada_parameters", "namada_proof_of_stake", "namada_state", @@ -3710,7 +4397,7 @@ dependencies = [ "namada_tx", "namada_vote_ext", "rand 0.8.5", - "serde", + "serde 1.0.193", "serde_json", "tendermint 0.36.0", "tendermint-proto 0.36.0", @@ -3723,9 +4410,11 @@ name = "namada_events" version = "0.35.1" dependencies = [ "borsh 1.2.1", + "linkme", "namada_core", "namada_macros", - "serde", + "namada_migrations", + "serde 1.0.193", "serde_json", "thiserror", "tracing", @@ -3736,10 +4425,12 @@ name = "namada_gas" version = "0.35.1" dependencies = [ "borsh 1.2.1", + "linkme", "namada_core", "namada_events", "namada_macros", - "serde", + "namada_migrations", + "serde 1.0.193", "thiserror", ] @@ -3750,14 +4441,16 @@ dependencies = [ "borsh 1.2.1", "itertools 0.12.1", "konst", + "linkme", "namada_core", "namada_events", "namada_macros", + "namada_migrations", "namada_parameters", "namada_storage", "namada_trans_token", "proptest", - "serde", + "serde 1.0.193", "serde_json", "smooth-operator", "thiserror", @@ -3787,8 +4480,8 @@ dependencies = [ "namada_tx", "primitive-types", "proptest", - "prost", - "serde", + "prost 0.12.3", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "thiserror", @@ -3815,9 +4508,72 @@ dependencies = [ "ics23", "namada_core", "namada_macros", - "prost", + "prost 0.12.3", + "sparse-merkle-tree", + "thiserror", +] + +[[package]] +name = "namada_migrations" +version = "0.35.1" +dependencies = [ + "lazy_static", + "linkme", + "namada_macros", +] + +[[package]] +name = "namada_node" +version = "0.35.1" +dependencies = [ + "async-trait", + "blake2b-rs", + "borsh 1.2.1", + "borsh-ext", + "byte-unit", + "bytes", + "clap", + "color-eyre", + "data-encoding", + "drain_filter_polyfill", + "ethabi", + "ethbridge-bridge-events", + "ethbridge-events", + "eyre", + "futures", + "itertools 0.12.1", + "lazy_static", + "linkme", + "masp_primitives", + "masp_proofs", + "namada", + "namada_apps_lib", + "namada_migrations", + "namada_sdk", + "namada_test_utils", + "num-rational", + "num-traits 0.2.17", + "num256", + "num_cpus", + "once_cell", + "prost 0.12.3", + "rayon", + "regex", + "rlimit", + "rocksdb", + "serde_json", + "sha2 0.9.9", + "smooth-operator", "sparse-merkle-tree", + "sysinfo", + "tempfile", "thiserror", + "tokio", + "toml 0.5.11", + "tower", + "tower-abci", + "tracing", + "warp", ] [[package]] @@ -3838,19 +4594,21 @@ dependencies = [ "borsh 1.2.1", "data-encoding", "konst", + "linkme", "namada_account", "namada_controller", "namada_core", "namada_events", "namada_governance", "namada_macros", + "namada_migrations", "namada_parameters", "namada_storage", "namada_trans_token", - "num-traits", + "num-traits 0.2.17", "once_cell", "proptest", - "serde", + "serde 1.0.193", "smooth-operator", "thiserror", "tracing", @@ -3884,6 +4642,7 @@ dependencies = [ "itertools 0.12.1", "jubjub", "lazy_static", + "linkme", "masp_primitives", "masp_proofs", "namada_account", @@ -3894,6 +4653,7 @@ dependencies = [ "namada_governance", "namada_ibc", "namada_macros", + "namada_migrations", "namada_parameters", "namada_proof_of_stake", "namada_state", @@ -3901,19 +4661,19 @@ dependencies = [ "namada_token", "namada_tx", "namada_vote_ext", - "num-traits", + "num-traits 0.2.17", "num256", "orion", "owo-colors", "paste", "patricia_tree", "proptest", - "prost", + "prost 0.12.3", "rand 0.8.5", "rand_core 0.6.4", "regex", "ripemd", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "slip10_ed25519", @@ -3942,7 +4702,8 @@ dependencies = [ "namada_storage", "namada_trans_token", "namada_tx", - "serde", + "rayon", + "serde 1.0.193", "smooth-operator", "tracing", ] @@ -3954,11 +4715,13 @@ dependencies = [ "borsh 1.2.1", "ics23", "itertools 0.12.1", + "linkme", "namada_core", "namada_events", "namada_gas", "namada_macros", "namada_merkle_tree", + "namada_migrations", "namada_parameters", "namada_replay_protection", "namada_storage", @@ -3979,12 +4742,14 @@ version = "0.35.1" dependencies = [ "borsh 1.2.1", "itertools 0.12.1", + "linkme", "namada_core", "namada_macros", "namada_merkle_tree", + "namada_migrations", "namada_replay_protection", "regex", - "serde", + "serde 1.0.193", "smooth-operator", "thiserror", "tracing", @@ -4014,14 +4779,15 @@ dependencies = [ "lazy_static", "namada", "namada_core", + "namada_node", "namada_sdk", "namada_test_utils", "namada_tx_prelude", "namada_vp_prelude", - "num-traits", - "prost", + "num-traits 0.2.17", + "prost 0.12.3", "regex", - "serde", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "tar", @@ -4062,17 +4828,19 @@ dependencies = [ "borsh 1.2.1", "data-encoding", "konst", + "linkme", "masp_primitives", "namada_core", "namada_events", "namada_gas", "namada_macros", + "namada_migrations", "num-derive 0.3.3", - "num-traits", + "num-traits 0.2.17", "proptest", - "prost", - "prost-types", - "serde", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_json", "sha2 0.9.9", "thiserror", @@ -4125,10 +4893,12 @@ name = "namada_vote_ext" version = "0.35.1" dependencies = [ "borsh 1.2.1", + "linkme", "namada_core", "namada_macros", + "namada_migrations", "namada_tx", - "serde", + "serde 1.0.193", ] [[package]] @@ -4168,12 +4938,76 @@ dependencies = [ "thiserror", ] +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" +dependencies = [ + "lexical-core", + "memchr", + "version_check", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "nonempty" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num" version = "0.4.1" @@ -4185,7 +5019,7 @@ dependencies = [ "num-integer", "num-iter", "num-rational", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4196,7 +5030,7 @@ checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4205,7 +5039,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4227,7 +5061,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -4237,7 +5071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4248,7 +5082,7 @@ checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.17", ] [[package]] @@ -4260,7 +5094,16 @@ dependencies = [ "autocfg", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.17", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.17", ] [[package]] @@ -4282,8 +5125,8 @@ dependencies = [ "lazy_static", "num", "num-derive 0.3.3", - "num-traits", - "serde", + "num-traits 0.2.17", + "serde 1.0.193", "serde_derive", ] @@ -4315,7 +5158,7 @@ dependencies = [ "proc-macro-crate 2.0.1", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -4357,7 +5200,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ - "arrayvec", + "arrayvec 0.7.4", "auto_impl", "bytes", "ethereum-types", @@ -4376,6 +5219,50 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "orion" version = "0.16.1" @@ -4388,6 +5275,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "owo-colors" version = "3.5.0" @@ -4409,12 +5302,12 @@ version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" dependencies = [ - "arrayvec", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", - "serde", + "serde 1.0.193", ] [[package]] @@ -4616,7 +5509,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -4641,6 +5534,18 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "platforms" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" + [[package]] name = "poly1305" version = "0.8.0" @@ -4671,7 +5576,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -4741,11 +5646,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" dependencies = [ "unicode-ident", ] @@ -4760,7 +5671,7 @@ dependencies = [ "bit-vec", "bitflags 2.5.0", "lazy_static", - "num-traits", + "num-traits 0.2.17", "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", @@ -4770,6 +5681,16 @@ dependencies = [ "unarray", ] +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + [[package]] name = "prost" version = "0.12.3" @@ -4777,7 +5698,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.12.3", ] [[package]] @@ -4794,14 +5715,27 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost", - "prost-types", + "prost 0.12.3", + "prost-types 0.12.3", "regex", - "syn 2.0.39", + "syn 2.0.65", "tempfile", "which", ] +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "prost-derive" version = "0.12.3" @@ -4812,7 +5746,16 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", ] [[package]] @@ -4821,7 +5764,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" dependencies = [ - "prost", + "prost 0.12.3", ] [[package]] @@ -4852,9 +5795,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -4980,7 +5923,7 @@ dependencies = [ "jubjub", "pasta_curves", "rand_core 0.6.4", - "serde", + "serde 1.0.193", "thiserror", "zeroize", ] @@ -4993,7 +5936,7 @@ checksum = "7a60db2c3bc9c6fd1e8631fee75abc008841d27144be744951d6b9b75f9b569c" dependencies = [ "rand_core 0.6.4", "reddsa", - "serde", + "serde 1.0.193", "thiserror", "zeroize", ] @@ -5109,18 +6052,26 @@ dependencies = [ "http 0.2.11", "http-body", "hyper", + "hyper-rustls", + "hyper-tls", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", - "serde", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "serde 1.0.193", "serde_json", "serde_urlencoded", "system-configuration", "tokio", + "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", @@ -5205,6 +6156,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rlimit" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81a9ed03edbed449d6897c2092c71ab5f7b5fb80f6f0b1a3ed6d40a6f9fc0720" +dependencies = [ + "libc", +] + [[package]] name = "rlp" version = "0.5.2" @@ -5227,14 +6187,39 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rocksdb" +version = "0.22.0" +source = "git+https://github.com/heliaxdev/rust-rocksdb?rev=4dc7f4fdfa17e923d3078d51261e3db66707754d#4dc7f4fdfa17e923d3078d51261e3db66707754d" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "rust-ini" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" + [[package]] name = "rust_decimal" version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a" dependencies = [ - "arrayvec", - "num-traits", + "arrayvec 0.7.4", + "num-traits 0.2.17", ] [[package]] @@ -5298,6 +6283,27 @@ dependencies = [ "sct", ] +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -5374,6 +6380,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "schemars" version = "0.8.16" @@ -5382,7 +6397,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "schemars_derive", - "serde", + "serde 1.0.193", "serde_json", ] @@ -5398,6 +6413,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -5433,18 +6454,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] -name = "sec1" -version = "0.7.3" +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", + "core-foundation-sys", + "libc", ] [[package]] @@ -5462,7 +6506,7 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5486,6 +6530,12 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +[[package]] +name = "serde" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" + [[package]] name = "serde" version = "1.0.193" @@ -5495,13 +6545,25 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-hjson" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" +dependencies = [ + "lazy_static", + "num-traits 0.1.43", + "regex", + "serde 0.8.23", +] + [[package]] name = "serde-json-wasm" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e9213a07d53faa0b8dd81e767a54a8188a242fdb9be99ab75ec576a774bfdd7" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5510,7 +6572,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5519,7 +6581,7 @@ version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5530,7 +6592,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -5552,7 +6614,7 @@ checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", - "serde", + "serde 1.0.193", ] [[package]] @@ -5563,7 +6625,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -5572,7 +6634,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -5584,7 +6646,7 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde", + "serde 1.0.193", ] [[package]] @@ -5594,7 +6656,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ "base16ct", - "serde", + "serde 1.0.193", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", ] [[package]] @@ -5640,6 +6713,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -5678,7 +6757,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", - "num-traits", + "num-traits 0.2.17", "thiserror", "time", ] @@ -5707,6 +6786,12 @@ version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + [[package]] name = "smooth-operator" version = "0.6.0" @@ -5722,7 +6807,29 @@ source = "git+https://github.com/heliaxdev/smooth-operator?tag=v0.6.0#1e9e2382dd dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", +] + +[[package]] +name = "snafu" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -5750,6 +6857,7 @@ name = "sparse-merkle-tree" version = "0.3.1-pre" source = "git+https://github.com/heliaxdev/sparse-merkle-tree?rev=bab8cb96872db22cc9a139b2d3dfc4e00521d097#bab8cb96872db22cc9a139b2d3dfc4e00521d097" dependencies = [ + "blake2b-rs", "borsh 1.2.1", "cfg-if 1.0.0", "ics23", @@ -5791,6 +6899,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "strum" version = "0.24.1" @@ -5832,7 +6946,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -5869,9 +6983,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" dependencies = [ "proc-macro2", "quote", @@ -5887,7 +7001,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -5896,6 +7010,20 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sysinfo" +version = "0.27.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "winapi", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -5964,11 +7092,11 @@ dependencies = [ "ed25519", "flex-error", "futures", - "num-traits", + "num-traits 0.2.17", "once_cell", - "prost", - "prost-types", - "serde", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_bytes", "serde_json", "serde_repr", @@ -5993,12 +7121,12 @@ dependencies = [ "flex-error", "futures", "k256", - "num-traits", + "num-traits 0.2.17", "once_cell", - "prost", - "prost-types", + "prost 0.12.3", + "prost-types 0.12.3", "ripemd", - "serde", + "serde 1.0.193", "serde_bytes", "serde_json", "serde_repr", @@ -6018,7 +7146,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e07b383dc8780ebbec04cfb603f3fdaba6ea6663d8dd861425b1ffa7761fe90d" dependencies = [ "flex-error", - "serde", + "serde 1.0.193", "serde_json", "tendermint 0.36.0", "toml 0.8.2", @@ -6033,7 +7161,7 @@ checksum = "4216e487165e5dbd7af79952eaa0d5f06c5bde861eb76c690acd7f2d2a19395c" dependencies = [ "derive_more", "flex-error", - "serde", + "serde 1.0.193", "tendermint 0.36.0", "time", ] @@ -6047,10 +7175,10 @@ dependencies = [ "bytes", "flex-error", "num-derive 0.4.2", - "num-traits", - "prost", - "prost-types", - "serde", + "num-traits 0.2.17", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_bytes", "subtle-encoding", "time", @@ -6064,9 +7192,9 @@ checksum = "46f193d04afde6592c20fd70788a10b8cb3823091c07456db70d8a93f5fb99c1" dependencies = [ "bytes", "flex-error", - "prost", - "prost-types", - "serde", + "prost 0.12.3", + "prost-types 0.12.3", + "serde 1.0.193", "serde_bytes", "subtle-encoding", "time", @@ -6081,12 +7209,14 @@ dependencies = [ "async-trait", "bytes", "flex-error", + "futures", "getrandom 0.2.11", "peg", "pin-project", "rand 0.8.5", + "reqwest", "semver 1.0.20", - "serde", + "serde 1.0.193", "serde_bytes", "serde_json", "subtle", @@ -6096,6 +7226,8 @@ dependencies = [ "tendermint-proto 0.36.0", "thiserror", "time", + "tokio", + "tracing", "url", "uuid 1.8.0", "walkdir", @@ -6109,7 +7241,7 @@ checksum = "b233cec83c56c413ccc346af866cb9206a14d468fcecf0255080107bc9b103c0" dependencies = [ "ed25519-consensus", "gumdrop", - "serde", + "serde 1.0.193", "serde_json", "simple-error", "tempfile", @@ -6135,7 +7267,40 @@ checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + +[[package]] +name = "textwrap-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975e7e5fec79db404c3f07c9182d1c4450d5e2c68340be6b5a7140f48b276a30" +dependencies = [ + "proc-macro-hack", + "textwrap-macros-impl", +] + +[[package]] +name = "textwrap-macros-impl" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32379e128f71c85438e4086388c6321232b64cd7e8560e2c2431d9bfc51fc3cc" +dependencies = [ + "proc-macro-hack", + "quote", + "syn 1.0.109", + "textwrap", ] [[package]] @@ -6155,7 +7320,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -6177,7 +7342,7 @@ dependencies = [ "deranged", "itoa", "powerfmt", - "serde", + "serde 1.0.193", "time-core", "time-macros", ] @@ -6288,7 +7453,27 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", ] [[package]] @@ -6302,6 +7487,32 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -6322,7 +7533,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -6331,7 +7542,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ - "serde", + "serde 1.0.193", "serde_spanned", "toml_datetime", "toml_edit 0.20.2", @@ -6343,7 +7554,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ - "serde", + "serde 1.0.193", ] [[package]] @@ -6364,7 +7575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ "indexmap 2.1.0", - "serde", + "serde 1.0.193", "serde_spanned", "toml_datetime", "winnow 0.5.25", @@ -6388,7 +7599,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", + "prost 0.12.3", "tokio", "tokio-stream", "tower", @@ -6407,7 +7618,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -6418,18 +7629,38 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", + "hdrhistogram", "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.10", "tower-layer", "tower-service", "tracing", ] +[[package]] +name = "tower-abci" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74290cdda37842bf92c7deb4e7742d087af864fe4f4953446156d72a7778a626" +dependencies = [ + "bytes", + "futures", + "pin-project", + "prost 0.12.3", + "tendermint 0.36.0", + "tendermint-proto 0.36.0", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower", + "tracing", +] + [[package]] name = "tower-layer" version = "0.3.2" @@ -6454,6 +7685,18 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + [[package]] name = "tracing-attributes" version = "0.1.27" @@ -6462,7 +7705,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -6472,6 +7715,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +dependencies = [ + "tracing", + "tracing-subscriber", ] [[package]] @@ -6484,6 +7738,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde 1.0.193", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.18" @@ -6491,12 +7766,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", + "nu-ansi-term", "once_cell", "regex", + "serde 1.0.193", + "serde_json", "sharded-slab", "thread_local", "tracing", "tracing-core", + "tracing-log", + "tracing-serde", ] [[package]] @@ -6505,6 +7785,25 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +[[package]] +name = "tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.0.0", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "tx_fail" version = "0.35.1" @@ -6698,7 +7997,7 @@ checksum = "982ee4197351b5c9782847ef5ec1fdcaf50503fb19d68f9771adae314e72b492" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", ] [[package]] @@ -6746,6 +8045,15 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.14" @@ -6758,6 +8066,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.22" @@ -6812,6 +8126,24 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "uuid" version = "0.8.2" @@ -6819,7 +8151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ "getrandom 0.2.11", - "serde", + "serde 1.0.193", ] [[package]] @@ -6828,6 +8160,18 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.4" @@ -6974,6 +8318,35 @@ dependencies = [ "try-lock", ] +[[package]] +name = "warp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http 0.2.11", + "hyper", + "log", + "mime", + "mime_guess", + "multer", + "percent-encoding", + "pin-project", + "scoped-tls", + "serde 1.0.193", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-tungstenite", + "tokio-util 0.7.10", + "tower-service", + "tracing", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -7007,7 +8380,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", "wasm-bindgen-shared", ] @@ -7041,7 +8414,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7127,7 +8500,7 @@ dependencies = [ "enumset", "loupe", "rkyv", - "serde", + "serde 1.0.193", "serde_bytes", "smallvec", "target-lexicon", @@ -7198,7 +8571,7 @@ dependencies = [ "memmap2", "more-asserts", "rustc-demangle", - "serde", + "serde 1.0.193", "serde_bytes", "target-lexicon", "thiserror", @@ -7217,11 +8590,11 @@ dependencies = [ "enum-iterator", "enumset", "leb128", - "libloading", + "libloading 0.7.4", "loupe", "object 0.28.4", "rkyv", - "serde", + "serde 1.0.193", "tempfile", "tracing", "wasmer-artifact", @@ -7288,7 +8661,7 @@ dependencies = [ "indexmap 1.9.3", "loupe", "rkyv", - "serde", + "serde 1.0.193", "thiserror", ] @@ -7312,7 +8685,7 @@ dependencies = [ "region", "rkyv", "scopeguard", - "serde", + "serde 1.0.193", "thiserror", "wasmer-artifact", "wasmer-types", @@ -7692,6 +9065,15 @@ dependencies = [ "rustix", ] +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "zcash_encoding" version = "0.2.0" @@ -7718,5 +9100,15 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.65", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", ] From f18adaaf0f4b343b139cc76fdd4fa2fca7371bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Tue, 21 May 2024 12:24:09 +0200 Subject: [PATCH 10/10] changelog: add #3265 --- .changelog/unreleased/improvements/3265-split-up-node.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .changelog/unreleased/improvements/3265-split-up-node.md diff --git a/.changelog/unreleased/improvements/3265-split-up-node.md b/.changelog/unreleased/improvements/3265-split-up-node.md new file mode 100644 index 0000000000..24a24b15bc --- /dev/null +++ b/.changelog/unreleased/improvements/3265-split-up-node.md @@ -0,0 +1,2 @@ +- Separated the node library code from other apps lib code into a new crate + `namada_node`. ([\#3265](https://github.com/anoma/namada/pull/3265)) \ No newline at end of file