From 88f55205d2a09b4ecffda6ede7e33acf7054fa84 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 18:12:48 -0700 Subject: [PATCH 01/20] Progress --- Cargo.lock | 8 ++++---- src/candid_rpc.rs | 4 ++-- src/constants.rs | 12 ++++++++++-- src/types.rs | 4 ++-- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6b963a55..68a1be14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8320,18 +8320,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.30" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.30" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index d4eceb4b..415f95c8 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -87,12 +87,12 @@ fn get_rpc_client(source: CandidRpcSource) -> RpcResult CkEthRpcClient::new( EthereumNetwork::Mainnet, - Some(vec![service.unwrap_or(DEFAULT_ETHEREUM_PROVIDER)]) + Some(vec![service.unwrap_or(DEFAULT_ETHEREUM_PROVIDERS)]) .map(|p| p.into_iter().map(RpcService::EthMainnet).collect()), ), CandidRpcSource::EthSepolia(service) => CkEthRpcClient::new( EthereumNetwork::Sepolia, - Some(vec![service.unwrap_or(DEFAULT_SEPOLIA_PROVIDER)]) + Some(vec![service.unwrap_or(DEFAULT_SEPOLIA_PROVIDERS)]) .map(|p| p.into_iter().map(RpcService::EthSepolia).collect()), ), }) diff --git a/src/constants.rs b/src/constants.rs index 20498158..a8479c9c 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -16,8 +16,16 @@ pub const DEFAULT_NODES_IN_SUBNET: u32 = 13; pub const DEFAULT_OPEN_RPC_ACCESS: bool = true; // Providers used by default (when passing `null` with `CandidRpcSource`) -pub const DEFAULT_ETHEREUM_PROVIDER: EthMainnetService = EthMainnetService::Ankr; -pub const DEFAULT_SEPOLIA_PROVIDER: EthSepoliaService = EthSepoliaService::PublicNode; +pub const DEFAULT_ETHEREUM_PROVIDERS: Vec = vec![ + EthMainnetService::Ankr, + EthMainnetService::Cloudflare, + EthMainnetService::PublicNode, +]; +pub const DEFAULT_SEPOLIA_PROVIDERS: Vec = vec![ + EthSepoliaService::Ankr, + EthSepoliaService::BlockPi, + EthSepoliaService::PublicNode, +]; pub const CONTENT_TYPE_HEADER: &str = "Content-Type"; pub const CONTENT_TYPE_VALUE: &str = "application/json"; diff --git a/src/types.rs b/src/types.rs index d3aba3ba..e245c957 100644 --- a/src/types.rs +++ b/src/types.rs @@ -337,8 +337,8 @@ pub type RpcResult = Result; #[derive(Clone, Debug, CandidType, Deserialize)] pub enum CandidRpcSource { - EthMainnet(Option), - EthSepolia(Option), + EthMainnet(Option>), + EthSepolia(Option>), } pub mod candid_types { From 2d365a2ff807043d38082a134acd80a330f000b9 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 18:39:01 -0700 Subject: [PATCH 02/20] Update example script --- scripts/examples | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/examples b/scripts/examples index a0a473ae..513fbb64 100755 --- a/scripts/examples +++ b/scripts/examples @@ -1,13 +1,15 @@ #!/usr/bin/env bash # Run a variety of example RPC calls. +NETWORK=local +IDENTITY=default CANISTER_ID=evm_rpc CYCLES=100000000000 -WALLET=$(dfx identity get-wallet) +WALLET=$(dfx identity get-wallet --network=$NETWORK --identity=$IDENTITY) JSON_SOURCE=Chain=1 CANDID_SOURCE=EthMainnet -FLAGS="--with-cycles=$CYCLES --wallet=$WALLET" +FLAGS="--network=$NETWORK --with-cycles=$CYCLES --wallet=$WALLET --identity=$IDENTITY" dfx canister call $CANISTER_ID request "(variant {$JSON_SOURCE}, "'"{ \"jsonrpc\": \"2.0\", \"method\": \"eth_gasPrice\", \"params\": [], \"id\": 1 }"'", 1000)" $FLAGS || exit 1 From aa4269918625e0b28aebdae7eeaedc2edbd2121c Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 19:00:00 -0700 Subject: [PATCH 03/20] Progress --- Cargo.lock | 4 ++-- src/candid_rpc.rs | 12 ++++++------ src/constants.rs | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 68a1be14..8037f949 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -898,9 +898,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "convert_case" diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 415f95c8..62780462 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -85,15 +85,15 @@ fn get_rpc_client(source: CandidRpcSource) -> RpcResult CkEthRpcClient::new( + CandidRpcSource::EthMainnet(services) => CkEthRpcClient::new( EthereumNetwork::Mainnet, - Some(vec![service.unwrap_or(DEFAULT_ETHEREUM_PROVIDERS)]) - .map(|p| p.into_iter().map(RpcService::EthMainnet).collect()), + Some(services.unwrap_or_else(|| DEFAULT_ETHEREUM_PROVIDERS.to_vec())) + .map(|s| s.into_iter().map(RpcService::EthMainnet).collect()), ), - CandidRpcSource::EthSepolia(service) => CkEthRpcClient::new( + CandidRpcSource::EthSepolia(services) => CkEthRpcClient::new( EthereumNetwork::Sepolia, - Some(vec![service.unwrap_or(DEFAULT_SEPOLIA_PROVIDERS)]) - .map(|p| p.into_iter().map(RpcService::EthSepolia).collect()), + Some(services.unwrap_or_else(|| DEFAULT_SEPOLIA_PROVIDERS.to_vec())) + .map(|s| s.into_iter().map(RpcService::EthSepolia).collect()), ), }) } diff --git a/src/constants.rs b/src/constants.rs index a8479c9c..fae6332a 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -16,12 +16,12 @@ pub const DEFAULT_NODES_IN_SUBNET: u32 = 13; pub const DEFAULT_OPEN_RPC_ACCESS: bool = true; // Providers used by default (when passing `null` with `CandidRpcSource`) -pub const DEFAULT_ETHEREUM_PROVIDERS: Vec = vec![ +pub const DEFAULT_ETHEREUM_PROVIDERS: &[EthMainnetService] = &[ EthMainnetService::Ankr, EthMainnetService::Cloudflare, EthMainnetService::PublicNode, ]; -pub const DEFAULT_SEPOLIA_PROVIDERS: Vec = vec![ +pub const DEFAULT_SEPOLIA_PROVIDERS: &[EthSepoliaService] = &[ EthSepoliaService::Ankr, EthSepoliaService::BlockPi, EthSepoliaService::PublicNode, From 60526abf619b501c21bb190d10f7178eb66cd6fc Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 21:03:34 -0700 Subject: [PATCH 04/20] Progress --- src/candid_rpc.rs | 55 +++++++++++++++++++++++++---------------------- src/main.rs | 24 ++++++++++----------- src/types.rs | 24 ++++++++++++++++++++- 3 files changed, 64 insertions(+), 39 deletions(-) diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 62780462..094a6116 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -98,13 +98,13 @@ fn get_rpc_client(source: CandidRpcSource) -> RpcResult(result: Result>) -> RpcResult { +fn multi_result(result: Result>) -> MultiRpcResult { match result { - Ok(value) => Ok(value), + Ok(value) => MultiRpcResult::Consistent(Ok(value)), Err(err) => match err { - MultiCallError::ConsistentError(err) => Err(err), - MultiCallError::InconsistentResults(_results) => { - unreachable!("BUG: receieved more than one RPC provider result") + MultiCallError::ConsistentError(err) => MultiRpcResult::Consistent(Err(err)), + MultiCallError::InconsistentResults(multi_call_results) => { + MultiRpcResult::Inconsistent(multi_call_results.results.into_iter().collect()) } }, } @@ -121,41 +121,44 @@ impl CandidRpcClient { }) } - pub async fn eth_get_logs(&self, args: candid_types::GetLogsArgs) -> RpcResult> { + pub async fn multi_eth_get_logs( + &self, + args: candid_types::GetLogsArgs, + ) -> MultiRpcResult> { let args: GetLogsParam = match args.try_into() { Ok(args) => args, - Err(err) => return Err(RpcError::from(err)), + Err(err) => return MultiRpcResult::Consistent(Err(RpcError::from(err))), }; - wrap_result(self.client.eth_get_logs(args).await) + multi_result(self.client.eth_get_logs(args).await) } - pub async fn eth_get_block_by_number(&self, block: candid_types::BlockTag) -> RpcResult { - wrap_result(self.client.eth_get_block_by_number(block.into()).await) + pub async fn multi_eth_get_block_by_number( + &self, + block: candid_types::BlockTag, + ) -> MultiRpcResult { + multi_result(self.client.eth_get_block_by_number(block.into()).await) } - pub async fn eth_get_transaction_receipt( + pub async fn multi_eth_get_transaction_receipt( &self, hash: String, - ) -> RpcResult> { - wrap_result( - self.client - .eth_get_transaction_receipt( - Hash::from_str(&hash).map_err(|_| ValidationError::InvalidHex(hash))?, - ) - .await, - ) - .map(|option| option.map(|r| r.into())) + ) -> MultiRpcResult> { + match Hash::from_str(&hash) { + Ok(hash) => multi_result(self.client.eth_get_transaction_receipt(hash).await) + .map(|option| option.map(|r| r.into())), + Err(_) => MultiRpcResult::Consistent(Err(ValidationError::InvalidHex(hash).into())), + } } - pub async fn eth_get_transaction_count( + pub async fn multi_eth_get_transaction_count( &self, args: candid_types::GetTransactionCountArgs, - ) -> RpcResult { + ) -> MultiRpcResult { let args: GetTransactionCountParams = match args.try_into() { Ok(args) => args, - Err(err) => return Err(RpcError::from(err)), + Err(err) => return MultiRpcResult::Consistent(Err(RpcError::from(err))), }; - wrap_result( + multi_result( self.client .eth_get_transaction_count(args) .await @@ -167,8 +170,8 @@ impl CandidRpcClient { pub async fn eth_fee_history( &self, args: candid_types::FeeHistoryArgs, - ) -> RpcResult> { - wrap_result(self.client.eth_fee_history(args.into()).await).map(|history| history.into()) + ) -> MultiRpcResult> { + multi_result(self.client.eth_fee_history(args.into()).await).map(|history| history.into()) } pub async fn eth_send_raw_transaction( diff --git a/src/main.rs b/src/main.rs index 56f9e728..2f9bb414 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,9 +13,9 @@ use ic_nervous_system_common::{serve_logs, serve_logs_v2, serve_metrics}; use evm_rpc::*; -#[update(name = "eth_getLogs")] -#[candid_method(rename = "eth_getLogs")] -pub async fn eth_get_logs( +#[update(name = "multi_eth_getLogs")] +#[candid_method(rename = "multi_eth_getLogs")] +pub async fn multi_eth_get_logs( source: CandidRpcSource, args: candid_types::GetLogsArgs, ) -> RpcResult> { @@ -24,9 +24,9 @@ pub async fn eth_get_logs( .await } -#[update(name = "eth_getBlockByNumber")] -#[candid_method(rename = "eth_getBlockByNumber")] -pub async fn eth_get_block_by_number( +#[update(name = "multi_eth_getBlockByNumber")] +#[candid_method(rename = "multi_eth_getBlockByNumber")] +pub async fn multi_eth_get_block_by_number( source: CandidRpcSource, block: candid_types::BlockTag, ) -> RpcResult { @@ -35,9 +35,9 @@ pub async fn eth_get_block_by_number( .await } -#[update(name = "eth_getTransactionReceipt")] -#[candid_method(rename = "eth_getTransactionReceipt")] -pub async fn eth_get_transaction_receipt( +#[update(name = "multi_eth_getTransactionReceipt")] +#[candid_method(rename = "multi_eth_getTransactionReceipt")] +pub async fn multi_eth_get_transaction_receipt( source: CandidRpcSource, hash: String, ) -> RpcResult> { @@ -46,9 +46,9 @@ pub async fn eth_get_transaction_receipt( .await } -#[update(name = "eth_getTransactionCount")] -#[candid_method(rename = "eth_getTransactionCount")] -pub async fn eth_get_transaction_count( +#[update(name = "multi_eth_getTransactionCount")] +#[candid_method(rename = "multi_eth_getTransactionCount")] +pub async fn multi_eth_get_transaction_count( source: CandidRpcSource, args: candid_types::GetTransactionCountArgs, ) -> RpcResult { diff --git a/src/types.rs b/src/types.rs index e245c957..efe49899 100644 --- a/src/types.rs +++ b/src/types.rs @@ -1,6 +1,8 @@ use candid::{CandidType, Decode, Deserialize, Encode, Principal}; use cketh_common::eth_rpc::{ProviderError, RpcError}; -use cketh_common::eth_rpc_client::providers::{EthMainnetService, EthSepoliaService, RpcApi}; +use cketh_common::eth_rpc_client::providers::{ + EthMainnetService, EthSepoliaService, RpcApi, RpcService, +}; use ic_cdk::api::management_canister::http_request::HttpHeader; use ic_eth::core::types::RecoveryMessage; @@ -335,6 +337,26 @@ pub struct SignedMessage { pub type RpcResult = Result; +#[derive(Clone, Debug, CandidType, Deserialize)] +pub enum MultiRpcResult { + Consistent(RpcResult), + Inconsistent(Vec<(RpcService, RpcResult)>), +} + +impl MultiRpcResult { + pub fn map(self, f: impl FnMut(T) -> R) -> MultiRpcResult { + match self { + MultiRpcResult::Consistent(result) => MultiRpcResult::Consistent(result.map(f)), + MultiRpcResult::Inconsistent(results) => MultiRpcResult::Inconsistent( + results + .into_iter() + .map(|(service, result)| (service, result.map(f))) + .collect(), + ), + } + } +} + #[derive(Clone, Debug, CandidType, Deserialize)] pub enum CandidRpcSource { EthMainnet(Option>), From eb52b95e26a07401faee0630ef7585ed2045312b Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 21:45:52 -0700 Subject: [PATCH 05/20] Reintroduce multi-agreement logic --- candid/evm_rpc.did | 61 ++++++++++++++++++++++++++++++++++------------ src/candid_rpc.rs | 2 +- src/main.rs | 51 +++++++++++++++++++++----------------- src/types.rs | 18 ++++++++++++-- 4 files changed, 90 insertions(+), 42 deletions(-) diff --git a/candid/evm_rpc.did b/candid/evm_rpc.did index ba067de6..73d65d39 100644 --- a/candid/evm_rpc.did +++ b/candid/evm_rpc.did @@ -31,8 +31,8 @@ type BlockTag = variant { Pending; }; type CandidRpcSource = variant { - EthSepolia : opt EthSepoliaService; - EthMainnet : opt EthMainnetService; + EthSepolia : opt vec EthSepoliaService; + EthMainnet : opt vec EthMainnetService; }; type EthMainnetService = variant { BlockPi; Cloudflare; PublicNode; Ankr }; type EthSepoliaService = variant { BlockPi; PublicNode; Ankr }; @@ -76,6 +76,26 @@ type LogEntry = record { removed : bool; }; type Message = variant { Data : vec nat8; Hash : vec nat8 }; +type MultiRpcResult = variant { + Consistent : Result_1; + Inconsistent : vec record { RpcService; Result_1 }; +}; +type MultiRpcResult_1 = variant { + Consistent : Result_2; + Inconsistent : vec record { RpcService; Result_2 }; +}; +type MultiRpcResult_2 = variant { + Consistent : Result_3; + Inconsistent : vec record { RpcService; Result_3 }; +}; +type MultiRpcResult_3 = variant { + Consistent : Result_4; + Inconsistent : vec record { RpcService; Result_4 }; +}; +type MultiRpcResult_4 = variant { + Consistent : Result_5; + Inconsistent : vec record { RpcService; Result_5 }; +}; type ProviderError = variant { TooFewCycles : record { expected : nat; received : nat }; ProviderNotFound; @@ -107,12 +127,12 @@ type RejectionCode = variant { SysFatal; CanisterReject; }; -type Result = variant { Ok : opt FeeHistory; Err : RpcError }; -type Result_1 = variant { Ok : Block; Err : RpcError }; -type Result_2 = variant { Ok : vec LogEntry; Err : RpcError }; -type Result_3 = variant { Ok : nat; Err : RpcError }; -type Result_4 = variant { Ok : opt TransactionReceipt; Err : RpcError }; -type Result_5 = variant { Ok : SendRawTransactionResult; Err : RpcError }; +type Result = variant { Ok : SendRawTransactionResult; Err : RpcError }; +type Result_1 = variant { Ok : opt FeeHistory; Err : RpcError }; +type Result_2 = variant { Ok : Block; Err : RpcError }; +type Result_3 = variant { Ok : vec LogEntry; Err : RpcError }; +type Result_4 = variant { Ok : nat; Err : RpcError }; +type Result_5 = variant { Ok : opt TransactionReceipt; Err : RpcError }; type Result_6 = variant { Ok : text; Err : RpcError }; type Result_7 = variant { Ok : nat; Err : RpcError }; type RpcError = variant { @@ -121,6 +141,10 @@ type RpcError = variant { ValidationError : ValidationError; HttpOutcallError : HttpOutcallError; }; +type RpcService = variant { + EthSepolia : EthSepoliaService; + EthMainnet : EthMainnetService; +}; type SendRawTransactionResult = variant { Ok; NonceTooLow; @@ -172,19 +196,24 @@ type ValidationError = variant { service : { authorize : (principal, Auth) -> (); deauthorize : (principal, Auth) -> (); - eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (Result); - eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> (Result_1); - eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (Result_2); - eth_getTransactionCount : (CandidRpcSource, GetTransactionCountArgs) -> ( - Result_3, - ); - eth_getTransactionReceipt : (CandidRpcSource, text) -> (Result_4); - eth_sendRawTransaction : (CandidRpcSource, text) -> (Result_5); + eth_sendRawTransaction : (CandidRpcSource, text) -> (Result); getAccumulatedCycleCount : (nat64) -> (nat) query; getAuthorized : (Auth) -> (vec text) query; getNodesInSubnet : () -> (nat32) query; getOpenRpcAccess : () -> (bool) query; getProviders : () -> (vec ProviderView) query; + multi_eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (MultiRpcResult); + multi_eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> ( + MultiRpcResult_1, + ); + multi_eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (MultiRpcResult_2); + multi_eth_getTransactionCount : ( + CandidRpcSource, + GetTransactionCountArgs, + ) -> (MultiRpcResult_3); + multi_eth_getTransactionReceipt : (CandidRpcSource, text) -> ( + MultiRpcResult_4, + ); registerProvider : (RegisterProviderArgs) -> (nat64); request : (Source, text, nat64) -> (Result_6); requestCost : (Source, text, nat64) -> (Result_7) query; diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 094a6116..749e6bf3 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -167,7 +167,7 @@ impl CandidRpcClient { .map(|count| into_nat(count.into_inner())) } - pub async fn eth_fee_history( + pub async fn multi_eth_fee_history( &self, args: candid_types::FeeHistoryArgs, ) -> MultiRpcResult> { diff --git a/src/main.rs b/src/main.rs index 2f9bb414..5e1514db 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,10 +18,11 @@ use evm_rpc::*; pub async fn multi_eth_get_logs( source: CandidRpcSource, args: candid_types::GetLogsArgs, -) -> RpcResult> { - CandidRpcClient::from_source(source)? - .eth_get_logs(args) - .await +) -> MultiRpcResult> { + match CandidRpcClient::from_source(source) { + Ok(source) => source.multi_eth_get_logs(args).await, + Err(err) => Err(err).into(), + } } #[update(name = "multi_eth_getBlockByNumber")] @@ -29,10 +30,11 @@ pub async fn multi_eth_get_logs( pub async fn multi_eth_get_block_by_number( source: CandidRpcSource, block: candid_types::BlockTag, -) -> RpcResult { - CandidRpcClient::from_source(source)? - .eth_get_block_by_number(block) - .await +) -> MultiRpcResult { + match CandidRpcClient::from_source(source) { + Ok(source) => source.multi_eth_get_block_by_number(block).await, + Err(err) => Err(err).into(), + } } #[update(name = "multi_eth_getTransactionReceipt")] @@ -40,10 +42,11 @@ pub async fn multi_eth_get_block_by_number( pub async fn multi_eth_get_transaction_receipt( source: CandidRpcSource, hash: String, -) -> RpcResult> { - CandidRpcClient::from_source(source)? - .eth_get_transaction_receipt(hash) - .await +) -> MultiRpcResult> { + match CandidRpcClient::from_source(source) { + Ok(source) => source.multi_eth_get_transaction_receipt(hash).await, + Err(err) => Err(err).into(), + } } #[update(name = "multi_eth_getTransactionCount")] @@ -51,21 +54,23 @@ pub async fn multi_eth_get_transaction_receipt( pub async fn multi_eth_get_transaction_count( source: CandidRpcSource, args: candid_types::GetTransactionCountArgs, -) -> RpcResult { - CandidRpcClient::from_source(source)? - .eth_get_transaction_count(args) - .await +) -> MultiRpcResult { + match CandidRpcClient::from_source(source) { + Ok(source) => source.multi_eth_get_transaction_count(args).await, + Err(err) => Err(err).into(), + } } -#[update(name = "eth_feeHistory")] -#[candid_method(rename = "eth_feeHistory")] -pub async fn eth_fee_history( +#[update(name = "multi_eth_feeHistory")] +#[candid_method(rename = "multi_eth_feeHistory")] +pub async fn multi_eth_fee_history( source: CandidRpcSource, args: candid_types::FeeHistoryArgs, -) -> RpcResult> { - CandidRpcClient::from_source(source)? - .eth_fee_history(args) - .await +) -> MultiRpcResult> { + match CandidRpcClient::from_source(source) { + Ok(source) => source.multi_eth_fee_history(args).await, + Err(err) => Err(err).into(), + } } #[update(name = "eth_sendRawTransaction")] diff --git a/src/types.rs b/src/types.rs index efe49899..b434c030 100644 --- a/src/types.rs +++ b/src/types.rs @@ -344,19 +344,33 @@ pub enum MultiRpcResult { } impl MultiRpcResult { - pub fn map(self, f: impl FnMut(T) -> R) -> MultiRpcResult { + pub fn map(self, f: impl Fn(T) -> R) -> MultiRpcResult { match self { MultiRpcResult::Consistent(result) => MultiRpcResult::Consistent(result.map(f)), MultiRpcResult::Inconsistent(results) => MultiRpcResult::Inconsistent( results .into_iter() - .map(|(service, result)| (service, result.map(f))) + .map(|(service, result)| { + ( + service, + match result { + Ok(ok) => Ok(f(ok)), + Err(err) => Err(err), + }, + ) + }) .collect(), ), } } } +impl From> for MultiRpcResult { + fn from(result: RpcResult) -> Self { + MultiRpcResult::Consistent(result) + } +} + #[derive(Clone, Debug, CandidType, Deserialize)] pub enum CandidRpcSource { EthMainnet(Option>), From 116835ddc4b2ccf0f1feb91660d06494efc8f692 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 21:49:10 -0700 Subject: [PATCH 06/20] Adjust 'examples' script --- scripts/examples | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/examples b/scripts/examples index 513fbb64..fa8f3f23 100755 --- a/scripts/examples +++ b/scripts/examples @@ -9,7 +9,7 @@ WALLET=$(dfx identity get-wallet --network=$NETWORK --identity=$IDENTITY) JSON_SOURCE=Chain=1 CANDID_SOURCE=EthMainnet -FLAGS="--network=$NETWORK --with-cycles=$CYCLES --wallet=$WALLET --identity=$IDENTITY" +FLAGS="--network=$NETWORK --identity=$IDENTITY --with-cycles=$CYCLES --wallet=$WALLET" dfx canister call $CANISTER_ID request "(variant {$JSON_SOURCE}, "'"{ \"jsonrpc\": \"2.0\", \"method\": \"eth_gasPrice\", \"params\": [], \"id\": 1 }"'", 1000)" $FLAGS || exit 1 From aecdbf2cea455e1ef7e3727b457c8deca4c7b623 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Thu, 14 Dec 2023 21:50:24 -0700 Subject: [PATCH 07/20] Expand one-letter local variable names --- src/candid_rpc.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 749e6bf3..5cd793c4 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -88,12 +88,12 @@ fn get_rpc_client(source: CandidRpcSource) -> RpcResult CkEthRpcClient::new( EthereumNetwork::Mainnet, Some(services.unwrap_or_else(|| DEFAULT_ETHEREUM_PROVIDERS.to_vec())) - .map(|s| s.into_iter().map(RpcService::EthMainnet).collect()), + .map(|service| service.into_iter().map(RpcService::EthMainnet).collect()), ), CandidRpcSource::EthSepolia(services) => CkEthRpcClient::new( EthereumNetwork::Sepolia, Some(services.unwrap_or_else(|| DEFAULT_SEPOLIA_PROVIDERS.to_vec())) - .map(|s| s.into_iter().map(RpcService::EthSepolia).collect()), + .map(|service| service.into_iter().map(RpcService::EthSepolia).collect()), ), }) } From b199bd2b5f7d67ee35fa5ff85225fe2461566097 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Fri, 15 Dec 2023 11:46:44 -0700 Subject: [PATCH 08/20] Use agreement for all RPC methods; remove 'multi_' prefix --- Cargo.lock | 36 +++++++++++++++---------------- candid/evm_rpc.did | 10 ++++----- src/candid_rpc.rs | 14 ++++++------ src/main.rs | 53 +++++++++++++++++++++++++--------------------- tests/tests.rs | 12 +++++------ 5 files changed, 65 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8037f949..45ffc7fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2358,7 +2358,7 @@ dependencies = [ [[package]] name = "ic-base-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "base32", "byte-unit", @@ -2401,7 +2401,7 @@ dependencies = [ [[package]] name = "ic-btc-types-internal" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "candid", "ic-btc-interface", @@ -2519,7 +2519,7 @@ dependencies = [ [[package]] name = "ic-canisters-http-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "candid", "serde", @@ -2651,7 +2651,7 @@ dependencies = [ [[package]] name = "ic-cketh-minter" version = "0.1.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "askama", "async-trait", @@ -2786,7 +2786,7 @@ dependencies = [ [[package]] name = "ic-crypto-ecdsa-secp256k1" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "k256", "lazy_static", @@ -3105,7 +3105,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-sha2" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "sha2 0.10.8", ] @@ -3271,7 +3271,7 @@ dependencies = [ [[package]] name = "ic-crypto-sha2" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "ic-crypto-internal-sha2 0.9.0", ] @@ -3279,7 +3279,7 @@ dependencies = [ [[package]] name = "ic-crypto-sha3" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "sha3 0.9.1", ] @@ -3493,7 +3493,7 @@ dependencies = [ [[package]] name = "ic-error-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "ic-utils 0.9.0", "serde", @@ -3596,7 +3596,7 @@ dependencies = [ [[package]] name = "ic-ic00-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "candid", "ic-base-types 0.9.0", @@ -3886,7 +3886,7 @@ dependencies = [ [[package]] name = "ic-protobuf" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "bincode", "candid", @@ -4208,7 +4208,7 @@ dependencies = [ [[package]] name = "ic-sys" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "hex", "ic-crypto-sha2 0.9.0", @@ -4350,7 +4350,7 @@ dependencies = [ [[package]] name = "ic-utils" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "cvt", "hex", @@ -4367,7 +4367,7 @@ dependencies = [ [[package]] name = "ic-utils-ensure" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" [[package]] name = "ic-utils-lru-cache" @@ -4445,7 +4445,7 @@ dependencies = [ [[package]] name = "icrc-ledger-client" version = "0.1.2" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "async-trait", "candid", @@ -4456,7 +4456,7 @@ dependencies = [ [[package]] name = "icrc-ledger-client-cdk" version = "0.1.2" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "async-trait", "candid", @@ -4482,7 +4482,7 @@ dependencies = [ [[package]] name = "icrc-ledger-types" version = "0.1.4" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "base32", "candid", @@ -5568,7 +5568,7 @@ dependencies = [ [[package]] name = "phantom_newtype" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#b96861cb2718dfd8285f8761144b9e9d2c47b384" +source = "git+https://github.com/rvanasa/ic?branch=evm-rpc-canister#13fe6f9f7b19159a9627654515ff0cee26e3098a" dependencies = [ "candid", "serde", diff --git a/candid/evm_rpc.did b/candid/evm_rpc.did index 73d65d39..fd17b4ba 100644 --- a/candid/evm_rpc.did +++ b/candid/evm_rpc.did @@ -202,16 +202,16 @@ service : { getNodesInSubnet : () -> (nat32) query; getOpenRpcAccess : () -> (bool) query; getProviders : () -> (vec ProviderView) query; - multi_eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (MultiRpcResult); - multi_eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> ( + eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (MultiRpcResult); + eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> ( MultiRpcResult_1, ); - multi_eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (MultiRpcResult_2); - multi_eth_getTransactionCount : ( + eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (MultiRpcResult_2); + eth_getTransactionCount : ( CandidRpcSource, GetTransactionCountArgs, ) -> (MultiRpcResult_3); - multi_eth_getTransactionReceipt : (CandidRpcSource, text) -> ( + eth_getTransactionReceipt : (CandidRpcSource, text) -> ( MultiRpcResult_4, ); registerProvider : (RegisterProviderArgs) -> (nat64); diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 5cd793c4..dadb8207 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -121,7 +121,7 @@ impl CandidRpcClient { }) } - pub async fn multi_eth_get_logs( + pub async fn eth_get_logs( &self, args: candid_types::GetLogsArgs, ) -> MultiRpcResult> { @@ -132,14 +132,14 @@ impl CandidRpcClient { multi_result(self.client.eth_get_logs(args).await) } - pub async fn multi_eth_get_block_by_number( + pub async fn eth_get_block_by_number( &self, block: candid_types::BlockTag, ) -> MultiRpcResult { multi_result(self.client.eth_get_block_by_number(block.into()).await) } - pub async fn multi_eth_get_transaction_receipt( + pub async fn eth_get_transaction_receipt( &self, hash: String, ) -> MultiRpcResult> { @@ -150,7 +150,7 @@ impl CandidRpcClient { } } - pub async fn multi_eth_get_transaction_count( + pub async fn eth_get_transaction_count( &self, args: candid_types::GetTransactionCountArgs, ) -> MultiRpcResult { @@ -167,7 +167,7 @@ impl CandidRpcClient { .map(|count| into_nat(count.into_inner())) } - pub async fn multi_eth_fee_history( + pub async fn eth_fee_history( &self, args: candid_types::FeeHistoryArgs, ) -> MultiRpcResult> { @@ -177,9 +177,9 @@ impl CandidRpcClient { pub async fn eth_send_raw_transaction( &self, raw_signed_transaction_hex: String, - ) -> RpcResult { + ) -> MultiRpcResult { self.client - .eth_send_raw_transaction(raw_signed_transaction_hex) + .multi_eth_send_raw_transaction(raw_signed_transaction_hex) .await } } diff --git a/src/main.rs b/src/main.rs index 5e1514db..859caef1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,62 +13,62 @@ use ic_nervous_system_common::{serve_logs, serve_logs_v2, serve_metrics}; use evm_rpc::*; -#[update(name = "multi_eth_getLogs")] -#[candid_method(rename = "multi_eth_getLogs")] -pub async fn multi_eth_get_logs( +#[update(name = "eth_getLogs")] +#[candid_method(rename = "eth_getLogs")] +pub async fn eth_get_logs( source: CandidRpcSource, args: candid_types::GetLogsArgs, ) -> MultiRpcResult> { match CandidRpcClient::from_source(source) { - Ok(source) => source.multi_eth_get_logs(args).await, + Ok(source) => source.eth_get_logs(args).await, Err(err) => Err(err).into(), } } -#[update(name = "multi_eth_getBlockByNumber")] -#[candid_method(rename = "multi_eth_getBlockByNumber")] -pub async fn multi_eth_get_block_by_number( +#[update(name = "eth_getBlockByNumber")] +#[candid_method(rename = "eth_getBlockByNumber")] +pub async fn eth_get_block_by_number( source: CandidRpcSource, block: candid_types::BlockTag, ) -> MultiRpcResult { match CandidRpcClient::from_source(source) { - Ok(source) => source.multi_eth_get_block_by_number(block).await, + Ok(source) => source.eth_get_block_by_number(block).await, Err(err) => Err(err).into(), } } -#[update(name = "multi_eth_getTransactionReceipt")] -#[candid_method(rename = "multi_eth_getTransactionReceipt")] -pub async fn multi_eth_get_transaction_receipt( +#[update(name = "eth_getTransactionReceipt")] +#[candid_method(rename = "eth_getTransactionReceipt")] +pub async fn eth_get_transaction_receipt( source: CandidRpcSource, hash: String, ) -> MultiRpcResult> { match CandidRpcClient::from_source(source) { - Ok(source) => source.multi_eth_get_transaction_receipt(hash).await, + Ok(source) => source.eth_get_transaction_receipt(hash).await, Err(err) => Err(err).into(), } } -#[update(name = "multi_eth_getTransactionCount")] -#[candid_method(rename = "multi_eth_getTransactionCount")] -pub async fn multi_eth_get_transaction_count( +#[update(name = "eth_getTransactionCount")] +#[candid_method(rename = "eth_getTransactionCount")] +pub async fn eth_get_transaction_count( source: CandidRpcSource, args: candid_types::GetTransactionCountArgs, ) -> MultiRpcResult { match CandidRpcClient::from_source(source) { - Ok(source) => source.multi_eth_get_transaction_count(args).await, + Ok(source) => source.eth_get_transaction_count(args).await, Err(err) => Err(err).into(), } } -#[update(name = "multi_eth_feeHistory")] -#[candid_method(rename = "multi_eth_feeHistory")] -pub async fn multi_eth_fee_history( +#[update(name = "eth_feeHistory")] +#[candid_method(rename = "eth_feeHistory")] +pub async fn eth_fee_history( source: CandidRpcSource, args: candid_types::FeeHistoryArgs, ) -> MultiRpcResult> { match CandidRpcClient::from_source(source) { - Ok(source) => source.multi_eth_fee_history(args).await, + Ok(source) => source.eth_fee_history(args).await, Err(err) => Err(err).into(), } } @@ -78,10 +78,15 @@ pub async fn multi_eth_fee_history( pub async fn eth_send_raw_transaction( source: CandidRpcSource, raw_signed_transaction_hex: String, -) -> RpcResult { - CandidRpcClient::from_source(source)? - .eth_send_raw_transaction(raw_signed_transaction_hex) - .await +) -> MultiRpcResult { + match CandidRpcClient::from_source(source) { + Ok(source) => { + source + .eth_send_raw_transaction(raw_signed_transaction_hex) + .await + } + Err(err) => Err(err).into(), + } } #[query(name = "verifyMessageSignature")] diff --git a/tests/tests.rs b/tests/tests.rs index 140b331f..33b8d99b 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -215,7 +215,7 @@ impl EvmRpcSetup { &self, source: CandidRpcSource, args: candid_types::GetLogsArgs, - ) -> CallFlow>> { + ) -> CallFlow>> { self.call_update("eth_getLogs", Encode!(&source, &args).unwrap()) } @@ -223,7 +223,7 @@ impl EvmRpcSetup { &self, source: CandidRpcSource, block: candid_types::BlockTag, - ) -> CallFlow> { + ) -> CallFlow> { self.call_update("eth_getBlockByNumber", Encode!(&source, &block).unwrap()) } @@ -231,7 +231,7 @@ impl EvmRpcSetup { &self, source: CandidRpcSource, address: &str, - ) -> CallFlow>> { + ) -> CallFlow>> { self.call_update( "eth_getTransactionReceipt", Encode!(&source, &address).unwrap(), @@ -242,7 +242,7 @@ impl EvmRpcSetup { &self, source: CandidRpcSource, args: candid_types::GetTransactionCountArgs, - ) -> CallFlow> { + ) -> CallFlow> { self.call_update("eth_getTransactionCount", Encode!(&source, &args).unwrap()) } @@ -250,7 +250,7 @@ impl EvmRpcSetup { &self, source: CandidRpcSource, args: candid_types::FeeHistoryArgs, - ) -> CallFlow>> { + ) -> CallFlow>> { self.call_update("eth_feeHistory", Encode!(&source, &args).unwrap()) } @@ -258,7 +258,7 @@ impl EvmRpcSetup { &self, source: CandidRpcSource, signed_raw_transaction_hex: String, - ) -> CallFlow> { + ) -> CallFlow> { self.call_update( "eth_sendRawTransaction", Encode!(&source, &signed_raw_transaction_hex).unwrap(), From ae340aae4a7007e014efa0a485ac2cd90289107b Mon Sep 17 00:00:00 2001 From: rvanasa Date: Fri, 15 Dec 2023 16:48:02 -0700 Subject: [PATCH 09/20] Update state machine tests --- candid/evm_rpc.did | 45 ++++++++++++++++++++++----------------------- src/candid_rpc.rs | 8 +++++--- src/types.rs | 22 ++++++++++++++++++++++ tests/tests.rs | 32 ++++++++++++++++++++++++-------- 4 files changed, 73 insertions(+), 34 deletions(-) diff --git a/candid/evm_rpc.did b/candid/evm_rpc.did index fd17b4ba..371c52e8 100644 --- a/candid/evm_rpc.did +++ b/candid/evm_rpc.did @@ -77,22 +77,26 @@ type LogEntry = record { }; type Message = variant { Data : vec nat8; Hash : vec nat8 }; type MultiRpcResult = variant { + Consistent : Result; + Inconsistent : vec record { RpcService; Result }; +}; +type MultiRpcResult_1 = variant { Consistent : Result_1; Inconsistent : vec record { RpcService; Result_1 }; }; -type MultiRpcResult_1 = variant { +type MultiRpcResult_2 = variant { Consistent : Result_2; Inconsistent : vec record { RpcService; Result_2 }; }; -type MultiRpcResult_2 = variant { +type MultiRpcResult_3 = variant { Consistent : Result_3; Inconsistent : vec record { RpcService; Result_3 }; }; -type MultiRpcResult_3 = variant { +type MultiRpcResult_4 = variant { Consistent : Result_4; Inconsistent : vec record { RpcService; Result_4 }; }; -type MultiRpcResult_4 = variant { +type MultiRpcResult_5 = variant { Consistent : Result_5; Inconsistent : vec record { RpcService; Result_5 }; }; @@ -127,12 +131,12 @@ type RejectionCode = variant { SysFatal; CanisterReject; }; -type Result = variant { Ok : SendRawTransactionResult; Err : RpcError }; -type Result_1 = variant { Ok : opt FeeHistory; Err : RpcError }; -type Result_2 = variant { Ok : Block; Err : RpcError }; -type Result_3 = variant { Ok : vec LogEntry; Err : RpcError }; -type Result_4 = variant { Ok : nat; Err : RpcError }; -type Result_5 = variant { Ok : opt TransactionReceipt; Err : RpcError }; +type Result = variant { Ok : opt FeeHistory; Err : RpcError }; +type Result_1 = variant { Ok : Block; Err : RpcError }; +type Result_2 = variant { Ok : vec LogEntry; Err : RpcError }; +type Result_3 = variant { Ok : nat; Err : RpcError }; +type Result_4 = variant { Ok : opt TransactionReceipt; Err : RpcError }; +type Result_5 = variant { Ok : SendRawTransactionResult; Err : RpcError }; type Result_6 = variant { Ok : text; Err : RpcError }; type Result_7 = variant { Ok : nat; Err : RpcError }; type RpcError = variant { @@ -196,24 +200,19 @@ type ValidationError = variant { service : { authorize : (principal, Auth) -> (); deauthorize : (principal, Auth) -> (); - eth_sendRawTransaction : (CandidRpcSource, text) -> (Result); + eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (MultiRpcResult); + eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> (MultiRpcResult_1); + eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (MultiRpcResult_2); + eth_getTransactionCount : (CandidRpcSource, GetTransactionCountArgs) -> ( + MultiRpcResult_3, + ); + eth_getTransactionReceipt : (CandidRpcSource, text) -> (MultiRpcResult_4); + eth_sendRawTransaction : (CandidRpcSource, text) -> (MultiRpcResult_5); getAccumulatedCycleCount : (nat64) -> (nat) query; getAuthorized : (Auth) -> (vec text) query; getNodesInSubnet : () -> (nat32) query; getOpenRpcAccess : () -> (bool) query; getProviders : () -> (vec ProviderView) query; - eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (MultiRpcResult); - eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> ( - MultiRpcResult_1, - ); - eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (MultiRpcResult_2); - eth_getTransactionCount : ( - CandidRpcSource, - GetTransactionCountArgs, - ) -> (MultiRpcResult_3); - eth_getTransactionReceipt : (CandidRpcSource, text) -> ( - MultiRpcResult_4, - ); registerProvider : (RegisterProviderArgs) -> (nat64); request : (Source, text, nat64) -> (Result_6); requestCost : (Source, text, nat64) -> (Result_7) query; diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index dadb8207..d2a3261d 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -178,8 +178,10 @@ impl CandidRpcClient { &self, raw_signed_transaction_hex: String, ) -> MultiRpcResult { - self.client - .multi_eth_send_raw_transaction(raw_signed_transaction_hex) - .await + multi_result( + self.client + .multi_eth_send_raw_transaction(raw_signed_transaction_hex) + .await, + ) } } diff --git a/src/types.rs b/src/types.rs index b434c030..97f9d8f9 100644 --- a/src/types.rs +++ b/src/types.rs @@ -363,6 +363,28 @@ impl MultiRpcResult { ), } } + + pub fn consistent(self) -> Option> { + match self { + MultiRpcResult::Consistent(result) => Some(result), + MultiRpcResult::Inconsistent(_) => None, + } + } + + pub fn inconsistent(self) -> Option)>> { + match self { + MultiRpcResult::Consistent(_) => None, + MultiRpcResult::Inconsistent(results) => Some(results), + } + } + + pub fn expect_consistent(self) -> RpcResult { + self.consistent().expect("inconsistent results") + } + + pub fn expect_inconsistent(self) -> Vec<(RpcService, RpcResult)> { + self.inconsistent().expect("consistent results") + } } impl From> for MultiRpcResult { diff --git a/tests/tests.rs b/tests/tests.rs index 33b8d99b..6f20f472 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -663,7 +663,9 @@ fn eth_get_logs_should_succeed() { }, ) .mock_http(MockOutcallBuilder::new(200, r#"{"id":0,"jsonrpc":"2.0","result":[{"address":"0xdac17f958d2ee523a2206206994597c13d831ec7","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43","0x00000000000000000000000078cccfb3d517cd4ed6d045e263e134712288ace2"],"data":"0x000000000000000000000000000000000000000000000000000000003b9c6433","blockNumber":"0x11dc77e","transactionHash":"0xf3ed91a03ddf964281ac7a24351573efd535b80fc460a5c2ad2b9d23153ec678","transactionIndex":"0x65","blockHash":"0xd5c72ad752b2f0144a878594faf8bd9f570f2f72af8e7f0940d3545a6388f629","logIndex":"0xe8","removed":false}]}"#)) - .wait().unwrap(); + .wait() + .expect_consistent() + .unwrap(); assert_eq!( response, vec![LogEntry { @@ -709,7 +711,9 @@ fn eth_get_block_by_number_should_succeed() { candid_types::BlockTag::Latest, ) .mock_http(MockOutcallBuilder::new(200, r#"{"jsonrpc":"2.0","result":{"baseFeePerGas":"0xd7232aa34","difficulty":"0x0","extraData":"0x546974616e2028746974616e6275696c6465722e78797a29","gasLimit":"0x1c9c380","gasUsed":"0xa768c4","hash":"0xc3674be7b9d95580d7f23c03d32e946f2b453679ee6505e3a778f003c5a3cfae","logsBloom":"0x3e6b8420e1a13038902c24d6c2a9720a7ad4860cdc870cd5c0490011e43631134f608935bd83171247407da2c15d85014f9984608c03684c74aad48b20bc24022134cdca5f2e9d2dee3b502a8ccd39eff8040b1d96601c460e119c408c620b44fa14053013220847045556ea70484e67ec012c322830cf56ef75e09bd0db28a00f238adfa587c9f80d7e30d3aba2863e63a5cad78954555966b1055a4936643366a0bb0b1bac68d0e6267fc5bf8304d404b0c69041125219aa70562e6a5a6362331a414a96d0716990a10161b87dd9568046a742d4280014975e232b6001a0360970e569d54404b27807d7a44c949ac507879d9d41ec8842122da6772101bc8b","miner":"0x388c818ca8b9251b393131c08a736a67ccb19297","mixHash":"0x516a58424d4883a3614da00a9c6f18cd5cd54335a08388229a993a8ecf05042f","nonce":"0x0000000000000000","number":"0x11db01d","parentHash":"0x43325027f6adf9befb223f8ae80db057daddcd7b48e41f60cd94bfa8877181ae","receiptsRoot":"0x66934c3fd9c547036fe0e56ad01bc43c84b170be7c4030a86805ddcdab149929","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0xcd35","stateRoot":"0x13552447dd62f11ad885f21a583c4fa34144efe923c7e35fb018d6710f06b2b6","timestamp":"0x656f96f3","totalDifficulty":"0xc70d815d562d3cfa955","withdrawalsRoot":"0xecae44b2c53871003c5cc75285995764034c9b5978a904229d36c1280b141d48"},"id":0}"#)) - .wait().unwrap(); + .wait() + .expect_consistent() + .unwrap(); assert_eq!( response, Block { @@ -747,7 +751,9 @@ fn eth_get_transaction_receipt_should_succeed() { "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new(200, r#"{"jsonrpc":"2.0","id":2,"result":{"blockHash":"0x5115c07eb1f20a9d6410db0916ed3df626cfdab161d3904f45c8c8b65c90d0be","blockNumber":"0x11a85ab","contractAddress":null,"cumulativeGasUsed":"0xf02aed","effectiveGasPrice":"0x63c00ee76","from":"0x0aa8ebb6ad5a8e499e550ae2c461197624c6e667","gasUsed":"0x7d89","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x356cfd6e6d0000400000003900b415f80669009e","transactionHash":"0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f","transactionIndex":"0xd9","type":"0x2"}}"#)) - .wait().unwrap(); + .wait() + .expect_consistent() + .unwrap(); assert_eq!( response, Some(candid_types::TransactionReceipt { @@ -784,6 +790,7 @@ fn eth_get_transaction_count_should_succeed() { r#"{"jsonrpc":"2.0","id":0,"result":"0x1"}"#, )) .wait() + .expect_consistent() .unwrap(); assert_eq!(response, 1); } @@ -805,6 +812,7 @@ fn eth_fee_history_should_succeed() { r#"{"id":0,"jsonrpc":"2.0","result":{"oldestBlock":"0x11e57f5","baseFeePerGas":["0x9cf6c61b9","0x97d853982","0x9ba55a0b0","0x9543bf98d"],"reward":[["0x0123"]]}}"#, )) .wait() + .expect_consistent() .unwrap(); assert_eq!( response, @@ -833,6 +841,7 @@ fn eth_send_raw_transaction_should_succeed() { r#"{"id":0,"jsonrpc":"2.0","result":"Ok"}"#, )) .wait() + .expect_consistent() .unwrap(); assert_eq!(response, SendRawTransactionResult::Ok); } @@ -846,7 +855,10 @@ fn candid_rpc_should_allow_unexpected_response_fields() { "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new(200, r#"{"jsonrpc":"2.0","id":0,"result":{"unexpectedKey":"unexpectedValue","blockHash":"0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35","blockNumber":"0x5bad55","contractAddress":null,"cumulativeGasUsed":"0xb90b0","effectiveGasPrice":"0x746a528800","from":"0x398137383b3d25c92898c656696e41950e47316b","gasUsed":"0x1383f","logs":[],"logsBloom":"0x0","status":"0x1","to":"0x06012c8cf97bead5deae237070f9587f8e7a266d","transactionHash":"0xbb3a336e3f823ec18197f1e13ee875700f08f03e2cab75f0d0b118dabb44cba0","transactionIndex":"0x11","type":"0x0"}}"#)) - .wait().unwrap().expect("receipt was None"); + .wait() + .expect_consistent() + .unwrap() + .expect("receipt was None"); assert_eq!( response.block_hash, "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35".to_string() @@ -861,7 +873,8 @@ fn candid_rpc_should_err_without_cycles() { CandidRpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) - .wait(); + .wait() + .expect_consistent(); assert_matches!( result, Err(RpcError::ProviderError(ProviderError::TooFewCycles { @@ -880,7 +893,8 @@ fn candid_rpc_should_err_during_restricted_access() { CandidRpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) - .wait(); + .wait() + .expect_consistent(); assert_eq!( result, Err(RpcError::ProviderError(ProviderError::NoPermission)) @@ -896,7 +910,8 @@ fn candid_rpc_should_err_when_service_unavailable() { "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new(503, "Service unavailable")) - .wait(); + .wait() + .expect_consistent(); assert_eq!( result, Err(RpcError::HttpOutcallError( @@ -921,7 +936,8 @@ fn candid_rpc_should_recognize_json_error() { 200, r#"{"jsonrpc":"2.0","id":0,"error":{"code":123,"message":"Error message"}}"#, )) - .wait(); + .wait() + .expect_consistent(); assert_eq!( result, Err(RpcError::JsonRpcError(JsonRpcError { From 696ca47b69b2ad8078327d2b013cc926a6eeb837 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Fri, 15 Dec 2023 16:52:34 -0700 Subject: [PATCH 10/20] Remove assertion in 'try_mock_http_inner()' --- tests/tests.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/tests.rs b/tests/tests.rs index 6f20f472..4cb3615e 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -322,8 +322,9 @@ impl CallFlow { } fn try_mock_http_inner(&self, mock: &MockOutcall) -> bool { - assert_eq!(self.setup.env.canister_http_request_contexts().len(), 0); - self.setup.tick_until_http_request(); + if self.setup.env.canister_http_request_contexts().is_empty() { + self.setup.tick_until_http_request(); + } match self.setup.env.ingress_status(&self.message_id) { IngressStatus::Known { state, .. } if state != IngressState::Processing => { return false From 4ce9beed28fa8ef9b5d20eebe74f370d5e57ad8d Mon Sep 17 00:00:00 2001 From: rvanasa Date: Fri, 15 Dec 2023 17:19:47 -0700 Subject: [PATCH 11/20] Return error on empty service list --- src/candid_rpc.rs | 30 ++++++++++++++++++++++++++---- src/constants.rs | 4 ++-- tests/tests.rs | 16 ++++++++++++++++ 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index d2a3261d..1dd063d8 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -80,6 +80,18 @@ impl RpcTransport for CanisterTransport { } } +fn check_services(services: Option>) -> RpcResult>> { + match services { + Some(services) => { + if services.is_empty() { + Err(ProviderError::ProviderNotFound)?; + } + Ok(Some(services)) + } + None => Ok(None), + } +} + fn get_rpc_client(source: CandidRpcSource) -> RpcResult> { if !is_rpc_allowed(&ic_cdk::caller()) { return Err(ProviderError::NoPermission.into()); @@ -87,13 +99,23 @@ fn get_rpc_client(source: CandidRpcSource) -> RpcResult CkEthRpcClient::new( EthereumNetwork::Mainnet, - Some(services.unwrap_or_else(|| DEFAULT_ETHEREUM_PROVIDERS.to_vec())) - .map(|service| service.into_iter().map(RpcService::EthMainnet).collect()), + Some( + check_services(services)? + .unwrap_or_else(|| DEFAULT_ETHEREUM_SERVICES.to_vec()) + .into_iter() + .map(RpcService::EthMainnet) + .collect(), + ), ), CandidRpcSource::EthSepolia(services) => CkEthRpcClient::new( EthereumNetwork::Sepolia, - Some(services.unwrap_or_else(|| DEFAULT_SEPOLIA_PROVIDERS.to_vec())) - .map(|service| service.into_iter().map(RpcService::EthSepolia).collect()), + Some( + check_services(services)? + .unwrap_or_else(|| DEFAULT_SEPOLIA_SERVICES.to_vec()) + .into_iter() + .map(RpcService::EthSepolia) + .collect(), + ), ), }) } diff --git a/src/constants.rs b/src/constants.rs index fae6332a..371ada44 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -16,12 +16,12 @@ pub const DEFAULT_NODES_IN_SUBNET: u32 = 13; pub const DEFAULT_OPEN_RPC_ACCESS: bool = true; // Providers used by default (when passing `null` with `CandidRpcSource`) -pub const DEFAULT_ETHEREUM_PROVIDERS: &[EthMainnetService] = &[ +pub const DEFAULT_ETHEREUM_SERVICES: &[EthMainnetService] = &[ EthMainnetService::Ankr, EthMainnetService::Cloudflare, EthMainnetService::PublicNode, ]; -pub const DEFAULT_SEPOLIA_PROVIDERS: &[EthSepoliaService] = &[ +pub const DEFAULT_SEPOLIA_SERVICES: &[EthSepoliaService] = &[ EthSepoliaService::Ankr, EthSepoliaService::BlockPi, EthSepoliaService::PublicNode, diff --git a/tests/tests.rs b/tests/tests.rs index 4cb3615e..9b6fe33b 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -947,3 +947,19 @@ fn candid_rpc_should_recognize_json_error() { })) ); } + +#[test] +fn candid_rpc_should_reject_empty_service_list() { + let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); + let result = setup + .eth_get_transaction_receipt( + CandidRpcSource::EthMainnet(Some(vec![])), + "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", + ) + .wait() + .expect_consistent(); + assert_eq!( + result, + Err(RpcError::ProviderError(ProviderError::ProviderNotFound)) + ); +} From e58401ca4e5a42cfc1692d2689896f23c9eb35f9 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Fri, 15 Dec 2023 18:12:33 -0700 Subject: [PATCH 12/20] Test inconsistent results --- src/types.rs | 4 ++-- tests/tests.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/types.rs b/src/types.rs index 97f9d8f9..56d50bd0 100644 --- a/src/types.rs +++ b/src/types.rs @@ -379,11 +379,11 @@ impl MultiRpcResult { } pub fn expect_consistent(self) -> RpcResult { - self.consistent().expect("inconsistent results") + self.consistent().expect("expected consistent results") } pub fn expect_inconsistent(self) -> Vec<(RpcService, RpcResult)> { - self.inconsistent().expect("consistent results") + self.inconsistent().expect("expected inconsistent results") } } diff --git a/tests/tests.rs b/tests/tests.rs index 9b6fe33b..445592f9 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -11,6 +11,7 @@ use cketh_common::{ Block, Data, FeeHistory, FixedSizeData, Hash, JsonRpcError, LogEntry, ProviderError, RpcError, SendRawTransactionResult, }, + eth_rpc_client::providers::{EthMainnetService, RpcService}, numeric::{BlockNumber, Wei}, }; use ic_base_types::{CanisterId, PrincipalId}; @@ -963,3 +964,36 @@ fn candid_rpc_should_reject_empty_service_list() { Err(RpcError::ProviderError(ProviderError::ProviderNotFound)) ); } + +#[test] +fn candid_rpc_should_represent_inconsistent_results() { + let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); + let results = setup + .eth_send_raw_transaction( + CandidRpcSource::EthMainnet(Some(vec![EthMainnetService::Ankr, EthMainnetService::Cloudflare])), + "0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83".to_string(), + ) + .mock_http_once(MockOutcallBuilder::new( + 200, + r#"{"id":0,"jsonrpc":"2.0","result":"Ok"}"#, + )) + .mock_http_once(MockOutcallBuilder::new( + 200, + r#"{"id":0,"jsonrpc":"2.0","result":"NonceTooLow"}"#, + )) + .wait() + .expect_inconsistent(); + assert_eq!( + results, + vec![ + ( + RpcService::EthMainnet(EthMainnetService::Ankr), + Ok(SendRawTransactionResult::Ok) + ), + ( + RpcService::EthMainnet(EthMainnetService::Cloudflare), + Ok(SendRawTransactionResult::NonceTooLow) + ) + ] + ); +} From 9edefcef0a860eff9beaa960aff05098c0e4bad7 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Mon, 18 Dec 2023 11:58:48 -0700 Subject: [PATCH 13/20] Test 'already known' case for 'eth_sendRawTransaction' --- tests/tests.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/tests.rs b/tests/tests.rs index 445592f9..b2b68043 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -997,3 +997,24 @@ fn candid_rpc_should_represent_inconsistent_results() { ] ); } + +#[test] +fn candid_rpc_should_handle_already_known() { + let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); + let result = setup + .eth_send_raw_transaction( + CandidRpcSource::EthMainnet(Some(vec![EthMainnetService::Ankr, EthMainnetService::Cloudflare])), + "0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83".to_string(), + ) + .mock_http_once(MockOutcallBuilder::new( + 200, + r#"{"id":0,"jsonrpc":"2.0","result":"Ok"}"#, + )) + .mock_http_once(MockOutcallBuilder::new( + 200, + r#"{"id":0,"jsonrpc":"2.0","error":{"code":-32000,"message":"already known"}}"#, + )) + .wait() + .expect_consistent(); + assert_eq!(result, Ok(SendRawTransactionResult::Ok)); +} From f9fda2a6e301c3cfb8fbecc1c5c4059dbd0fd23d Mon Sep 17 00:00:00 2001 From: rvanasa Date: Mon, 18 Dec 2023 17:34:28 -0700 Subject: [PATCH 14/20] Update Cargo.lock --- Cargo.lock | 8350 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8350 insertions(+) create mode 100644 Cargo.lock diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 00000000..86898174 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,8350 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.3", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "ahash" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "askama" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" +dependencies = [ + "askama_derive", + "askama_escape", + "humansize", + "num-traits", + "percent-encoding", + "serde", + "serde_json", +] + +[[package]] +name = "askama_derive" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ccf09143e56923c12e027b83a9553210a3c58322ed8419a53461b14a4dccd85" +dependencies = [ + "askama_parser", + "basic-toml", + "mime", + "mime_guess", + "proc-macro2", + "quote", + "serde", + "syn 2.0.41", +] + +[[package]] +name = "askama_escape" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" + +[[package]] +name = "askama_parser" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262eb9cf7be51269c5f2951eeda9ccd14d6934e437457f47b4f066bf55a6770d" +dependencies = [ + "nom", +] + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line 0.21.0", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.32.1", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" + +[[package]] +name = "base64" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "basic-toml" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f2139706359229bfa8f19142ac1155b4b80beafb7a60471ac5dd109d4a19778" +dependencies = [ + "serde", +] + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "binread" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16598dfc8e6578e9b597d9910ba2e73618385dc9f4b1d43dd92c349d6be6418f" +dependencies = [ + "binread_derive", + "lazy_static", + "rustversion", +] + +[[package]] +name = "binread_derive" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9672209df1714ee804b1f4d4f68c8eb2a90b1f7a07acf472f88ce198ef1fed" +dependencies = [ + "either", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + +[[package]] +name = "bit-vec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "borsh" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.41", + "syn_derive", +] + +[[package]] +name = "build-info" +version = "0.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "242c6293ad5acf5d9adb75231c1bd0c9cb0aecb64dd40e6579e36e0da7260f9b" +dependencies = [ + "build-info-proc", + "proc-macro-hack", +] + +[[package]] +name = "build-info-build" +version = "0.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebfef0dcb94d65cc2cd98ce285de89ed40c9a1d2bb10175f548867d0e26cda0" +dependencies = [ + "anyhow", + "base64 0.13.1", + "bincode", + "build-info-common", + "cargo_metadata", + "chrono", + "glob", + "lazy_static", + "pretty_assertions", + "rustc_version", + "serde_json", + "xz2", +] + +[[package]] +name = "build-info-common" +version = "0.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db629469a6955021b15eb99cf5983ae8dcf9d0432ba2a8295715efee232da912" +dependencies = [ + "chrono", + "derive_more 0.99.17", + "semver", + "serde", +] + +[[package]] +name = "build-info-proc" +version = "0.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0965fa7159aa2cee4c5428ccec2d09dabb6ac5db2fe80d81cb8a158f5c47b335" +dependencies = [ + "anyhow", + "base64 0.13.1", + "bincode", + "build-info-common", + "chrono", + "format-buf", + "num-bigint 0.4.4", + "num-traits", + "proc-macro-error", + "proc-macro-hack", + "proc-macro2", + "quote", + "serde_json", + "syn 1.0.109", + "xz2", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "by_address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8dba2868114ed769a1f2590fc9ae5eb331175b44313b6c9b922f8f7ca813d0" + +[[package]] +name = "byte-slice-cast" +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", + "utf8-width", +] + +[[package]] +name = "bytecheck" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +dependencies = [ + "serde", +] + +[[package]] +name = "cached" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec6d20b3d24b6c74e2c5331d2d3d8d1976a9883c7da179aa851afa4c90d62e36" +dependencies = [ + "hashbrown 0.12.3", + "instant", + "once_cell", + "thiserror", +] + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "candid" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465c1ce01d8089ee5b49ba20d3a9da15a28bba64c35cdff2aa256d37e319625d" +dependencies = [ + "anyhow", + "binread", + "byteorder", + "candid_derive", + "codespan-reporting", + "convert_case 0.6.0", + "crc32fast", + "data-encoding", + "hex", + "lalrpop", + "lalrpop-util", + "leb128", + "logos", + "num-bigint 0.4.4", + "num-traits", + "num_enum 0.6.1", + "paste", + "pretty", + "serde", + "serde_bytes", + "sha2 0.10.8", + "stacker", + "thiserror", +] + +[[package]] +name = "candid_derive" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201ea498d901add0822653ac94cb0f8a92f9b1758a5273f4dafbb6673c9a5020" +dependencies = [ + "lazy_static", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "cargo-platform" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.48.5", +] + +[[package]] +name = "ciborium" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" + +[[package]] +name = "ciborium-ll" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive", + "clap_lex", + "indexmap 1.9.3", + "once_cell", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "comparable" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb513ee8037bf08c5270ecefa48da249f4c58e57a71ccfce0a5b0877d2a20eb2" +dependencies = [ + "comparable_derive", + "comparable_helper", + "pretty_assertions", + "serde", +] + +[[package]] +name = "comparable_derive" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a54b9c40054eb8999c5d1d36fdc90e4e5f7ff0d1d9621706f360b3cbc8beb828" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "comparable_helper" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5437e327e861081c91270becff184859f706e3e50f5301a9d4dc8eb50752c3" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "const-hex" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ebf2f2c0abc3a31cda70b20bae56b9aeb6ad0de00c3620bfef1a7e26220edfb" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46d414ddd870ebce9b55eed9e803ef063436bd4d64160dd8e811ccbeb2c914f0" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-control", + "cranelift-entity", + "cranelift-isle", + "gimli 0.27.3", + "hashbrown 0.13.2", + "log", + "regalloc2", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1b0065250c0c1fae99748aadc6003725e588542650886d76dd234eca8498598" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27320b5159cfa5eadcbebceda66ac145c0aa5cb7a31948550b9636f77924081b" + +[[package]] +name = "cranelift-control" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26bb54d1e129d6d3cf0e2a191ec2ba91aec1c290a048bc7595490a275d729d7a" +dependencies = [ + "arbitrary", +] + +[[package]] +name = "cranelift-entity" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d5656cb48246a511ab1bd22431122d8d23553b7c5f7f5ccff5569f47c0b708c" +dependencies = [ + "serde", +] + +[[package]] +name = "cranelift-frontend" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5321dc54f0f4e19f85d8e68543c63edfc255171cc5910c8b9a48e6210ffcdf2" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adff1f9152fd9970ad9cc14e0d4e1b0089a75d19f8538c4dc9e19aebbd53fe60" + +[[package]] +name = "cranelift-native" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809bfa1db0b982b1796bc8c0002ab6bab959664df16095c289e567bdd22ade6f" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.98.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "892f9273ee0c7709e839fcee769f9db1630789be5dbdfa429d84e0de8ec3dd41" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.10.5", + "log", + "smallvec", + "wasmparser 0.107.0", + "wasmtime-types", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "cvt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ae9bf77fbf2d39ef573205d554d87e86c12f1994e9ea335b0651b9b278bcf1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "uuid", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.4", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_more" +version = "0.99.8-alpha.0" +source = "git+https://github.com/dfinity-lab/derive_more?branch=master#9f1b894e6fde640da4e9ea71a8fc0e4dd98d01da" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "dfn_candid" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "dfn_core", + "ic-base-types 0.8.0", + "on_wire", + "serde", +] + +[[package]] +name = "dfn_core" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "on_wire", +] + +[[package]] +name = "dfn_protobuf" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "dfn_core", + "ic-base-types 0.8.0", + "on_wire", + "prost 0.11.9", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "e2e" +version = "0.1.0" +dependencies = [ + "candid", + "ic-cdk", + "ic-cdk-bindgen", + "ic-cdk-macros", + "ic-certified-map", + "ic-eth", + "serde", + "serde_bytes", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "educe" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" +dependencies = [ + "log", +] + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +dependencies = [ + "base64 0.21.5", + "bytes", + "hex", + "k256", + "log", + "rand", + "rlp", + "serde", + "sha3 0.10.8", + "zeroize", +] + +[[package]] +name = "enum-ordinalize" +version = "3.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" +dependencies = [ + "num-bigint 0.4.4", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erased-serde" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" +dependencies = [ + "serde", +] + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "escargot" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "768064bd3a0e2bedcba91dc87ace90beea91acc41b6a01a3ca8e9aa8827461bf" +dependencies = [ + "log", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.8", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers-core" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f03e0bdc216eeb9e355b90cf610ef6c5bb8aca631f97b5ae9980ce34ea7878d" +dependencies = [ + "arrayvec 0.7.4", + "bytes", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum 0.7.1", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum 0.25.0", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-providers" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25d6c0c9455d93d4990c06e049abf9b30daf148cf461ee939c11d88907c60816" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.5", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" +dependencies = [ + "serde", +] + +[[package]] +name = "evm_rpc" +version = "0.1.0" +dependencies = [ + "assert_matches", + "async-trait", + "candid", + "hex", + "ic-base-types 0.8.0", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01)", + "ic-canisters-http-types 0.8.0", + "ic-cdk", + "ic-cdk-macros", + "ic-certified-map", + "ic-cketh-minter", + "ic-config", + "ic-eth", + "ic-ic00-types 0.8.0", + "ic-metrics-encoder", + "ic-nervous-system-common", + "ic-stable-structures", + "ic-state-machine-tests", + "ic-test-utilities-load-wasm", + "num", + "num-derive", + "num-traits", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fe-derive" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "num-bigint-dig", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "format-buf" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7aea5a5909a74969507051a3b17adc84737e31a5f910559892aedce026f4d53" + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "fxprof-processed-profile" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" +dependencies = [ + "bitflags 2.4.1", + "debugid", + "fxhash", + "serde", + "serde_json", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +dependencies = [ + "fallible-iterator", + "indexmap 1.9.3", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.6", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +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", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[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 = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ic-adapter-metrics" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-adapter-metrics-service", + "ic-async-utils", + "prometheus", + "protobuf", + "slog", + "slog-async", + "tokio", + "tonic", + "tower", +] + +[[package]] +name = "ic-adapter-metrics-server" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "futures", + "ic-adapter-metrics-service", + "ic-async-utils", + "ic-logger", + "ic-metrics", + "prometheus", + "protobuf", + "slog", + "tokio", + "tonic", +] + +[[package]] +name = "ic-adapter-metrics-service" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "prost 0.11.9", + "prost-build", + "tonic", + "tonic-build", +] + +[[package]] +name = "ic-async-utils" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-stream", + "byte-unit", + "derive_more 0.99.17", + "futures", + "futures-util", + "hyper", + "ic-types", + "slog", + "tokio", + "tonic", + "tower", +] + +[[package]] +name = "ic-base-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base32", + "byte-unit", + "bytes", + "candid", + "comparable", + "crc32fast", + "ic-crypto-sha2 0.8.0", + "ic-protobuf 0.8.0", + "ic-stable-structures", + "phantom_newtype 0.8.0", + "prost 0.11.9", + "serde", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-base-types" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "base32", + "byte-unit", + "bytes", + "candid", + "comparable", + "crc32fast", + "ic-crypto-sha2 0.9.0", + "ic-protobuf 0.9.0", + "ic-stable-structures", + "phantom_newtype 0.9.0", + "prost 0.12.3", + "serde", + "strum 0.25.0", + "strum_macros 0.25.3", +] + +[[package]] +name = "ic-btc-interface" +version = "0.1.0" +source = "git+https://github.com/dfinity/bitcoin-canister?rev=be0143a014ad4bccbc2eec5e2bcbe30317c5a84c#be0143a014ad4bccbc2eec5e2bcbe30317c5a84c" +dependencies = [ + "candid", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-btc-types-internal" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-btc-interface", + "ic-protobuf 0.8.0", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-btc-types-internal" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "candid", + "ic-btc-interface", + "ic-error-types 0.9.0", + "ic-protobuf 0.9.0", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-canister-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb82c4f617ecff6e452fe65af0489626ec7330ffe3eedd9ea14e6178eea48d1a" +dependencies = [ + "serde", +] + +[[package]] +name = "ic-canister-log" +version = "0.2.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "serde", +] + +[[package]] +name = "ic-canister-sandbox-backend-lib" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-canister-sandbox-common", + "ic-config", + "ic-constants", + "ic-cycles-account-manager", + "ic-embedders", + "ic-interfaces", + "ic-logger", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-system-api", + "ic-types", + "ic-utils 0.8.0", + "ic-wasm-types", + "libc", + "libflate", + "memory_tracker", + "nix 0.23.2", + "rayon", + "serde_json", + "slog", + "threadpool", +] + +[[package]] +name = "ic-canister-sandbox-common" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "bincode", + "bytes", + "ic-embedders", + "ic-interfaces", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-system-api", + "ic-types", + "ic-utils 0.8.0", + "libc", + "nix 0.23.2", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-canister-sandbox-replica-controller" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-canister-sandbox-backend-lib", + "ic-canister-sandbox-common", + "ic-config", + "ic-embedders", + "ic-interfaces", + "ic-logger", + "ic-metrics", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-system-api", + "ic-types", + "ic-wasm-types", + "lazy_static", + "libc", + "nix 0.23.2", + "once_cell", + "prometheus", + "regex", + "serde_json", + "slog", + "which", +] + +[[package]] +name = "ic-canisters-http-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-canisters-http-types" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "candid", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-canonical-state" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-canonical-state-tree-hash", + "ic-certification-version", + "ic-crypto-tree-hash", + "ic-error-types 0.8.0", + "ic-protobuf 0.8.0", + "ic-registry-routing-table", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-types", + "itertools 0.10.5", + "leb128", + "phantom_newtype 0.8.0", + "scoped_threadpool", + "serde", + "serde_bytes", + "serde_cbor", + "thiserror", +] + +[[package]] +name = "ic-canonical-state-tree-hash" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-tree-hash", + "itertools 0.10.5", + "leb128", + "scoped_threadpool", + "thiserror", +] + +[[package]] +name = "ic-cdk" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d4c0b932bf454d5d60e61e13c3c944972fcfd74dc82b9ed5c8b0a75979cf50" +dependencies = [ + "candid", + "ic-cdk-macros", + "ic0", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-cdk-bindgen" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b03d4379a83382bcad69913523bc151876245ff559d17bee5d478d459e72efd" +dependencies = [ + "candid", +] + +[[package]] +name = "ic-cdk-macros" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411c0dd4c149132b68e679274d397053332ee29996c6a541075895881916333b" +dependencies = [ + "candid", + "proc-macro2", + "quote", + "serde", + "serde_tokenstream", + "syn 1.0.109", +] + +[[package]] +name = "ic-cdk-timers" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "198e55e4d9e069903fbea1dceae6fd28f7e0b38d5a4e1026ed2c772e1d55f5e0" +dependencies = [ + "futures", + "ic-cdk", + "ic0", + "serde", + "serde_bytes", + "slotmap", +] + +[[package]] +name = "ic-certification" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-crypto-tree-hash", + "ic-crypto-utils-threshold-sig", + "ic-crypto-utils-threshold-sig-der", + "ic-types", + "serde", + "serde_cbor", + "tree-deserializer", +] + +[[package]] +name = "ic-certification-version" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-certified-map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197524aecec47db0b6c0c9f8821aad47272c2bd762c7a0ffe9715eaca0364061" +dependencies = [ + "serde", + "serde_bytes", + "sha2 0.10.8", +] + +[[package]] +name = "ic-cketh-minter" +version = "0.1.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "askama", + "async-trait", + "candid", + "ethnum", + "futures", + "hex", + "hex-literal 0.4.1", + "ic-canister-log 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ic-canisters-http-types 0.9.0", + "ic-cdk", + "ic-cdk-macros", + "ic-cdk-timers", + "ic-crypto-ecdsa-secp256k1 0.9.0", + "ic-crypto-sha3", + "ic-ic00-types 0.9.0", + "ic-metrics-encoder", + "ic-stable-structures", + "ic-utils-ensure", + "icrc-ledger-client-cdk", + "icrc-ledger-types 0.1.4", + "minicbor", + "minicbor-derive", + "num-bigint 0.4.4", + "num-traits", + "phantom_newtype 0.9.0", + "rlp", + "serde", + "serde_bytes", + "serde_json", + "strum 0.25.0", + "strum_macros 0.25.3", + "thiserror", + "thousands", + "time", +] + +[[package]] +name = "ic-config" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "ic-base-types 0.8.0", + "ic-protobuf 0.8.0", + "ic-registry-subnet-type", + "ic-sys 0.8.0", + "ic-types", + "json5", + "serde", + "slog", + "tempfile", + "url", +] + +[[package]] +name = "ic-constants" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" + +[[package]] +name = "ic-context-logger" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "slog", +] + +[[package]] +name = "ic-crypto" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-trait", + "bincode", + "clap", + "ed25519-consensus", + "hex", + "ic-adapter-metrics-server", + "ic-async-utils", + "ic-base-types 0.8.0", + "ic-config", + "ic-crypto-interfaces-sig-verification", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-internal-basic-sig-iccsa", + "ic-crypto-internal-csp", + "ic-crypto-internal-logmon", + "ic-crypto-internal-seed", + "ic-crypto-internal-threshold-sig-bls12381", + "ic-crypto-internal-threshold-sig-ecdsa", + "ic-crypto-internal-types", + "ic-crypto-standalone-sig-verifier", + "ic-crypto-tls-cert-validation", + "ic-crypto-tls-interfaces", + "ic-crypto-utils-basic-sig", + "ic-crypto-utils-time", + "ic-crypto-utils-tls", + "ic-interfaces", + "ic-interfaces-registry", + "ic-logger", + "ic-metrics", + "ic-protobuf 0.8.0", + "ic-registry-client-fake", + "ic-registry-client-helpers", + "ic-registry-keys", + "ic-registry-proto-data-provider", + "ic-types", + "parking_lot 0.12.1", + "serde", + "slog", + "strum 0.23.0", + "strum_macros 0.23.1", + "tempfile", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "ic-crypto-ecdsa-secp256k1" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "k256", + "lazy_static", + "num-bigint 0.4.4", + "pem 1.1.1", + "rand", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-ecdsa-secp256k1" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "k256", + "lazy_static", + "num-bigint 0.4.4", + "pem 1.1.1", + "rand", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-ecdsa-secp256r1" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-getrandom-for-wasm", + "lazy_static", + "num-bigint 0.4.4", + "p256", + "pem 1.1.1", + "rand", + "rand_chacha", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-extended-bip32" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-threshold-sig-ecdsa", +] + +[[package]] +name = "ic-crypto-getrandom-for-wasm" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "ic-crypto-iccsa" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-basic-sig-iccsa", +] + +[[package]] +name = "ic-crypto-interfaces-sig-verification" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-types", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-cose" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-basic-sig-ecdsa-secp256r1", + "ic-crypto-internal-basic-sig-rsa-pkcs1", + "ic-types", + "serde", + "serde_cbor", + "simple_asn1", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-der-utils" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-types", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-ecdsa-secp256k1" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "ic-crypto-ecdsa-secp256k1 0.1.0", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-types", + "ic-crypto-secrets-containers", + "ic-types", + "serde", + "serde_bytes", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-ecdsa-secp256r1" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "ic-crypto-ecdsa-secp256r1", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-types", + "ic-crypto-secrets-containers", + "ic-types", + "p256", + "rand", + "serde", + "serde_bytes", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-ed25519" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "curve25519-dalek", + "ed25519-consensus", + "hex", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-seed", + "ic-crypto-internal-types", + "ic-crypto-secrets-containers", + "ic-protobuf 0.8.0", + "ic-types", + "rand", + "rand_chacha", + "serde", + "simple_asn1", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-iccsa" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "hex", + "ic-certification", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-types", + "ic-crypto-sha2 0.8.0", + "ic-crypto-tree-hash", + "ic-types", + "serde", + "serde_bytes", + "serde_cbor", + "simple_asn1", +] + +[[package]] +name = "ic-crypto-internal-basic-sig-rsa-pkcs1" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-getrandom-for-wasm", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-sha2 0.8.0", + "ic-types", + "num-bigint 0.4.4", + "num-traits", + "pkcs8", + "rsa", + "serde", + "sha2 0.10.8", + "simple_asn1", +] + +[[package]] +name = "ic-crypto-internal-bls12-381-type" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-crypto-getrandom-for-wasm", + "ic_bls12_381", + "itertools 0.10.5", + "lazy_static", + "pairing", + "paste", + "rand", + "rand_chacha", + "sha2 0.9.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-csp" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-trait", + "base64 0.11.0", + "hex", + "ic-adapter-metrics", + "ic-config", + "ic-crypto-internal-basic-sig-ecdsa-secp256k1", + "ic-crypto-internal-basic-sig-ecdsa-secp256r1", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-internal-basic-sig-rsa-pkcs1", + "ic-crypto-internal-logmon", + "ic-crypto-internal-multi-sig-bls12381", + "ic-crypto-internal-seed", + "ic-crypto-internal-test-vectors", + "ic-crypto-internal-threshold-sig-bls12381", + "ic-crypto-internal-threshold-sig-ecdsa", + "ic-crypto-internal-tls", + "ic-crypto-internal-types", + "ic-crypto-node-key-validation", + "ic-crypto-secrets-containers", + "ic-crypto-sha2 0.8.0", + "ic-crypto-standalone-sig-verifier", + "ic-crypto-tls-interfaces", + "ic-crypto-utils-time", + "ic-interfaces", + "ic-logger", + "ic-metrics", + "ic-protobuf 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "parking_lot 0.12.1", + "prost 0.11.9", + "rand", + "rand_chacha", + "rcgen 0.10.0", + "serde", + "serde_cbor", + "simple_asn1", + "slog", + "strum 0.23.0", + "strum_macros 0.23.1", + "stubborn-io", + "tarpc", + "tempfile", + "threadpool", + "time", + "tokio", + "tokio-serde", + "tokio-util", + "x509-parser 0.15.1", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-hmac" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-sha2 0.8.0", +] + +[[package]] +name = "ic-crypto-internal-logmon" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "convert_case 0.6.0", + "ic-metrics", + "prometheus", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-crypto-internal-multi-sig-bls12381" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "hex", + "ic-crypto-internal-bls12-381-type", + "ic-crypto-internal-types", + "ic-crypto-secrets-containers", + "ic-crypto-sha2 0.8.0", + "ic-protobuf 0.8.0", + "ic-types", + "rand", + "rand_chacha", + "serde", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-seed" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-crypto-sha2 0.8.0", + "ic-types", + "rand", + "rand_chacha", + "serde", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-sha2" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "sha2 0.10.8", +] + +[[package]] +name = "ic-crypto-internal-sha2" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "sha2 0.10.8", +] + +[[package]] +name = "ic-crypto-internal-test-vectors" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "hex", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-crypto-internal-threshold-sig-bls12381" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "cached", + "hex", + "ic-crypto-internal-bls12-381-type", + "ic-crypto-internal-seed", + "ic-crypto-internal-threshold-sig-bls12381-der", + "ic-crypto-internal-types", + "ic-crypto-secrets-containers", + "ic-crypto-sha2 0.8.0", + "ic-types", + "lazy_static", + "parking_lot 0.12.1", + "rand", + "rand_chacha", + "serde", + "serde_bytes", + "serde_cbor", + "strum_macros 0.23.1", + "subtle", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-threshold-sig-bls12381-der" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "simple_asn1", +] + +[[package]] +name = "ic-crypto-internal-threshold-sig-ecdsa" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "fe-derive", + "hex", + "hex-literal 0.3.4", + "ic-crypto-internal-hmac", + "ic-crypto-internal-seed", + "ic-crypto-internal-types", + "ic-crypto-secrets-containers", + "ic-crypto-sha2 0.8.0", + "ic-types", + "k256", + "lazy_static", + "p256", + "paste", + "rand", + "rand_chacha", + "serde", + "serde_bytes", + "serde_cbor", + "strum 0.23.0", + "strum_macros 0.23.1", + "subtle", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-tls" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-secrets-containers", + "ic-types", + "rand", + "rcgen 0.11.3", + "serde", + "time", + "zeroize", +] + +[[package]] +name = "ic-crypto-internal-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "arrayvec 0.5.2", + "base64 0.11.0", + "hex", + "ic-protobuf 0.8.0", + "phantom_newtype 0.8.0", + "serde", + "serde_cbor", + "strum 0.23.0", + "strum_macros 0.23.1", + "thiserror", + "zeroize", +] + +[[package]] +name = "ic-crypto-node-key-validation" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-base-types 0.8.0", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-internal-multi-sig-bls12381", + "ic-crypto-internal-threshold-sig-bls12381", + "ic-crypto-internal-threshold-sig-ecdsa", + "ic-crypto-internal-types", + "ic-crypto-tls-cert-validation", + "ic-interfaces", + "ic-protobuf 0.8.0", + "ic-types", + "serde", +] + +[[package]] +name = "ic-crypto-prng" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-sha2 0.8.0", + "ic-interfaces", + "ic-types", + "rand", + "rand_chacha", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-crypto-secrets-containers" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "serde", + "zeroize", +] + +[[package]] +name = "ic-crypto-sha2" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-sha2 0.8.0", +] + +[[package]] +name = "ic-crypto-sha2" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "ic-crypto-internal-sha2 0.9.0", +] + +[[package]] +name = "ic-crypto-sha3" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "sha3 0.9.1", +] + +[[package]] +name = "ic-crypto-standalone-sig-verifier" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-iccsa", + "ic-crypto-internal-basic-sig-cose", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-basic-sig-ecdsa-secp256k1", + "ic-crypto-internal-basic-sig-ecdsa-secp256r1", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-internal-basic-sig-iccsa", + "ic-crypto-internal-basic-sig-rsa-pkcs1", + "ic-crypto-internal-types", + "ic-crypto-sha2 0.8.0", + "ic-types", +] + +[[package]] +name = "ic-crypto-tecdsa" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-internal-threshold-sig-ecdsa", + "ic-types", +] + +[[package]] +name = "ic-crypto-test-utils-keys" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-protobuf 0.8.0", + "ic-types", +] + +[[package]] +name = "ic-crypto-tls-cert-validation" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-base-types 0.8.0", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-internal-types", + "ic-protobuf 0.8.0", + "ic-types", + "serde", + "x509-parser 0.14.0", +] + +[[package]] +name = "ic-crypto-tls-interfaces" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-trait", + "ic-crypto-sha2 0.8.0", + "ic-protobuf 0.8.0", + "ic-types", + "serde", + "tokio", + "tokio-rustls", + "x509-parser 0.15.1", +] + +[[package]] +name = "ic-crypto-tree-hash" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "assert_matches", + "ic-crypto-internal-types", + "ic-crypto-sha2 0.8.0", + "ic-protobuf 0.8.0", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "ic-crypto-utils-basic-sig" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "ed25519-consensus", + "ic-base-types 0.8.0", + "ic-crypto-internal-basic-sig-der-utils", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-internal-types", + "ic-protobuf 0.8.0", + "simple_asn1", +] + +[[package]] +name = "ic-crypto-utils-threshold-sig" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "ic-crypto-internal-threshold-sig-bls12381", + "ic-crypto-internal-types", + "ic-types", +] + +[[package]] +name = "ic-crypto-utils-threshold-sig-der" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "ic-crypto-internal-threshold-sig-bls12381-der", + "ic-crypto-internal-types", + "ic-types", +] + +[[package]] +name = "ic-crypto-utils-time" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-interfaces", + "ic-logger", + "ic-types", + "slog", +] + +[[package]] +name = "ic-crypto-utils-tls" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-crypto-tls-interfaces", + "tokio-rustls", + "x509-parser 0.15.1", +] + +[[package]] +name = "ic-cycles-account-manager" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-config", + "ic-ic00-types 0.8.0", + "ic-interfaces", + "ic-logger", + "ic-nns-constants", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-types", + "prometheus", + "serde", + "slog", +] + +[[package]] +name = "ic-embedders" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "anyhow", + "ic-config", + "ic-cycles-account-manager", + "ic-interfaces", + "ic-logger", + "ic-metrics", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-system-api", + "ic-types", + "ic-utils 0.8.0", + "ic-utils-lru-cache", + "ic-wasm-types", + "libc", + "libflate", + "memory_tracker", + "nix 0.23.2", + "prometheus", + "rayon", + "serde", + "serde_bytes", + "slog", + "slog-term", + "wasm-encoder 0.31.1", + "wasmparser 0.109.0", + "wasmtime", + "wasmtime-environ", + "wasmtime-runtime", +] + +[[package]] +name = "ic-error-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-utils 0.8.0", + "serde", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-error-types" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "ic-utils 0.9.0", + "serde", + "strum 0.25.0", + "strum_macros 0.25.3", +] + +[[package]] +name = "ic-eth" +version = "0.1.0" +dependencies = [ + "async-trait", + "ethers-core", + "ethers-providers", + "getrandom 0.2.11", + "hex", + "ic-cdk", + "ic-cdk-macros", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "ic-execution-environment" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "crossbeam-channel", + "escargot", + "hex", + "ic-base-types 0.8.0", + "ic-btc-interface", + "ic-canister-sandbox-replica-controller", + "ic-config", + "ic-constants", + "ic-crypto-prng", + "ic-crypto-tecdsa", + "ic-crypto-tree-hash", + "ic-cycles-account-manager", + "ic-embedders", + "ic-error-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-interfaces", + "ic-interfaces-state-manager", + "ic-logger", + "ic-metrics", + "ic-nns-constants", + "ic-registry-provisional-whitelist", + "ic-registry-routing-table", + "ic-registry-subnet-features", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-state-layout", + "ic-sys 0.8.0", + "ic-system-api", + "ic-types", + "ic-utils 0.8.0", + "ic-utils-lru-cache", + "ic-wasm-types", + "lazy_static", + "memory_tracker", + "nix 0.23.2", + "num-rational 0.2.4", + "num-traits", + "phantom_newtype 0.8.0", + "prometheus", + "rand", + "scoped_threadpool", + "serde", + "serde_bytes", + "serde_cbor", + "slog", + "strum 0.23.0", + "threadpool", + "tokio", + "tower", +] + +[[package]] +name = "ic-ic00-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-base-types 0.8.0", + "ic-btc-interface", + "ic-btc-types-internal 0.1.0", + "ic-error-types 0.8.0", + "ic-protobuf 0.8.0", + "num-traits", + "serde", + "serde_bytes", + "serde_cbor", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-ic00-types" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "candid", + "ic-base-types 0.9.0", + "ic-btc-interface", + "ic-btc-types-internal 0.9.0", + "ic-error-types 0.9.0", + "ic-protobuf 0.9.0", + "num-traits", + "serde", + "serde_bytes", + "serde_cbor", + "strum 0.25.0", + "strum_macros 0.25.3", +] + +[[package]] +name = "ic-icrc1" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ciborium", + "hex", + "ic-base-types 0.8.0", + "ic-crypto-sha2 0.8.0", + "ic-ledger-canister-core", + "ic-ledger-core", + "ic-ledger-hash-of", + "icrc-ledger-types 0.1.2", + "num-bigint 0.4.4", + "num-traits", + "serde", + "serde_bytes", + "tempfile", + "thiserror", +] + +[[package]] +name = "ic-interfaces" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-trait", + "derive_more 0.99.8-alpha.0", + "ic-base-types 0.8.0", + "ic-crypto-interfaces-sig-verification", + "ic-crypto-tree-hash", + "ic-error-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-interfaces-state-manager", + "ic-protobuf 0.8.0", + "ic-registry-provisional-whitelist", + "ic-registry-subnet-type", + "ic-sys 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "ic-wasm-types", + "prost 0.11.9", + "rand", + "serde", + "serde_bytes", + "thiserror", + "tower", +] + +[[package]] +name = "ic-interfaces-certified-stream-store" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-types", +] + +[[package]] +name = "ic-interfaces-registry" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-types", + "prost 0.11.9", + "serde", +] + +[[package]] +name = "ic-interfaces-state-manager" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-tree-hash", + "ic-types", + "phantom_newtype 0.8.0", + "thiserror", +] + +[[package]] +name = "ic-ledger-canister-core" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-trait", + "candid", + "ic-base-types 0.8.0", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01)", + "ic-constants", + "ic-ic00-types 0.8.0", + "ic-ledger-core", + "ic-ledger-hash-of", + "ic-utils 0.8.0", + "num-traits", + "serde", +] + +[[package]] +name = "ic-ledger-core" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-ledger-hash-of", + "num-traits", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-ledger-hash-of" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "hex", + "serde", +] + +[[package]] +name = "ic-logger" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "chrono", + "ic-config", + "ic-context-logger", + "ic-protobuf 0.8.0", + "serde", + "slog", + "slog-async", + "slog-json", + "slog-scope", + "slog-term", +] + +[[package]] +name = "ic-messaging" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-certification-version", + "ic-config", + "ic-constants", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-tree-hash", + "ic-crypto-utils-threshold-sig-der", + "ic-cycles-account-manager", + "ic-error-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-interfaces", + "ic-interfaces-certified-stream-store", + "ic-interfaces-registry", + "ic-interfaces-state-manager", + "ic-logger", + "ic-metrics", + "ic-protobuf 0.8.0", + "ic-registry-client-fake", + "ic-registry-client-helpers", + "ic-registry-keys", + "ic-registry-proto-data-provider", + "ic-registry-provisional-whitelist", + "ic-registry-routing-table", + "ic-registry-subnet-features", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-types", + "ic-utils 0.8.0", + "prometheus", + "slog", +] + +[[package]] +name = "ic-metrics" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "futures", + "ic-adapter-metrics", + "ic-logger", + "libc", + "procfs", + "prometheus", + "slog", + "slog-async", + "tokio", + "tokio-metrics", +] + +[[package]] +name = "ic-metrics-encoder" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b5c7628eac357aecda461130f8074468be5aa4d258a002032d82d817f79f1f8" + +[[package]] +name = "ic-nervous-system-common" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "anyhow", + "async-trait", + "build-info", + "build-info-build", + "by_address", + "bytes", + "candid", + "dfn_candid", + "dfn_core", + "dfn_protobuf", + "ic-base-types 0.8.0", + "ic-canister-log 0.2.0 (git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01)", + "ic-canisters-http-types 0.8.0", + "ic-crypto-sha2 0.8.0", + "ic-ic00-types 0.8.0", + "ic-icrc1", + "ic-ledger-core", + "ic-metrics-encoder", + "ic-nervous-system-runtime", + "ic-nns-constants", + "ic-stable-structures", + "icp-ledger", + "icrc-ledger-types 0.1.2", + "json5", + "maplit", + "mockall", + "priority-queue", + "prost 0.11.9", + "rust_decimal", + "serde", + "serde_json", +] + +[[package]] +name = "ic-nervous-system-runtime" +version = "0.0.1" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "async-trait", + "candid", + "dfn_candid", + "dfn_core", + "ic-base-types 0.8.0", + "ic-cdk", +] + +[[package]] +name = "ic-nns-constants" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "lazy_static", +] + +[[package]] +name = "ic-protobuf" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "bincode", + "candid", + "erased-serde", + "maplit", + "prost 0.11.9", + "serde", + "serde_json", + "slog", +] + +[[package]] +name = "ic-protobuf" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "bincode", + "candid", + "erased-serde", + "maplit", + "prost 0.12.3", + "serde", + "serde_json", + "slog", +] + +[[package]] +name = "ic-registry-client-fake" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-interfaces-registry", + "ic-types", +] + +[[package]] +name = "ic-registry-client-helpers" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-interfaces-registry", + "ic-protobuf 0.8.0", + "ic-registry-common-proto", + "ic-registry-keys", + "ic-registry-provisional-whitelist", + "ic-registry-routing-table", + "ic-registry-subnet-features", + "ic-types", + "serde_cbor", + "thiserror", +] + +[[package]] +name = "ic-registry-common-proto" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "prost 0.11.9", +] + +[[package]] +name = "ic-registry-keys" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-base-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-types", + "serde", +] + +[[package]] +name = "ic-registry-proto-data-provider" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "bytes", + "ic-interfaces-registry", + "ic-registry-common-proto", + "ic-registry-transport", + "ic-types", + "ic-utils 0.8.0", + "thiserror", +] + +[[package]] +name = "ic-registry-provisional-whitelist" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-base-types 0.8.0", + "ic-protobuf 0.8.0", +] + +[[package]] +name = "ic-registry-routing-table" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-base-types 0.8.0", + "ic-protobuf 0.8.0", + "serde", +] + +[[package]] +name = "ic-registry-subnet-features" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-ic00-types 0.8.0", + "ic-protobuf 0.8.0", + "serde", +] + +[[package]] +name = "ic-registry-subnet-type" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-protobuf 0.8.0", + "serde", + "strum 0.23.0", + "strum_macros 0.23.1", +] + +[[package]] +name = "ic-registry-transport" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "bytes", + "candid", + "ic-base-types 0.8.0", + "ic-protobuf 0.8.0", + "prost 0.11.9", + "serde", +] + +[[package]] +name = "ic-replicated-state" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "cvt", + "ic-base-types 0.8.0", + "ic-btc-interface", + "ic-btc-types-internal 0.1.0", + "ic-certification-version", + "ic-config", + "ic-constants", + "ic-crypto-internal-basic-sig-ed25519", + "ic-crypto-sha2 0.8.0", + "ic-crypto-test-utils-keys", + "ic-error-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-interfaces", + "ic-logger", + "ic-protobuf 0.8.0", + "ic-registry-routing-table", + "ic-registry-subnet-features", + "ic-registry-subnet-type", + "ic-sys 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "ic-wasm-types", + "lazy_static", + "libc", + "maplit", + "nix 0.23.2", + "phantom_newtype 0.8.0", + "rand", + "rand_chacha", + "serde", + "slog", + "tempfile", + "uuid", +] + +[[package]] +name = "ic-stable-structures" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95dce29e3ceb0e6da3e78b305d95365530f2efd2146ca18590c0ef3aa6038568" + +[[package]] +name = "ic-state-layout" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-base-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-logger", + "ic-metrics", + "ic-protobuf 0.8.0", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "ic-wasm-types", + "libc", + "prometheus", + "prost 0.11.9", + "scoped_threadpool", + "serde", + "serde_bytes", + "serde_cbor", + "slog", + "tempfile", +] + +[[package]] +name = "ic-state-machine-tests" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ciborium", + "clap", + "hex", + "ic-config", + "ic-constants", + "ic-crypto", + "ic-crypto-ecdsa-secp256k1 0.1.0", + "ic-crypto-extended-bip32", + "ic-crypto-iccsa", + "ic-crypto-internal-seed", + "ic-crypto-internal-threshold-sig-bls12381", + "ic-crypto-internal-types", + "ic-crypto-test-utils-keys", + "ic-crypto-tree-hash", + "ic-crypto-utils-threshold-sig-der", + "ic-cycles-account-manager", + "ic-error-types 0.8.0", + "ic-execution-environment", + "ic-ic00-types 0.8.0", + "ic-interfaces", + "ic-interfaces-certified-stream-store", + "ic-interfaces-registry", + "ic-interfaces-state-manager", + "ic-logger", + "ic-messaging", + "ic-metrics", + "ic-protobuf 0.8.0", + "ic-registry-client-fake", + "ic-registry-client-helpers", + "ic-registry-keys", + "ic-registry-proto-data-provider", + "ic-registry-provisional-whitelist", + "ic-registry-routing-table", + "ic-registry-subnet-features", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-state-layout", + "ic-state-manager", + "ic-test-state-machine-client", + "ic-test-utilities-metrics", + "ic-test-utilities-registry", + "ic-types", + "maplit", + "serde", + "serde_bytes", + "serde_cbor", + "slog", + "slog-term", + "tempfile", + "tokio", + "wat", +] + +[[package]] +name = "ic-state-manager" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "bit-vec 0.6.3", + "crossbeam-channel", + "hex", + "ic-base-types 0.8.0", + "ic-canonical-state", + "ic-canonical-state-tree-hash", + "ic-config", + "ic-crypto-sha2 0.8.0", + "ic-crypto-tree-hash", + "ic-error-types 0.8.0", + "ic-interfaces", + "ic-interfaces-certified-stream-store", + "ic-interfaces-state-manager", + "ic-logger", + "ic-metrics", + "ic-protobuf 0.8.0", + "ic-registry-routing-table", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-state-layout", + "ic-sys 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "nix 0.23.2", + "parking_lot 0.12.1", + "prometheus", + "prost 0.11.9", + "rand", + "rand_chacha", + "scoped_threadpool", + "serde", + "serde_bytes", + "slog", + "tempfile", + "tree-deserializer", + "uuid", +] + +[[package]] +name = "ic-sys" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "hex", + "ic-crypto-sha2 0.8.0", + "lazy_static", + "libc", + "nix 0.23.2", + "phantom_newtype 0.8.0", + "wsl", +] + +[[package]] +name = "ic-sys" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "hex", + "ic-crypto-sha2 0.9.0", + "lazy_static", + "libc", + "nix 0.24.3", + "phantom_newtype 0.9.0", + "wsl", +] + +[[package]] +name = "ic-system-api" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "ic-base-types 0.8.0", + "ic-btc-interface", + "ic-config", + "ic-constants", + "ic-cycles-account-manager", + "ic-error-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-interfaces", + "ic-logger", + "ic-nns-constants", + "ic-registry-routing-table", + "ic-registry-subnet-type", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "ic-wasm-types", + "prometheus", + "serde", + "serde_bytes", + "slog", +] + +[[package]] +name = "ic-test-state-machine-client" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cadf6ac4a193a8a45287da67c6c385f118d9266f46d6d98e40fbbd469d3822e" +dependencies = [ + "candid", + "ciborium", + "serde", + "serde_bytes", +] + +[[package]] +name = "ic-test-utilities-load-wasm" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "cargo_metadata", + "escargot", +] + +[[package]] +name = "ic-test-utilities-metrics" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-metrics", + "prometheus", +] + +[[package]] +name = "ic-test-utilities-registry" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-interfaces", + "ic-interfaces-registry", + "ic-protobuf 0.8.0", + "ic-registry-client-fake", + "ic-registry-keys", + "ic-registry-proto-data-provider", + "ic-registry-subnet-features", + "ic-registry-subnet-type", + "ic-types", +] + +[[package]] +name = "ic-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base64 0.11.0", + "bincode", + "candid", + "chrono", + "derive_more 0.99.8-alpha.0", + "hex", + "ic-base-types 0.8.0", + "ic-btc-types-internal 0.1.0", + "ic-constants", + "ic-crypto-internal-types", + "ic-crypto-sha2 0.8.0", + "ic-crypto-tree-hash", + "ic-error-types 0.8.0", + "ic-ic00-types 0.8.0", + "ic-protobuf 0.8.0", + "ic-utils 0.8.0", + "maplit", + "once_cell", + "phantom_newtype 0.8.0", + "prost 0.11.9", + "serde", + "serde_bytes", + "serde_cbor", + "serde_json", + "serde_with", + "strum 0.23.0", + "strum_macros 0.23.1", + "thiserror", + "thousands", +] + +[[package]] +name = "ic-utils" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "cvt", + "hex", + "ic-sys 0.8.0", + "libc", + "nix 0.23.2", + "prost 0.11.9", + "rand", + "scoped_threadpool", + "serde", + "thiserror", +] + +[[package]] +name = "ic-utils" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "cvt", + "hex", + "ic-sys 0.9.0", + "libc", + "nix 0.24.3", + "prost 0.12.3", + "rand", + "scoped_threadpool", + "serde", + "thiserror", +] + +[[package]] +name = "ic-utils-ensure" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" + +[[package]] +name = "ic-utils-lru-cache" +version = "0.1.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-types", + "lru", +] + +[[package]] +name = "ic-wasm-types" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-sha2 0.8.0", + "ic-protobuf 0.8.0", + "ic-sys 0.8.0", + "ic-types", + "ic-utils 0.8.0", + "serde", +] + +[[package]] +name = "ic0" +version = "0.18.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576c539151d4769fb4d1a0c25c4108dd18facd04c5695b02cf2d226ab4e43aa5" + +[[package]] +name = "ic_bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c682cb199cd8fcb582a6023325d571a6464edda26c8063fe04b6f6082a1a363c" +dependencies = [ + "digest 0.9.0", + "ff 0.12.1", + "group 0.12.1", + "pairing", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "icp-ledger" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "comparable", + "crc32fast", + "dfn_candid", + "dfn_core", + "dfn_protobuf", + "hex", + "ic-base-types 0.8.0", + "ic-crypto-sha2 0.8.0", + "ic-ledger-canister-core", + "ic-ledger-core", + "ic-ledger-hash-of", + "icrc-ledger-types 0.1.2", + "lazy_static", + "num-traits", + "on_wire", + "prost 0.11.9", + "prost-derive 0.11.9", + "serde", + "serde_bytes", + "serde_cbor", + "strum 0.24.1", + "strum_macros 0.24.3", +] + +[[package]] +name = "icrc-ledger-client" +version = "0.1.2" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "async-trait", + "candid", + "icrc-ledger-types 0.1.4", + "serde", +] + +[[package]] +name = "icrc-ledger-client-cdk" +version = "0.1.2" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "async-trait", + "candid", + "ic-cdk", + "icrc-ledger-client", +] + +[[package]] +name = "icrc-ledger-types" +version = "0.1.2" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "base32", + "candid", + "crc32fast", + "hex", + "num-traits", + "serde", + "serde_bytes", + "sha2 0.10.8", +] + +[[package]] +name = "icrc-ledger-types" +version = "0.1.4" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "base32", + "candid", + "crc32fast", + "hex", + "num-bigint 0.4.4", + "num-traits", + "serde", + "serde_bytes", + "sha2 0.10.8", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.3", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi 0.3.3", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json5" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" +dependencies = [ + "pest", + "pest_derive", + "serde", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.5", + "pem 1.1.1", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lalrpop" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +dependencies = [ + "ascii-canvas", + "bit-set", + "diff", + "ena", + "is-terminal", + "itertools 0.10.5", + "lalrpop-util", + "petgraph", + "pico-args", + "regex", + "regex-syntax 0.7.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +dependencies = [ + "regex", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libflate" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18" +dependencies = [ + "adler32", + "crc32fast", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf" +dependencies = [ + "rle-decode-fast", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "logos" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" +dependencies = [ + "beef", + "fnv", + "proc-macro2", + "quote", + "regex-syntax 0.6.29", + "syn 2.0.41", +] + +[[package]] +name = "logos-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e" +dependencies = [ + "logos-codegen", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" + +[[package]] +name = "lzma-sys" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix 0.38.28", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memory_tracker" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "bit-vec 0.5.1", + "ic-config", + "ic-logger", + "ic-replicated-state", + "ic-sys 0.8.0", + "ic-utils 0.8.0", + "lazy_static", + "libc", + "nix 0.23.2", + "slog", +] + +[[package]] +name = "mime" +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 = "minicbor" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7005aaf257a59ff4de471a9d5538ec868a21586534fff7f85dd97d4043a6139" +dependencies = [ + "minicbor-derive", +] + +[[package]] +name = "minicbor-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1154809406efdb7982841adb6311b3d095b46f78342dd646736122fe6b19e267" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nix" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" +dependencies = [ + "bitflags 1.3.2", + "cc", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[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 = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint 0.4.4", + "num-complex", + "num-integer", + "num-iter", + "num-rational 0.4.1", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint 0.4.4", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.3", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" +dependencies = [ + "num_enum_derive 0.7.1", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" +dependencies = [ + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.30.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", + "memchr", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "on_wire" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec 0.7.4", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "opentelemetry" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "js-sys", + "lazy_static", + "percent-encoding", + "pin-project", + "rand", + "thiserror", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group 0.12.1", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +dependencies = [ + "arrayvec 0.7.4", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +dependencies = [ + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" +dependencies = [ + "base64 0.21.5", + "serde", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pest_meta" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "phantom_newtype" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "candid", + "serde", + "slog", +] + +[[package]] +name = "phantom_newtype" +version = "0.9.0" +source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +dependencies = [ + "candid", + "serde", + "slog", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "pretty" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55c4d17d994b637e2f4daf6e5dc5d660d209d5642377d675d7a1c3ab69fa579" +dependencies = [ + "arrayvec 0.5.2", + "typed-arena", + "unicode-width", +] + +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "priority-queue" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff39edfcaec0d64e8d0da38564fad195d2d51b680940295fcc307366e101e61" +dependencies = [ + "autocfg", + "indexmap 1.9.3", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "procfs" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab8809e0c18450a2db0f236d2a44ec0b4c1412d0eb936233579f0990faa5d5cd" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "flate2", + "hex", + "lazy_static", + "libc", +] + +[[package]] +name = "prometheus" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99c" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "libc", + "memchr", + "parking_lot 0.11.2", + "procfs", + "protobuf", + "thiserror", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bitflags 2.4.1", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax 0.8.2", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive 0.12.3", +] + +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prettyplease", + "prost 0.11.9", + "prost-types", + "regex", + "syn 1.0.109", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[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 = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem 1.1.1", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "rcgen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" +dependencies = [ + "pem 3.0.3", + "ring 0.16.20", + "time", + "yasna", + "zeroize", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom 0.2.11", + "libredox", + "thiserror", +] + +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rend" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.11.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" +dependencies = [ + "base64 0.21.5", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom 0.2.11", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "rkyv" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "sha2 0.10.8", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rust_decimal" +version = "1.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" +dependencies = [ + "arrayvec 0.7.4", + "borsh", + "bytes", + "num-traits", + "rand", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring 0.17.7", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.7", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "scale-info" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +dependencies = [ + "cfg-if", + "derive_more 0.99.17", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "scoped_threadpool" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.7", + "untrusted 0.9.0", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_cbor" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" +dependencies = [ + "half", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_tokenstream" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "797ba1d80299b264f3aac68ab5d12e5825a561749db4df7cd7c8083900c5d4e9" +dependencies = [ + "proc-macro2", + "serde", + "syn 1.0.109", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.4", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + +[[package]] +name = "slog" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" +dependencies = [ + "erased-serde", +] + +[[package]] +name = "slog-async" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c8038f898a2c79507940990f05386455b3a317d8f18d4caea7cbc3d5096b84" +dependencies = [ + "crossbeam-channel", + "slog", + "take_mut", + "thread_local", +] + +[[package]] +name = "slog-json" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1e53f61af1e3c8b852eef0a9dee29008f55d6dd63794f3f12cef786cf0f219" +dependencies = [ + "erased-serde", + "serde", + "serde_json", + "slog", + "time", +] + +[[package]] +name = "slog-scope" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f95a4b4c3274cd2869549da82b57ccc930859bdbf5bcea0424bc5f140b3c786" +dependencies = [ + "arc-swap", + "lazy_static", + "slog", +] + +[[package]] +name = "slog-term" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d29185c55b7b258b4f120eab00f48557d4d9bc814f41713f449d35b0f8977c" +dependencies = [ + "atty", + "slog", + "term", + "thread_local", + "time", +] + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sptr" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.1", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.41", +] + +[[package]] +name = "stubborn-io" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6363c4322e86e40291f94cf2f62cd8454ffd7abec426f63f11a6945f80718b43" +dependencies = [ + "log", + "rand", + "tokio", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" + +[[package]] +name = "tarpc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f07cb5fb67b0a90ea954b5ffd2fac9944ffef5937c801b987d3f8913f0c37348" +dependencies = [ + "anyhow", + "fnv", + "futures", + "humantime", + "opentelemetry", + "pin-project", + "rand", + "serde", + "static_assertions", + "tarpc-plugins", + "thiserror", + "tokio", + "tokio-serde", + "tokio-util", + "tracing", + "tracing-opentelemetry", +] + +[[package]] +name = "tarpc-plugins" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.4.1", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "thiserror" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "thousands" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "libc", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tokio-metrics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eace09241d62c98b7eeb1107d4c5c64ca3bd7da92e8c218c153ab3a78f9be112" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + +[[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-serde" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466" +dependencies = [ + "bincode", + "bytes", + "educe", + "futures-core", + "futures-sink", + "pin-project", + "serde", + "serde_json", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "slab", + "tokio", + "tracing", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.5", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" +dependencies = [ + "once_cell", + "opentelemetry", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "sharded-slab", + "thread_local", + "tracing-core", +] + +[[package]] +name = "tree-deserializer" +version = "0.8.0" +source = "git+https://github.com/dfinity/ic?rev=release-2023-09-27_23-01#ca5e5052886de781021506814d2c6502e375da48" +dependencies = [ + "ic-crypto-tree-hash", + "leb128", + "serde", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom 0.2.11", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "git+https://github.com/rvanasa/wasm-bindgen?rev=62965b0749ca68237e2ab3da487c141a5b3dbd2d#62965b0749ca68237e2ab3da487c141a5b3dbd2d" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.88" +source = "git+https://github.com/rvanasa/wasm-bindgen?rev=62965b0749ca68237e2ab3da487c141a5b3dbd2d#62965b0749ca68237e2ab3da487c141a5b3dbd2d" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.88" +source = "git+https://github.com/rvanasa/wasm-bindgen?rev=62965b0749ca68237e2ab3da487c141a5b3dbd2d#62965b0749ca68237e2ab3da487c141a5b3dbd2d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.88" +source = "git+https://github.com/rvanasa/wasm-bindgen?rev=62965b0749ca68237e2ab3da487c141a5b3dbd2d#62965b0749ca68237e2ab3da487c141a5b3dbd2d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.88" +source = "git+https://github.com/rvanasa/wasm-bindgen?rev=62965b0749ca68237e2ab3da487c141a5b3dbd2d#62965b0749ca68237e2ab3da487c141a5b3dbd2d" + +[[package]] +name = "wasm-encoder" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmparser" +version = "0.107.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29e3ac9b780c7dda0cac7a52a5d6d2d6707cc6e3451c9db209b6c758f40d7acb" +dependencies = [ + "indexmap 1.9.3", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.109.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf9564f29de2890ee34406af52d2a92dec6ef044c8ddfc5add5db8dcfd36e6c" +dependencies = [ + "indexmap 2.1.0", + "semver", +] + +[[package]] +name = "wasmtime" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028253baf4df6e0823481845a380117de2b7f42166261551db7d097d60cfc685" +dependencies = [ + "anyhow", + "bincode", + "bumpalo", + "cfg-if", + "fxprof-processed-profile", + "indexmap 1.9.3", + "libc", + "log", + "object 0.30.4", + "once_cell", + "paste", + "psm", + "rayon", + "serde", + "serde_json", + "target-lexicon", + "wasmparser 0.107.0", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-runtime", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e76c6e968fb3df273a8140bb9e02693b17da1f53a3bbafa0a5811e8ef1031cd8" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-cranelift" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "696333ffdbd9fabb486d8a5ee82c75fcd22d199446d3df04935a286fcbb40100" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-control", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.27.3", + "log", + "object 0.30.4", + "target-lexicon", + "thiserror", + "wasmparser 0.107.0", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434899162f65339ae7710f6fba91083b86e707cb618a8f4e8b037b8d46223d56" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-control", + "cranelift-native", + "gimli 0.27.3", + "object 0.30.4", + "target-lexicon", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1189b2fa0e7fbf71a06c7c909ae7f8f0085f8f4e4365926d6ff1052e024effe9" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli 0.27.3", + "indexmap 1.9.3", + "log", + "object 0.30.4", + "serde", + "target-lexicon", + "thiserror", + "wasmparser 0.107.0", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-jit" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b904e4920c5725dae5d2445c5923092f1d0dead3a521bd7f4218d7a9496842" +dependencies = [ + "addr2line 0.19.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.27.3", + "log", + "object 0.30.4", + "rustc-demangle", + "rustix 0.37.27", + "serde", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7228ed7aaedec75d6bd298f857e42f4626cffdb7b577c018eb2075c65d44dcf" +dependencies = [ + "once_cell", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "517750d84b6ebdb2c32226cee412c7e6aa48e4cebbb259d9a227b4317426adc6" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89ef7f9d70f30fc5dfea15b61b65b81363bf8b3881ab76de3a7b24905c4e83a" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "mach", + "memfd", + "memoffset 0.8.0", + "paste", + "rand", + "rustix 0.37.27", + "sptr", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-jit-debug", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-types" +version = "11.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac19aadf941ad333cbb0307121482700d925a99624d4110859d69b7f658b69d" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser 0.107.0", +] + +[[package]] +name = "wast" +version = "69.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ee37317321afde358e4d7593745942c48d6d17e0e6e943704de9bbee121e7a" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder 0.38.1", +] + +[[package]] +name = "wat" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeb338ee8dee4d4cd05e6426683f21c5087dc7cfc8903e839ccf48d43332da3c" +dependencies = [ + "wast", +] + +[[package]] +name = "web-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.28", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wsl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dab7ac864710bdea6594becbea5b5050333cf34fefb0dc319567eb347950d4" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "ring 0.16.20", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "xz2" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +dependencies = [ + "lzma-sys", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "zerocopy" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] From e5a9a45c996fbfcfac8a393eebd6b5f9b6eea98f Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 19 Dec 2023 10:57:54 -0700 Subject: [PATCH 15/20] Rename to 'RpcSource' and 'JsonRpcSource' --- src/accounting.rs | 12 ++++++------ src/candid_rpc.rs | 8 ++++---- src/http.rs | 6 +++--- src/main.rs | 16 ++++++++-------- src/types.rs | 20 ++++++++++---------- tests/tests.rs | 48 +++++++++++++++++++++++------------------------ 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/src/accounting.rs b/src/accounting.rs index 73c13143..2bd093a0 100644 --- a/src/accounting.rs +++ b/src/accounting.rs @@ -3,7 +3,7 @@ use cketh_common::eth_rpc_client::providers::RpcApi; use crate::*; pub fn get_request_cost( - source: &ResolvedSource, + source: &ResolvedJsonRpcSource, json_rpc_payload: &str, max_response_bytes: u64, ) -> u128 { @@ -13,16 +13,16 @@ pub fn get_request_cost( } pub fn get_request_costs( - source: &ResolvedSource, + source: &ResolvedJsonRpcSource, json_rpc_payload: &str, max_response_bytes: u64, ) -> (u128, u128) { match source { - ResolvedSource::Api(api) => ( + ResolvedJsonRpcSource::Api(api) => ( get_http_request_cost(api, json_rpc_payload, max_response_bytes), 0, ), - ResolvedSource::Provider(p) => ( + ResolvedJsonRpcSource::Provider(p) => ( get_http_request_cost(&p.api(), json_rpc_payload, max_response_bytes), get_provider_cost(p, json_rpc_payload), ), @@ -63,7 +63,7 @@ fn test_request_cost() { let url = "https://cloudflare-eth.com"; let payload = "{\"jsonrpc\":\"2.0\",\"method\":\"eth_gasPrice\",\"params\":[],\"id\":1}"; let base_cost = get_request_cost( - &ResolvedSource::Api(RpcApi { + &ResolvedJsonRpcSource::Api(RpcApi { url: url.to_string(), headers: vec![], }), @@ -72,7 +72,7 @@ fn test_request_cost() { ); let s10 = "0123456789"; let base_cost_s10 = get_request_cost( - &ResolvedSource::Api(RpcApi { + &ResolvedJsonRpcSource::Api(RpcApi { url: url.to_string(), headers: vec![], }), diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 1dd063d8..55df1c48 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -92,12 +92,12 @@ fn check_services(services: Option>) -> RpcResult>> { } } -fn get_rpc_client(source: CandidRpcSource) -> RpcResult> { +fn get_rpc_client(source: RpcSource) -> RpcResult> { if !is_rpc_allowed(&ic_cdk::caller()) { return Err(ProviderError::NoPermission.into()); } Ok(match source { - CandidRpcSource::EthMainnet(services) => CkEthRpcClient::new( + RpcSource::EthMainnet(services) => CkEthRpcClient::new( EthereumNetwork::Mainnet, Some( check_services(services)? @@ -107,7 +107,7 @@ fn get_rpc_client(source: CandidRpcSource) -> RpcResult CkEthRpcClient::new( + RpcSource::EthSepolia(services) => CkEthRpcClient::new( EthereumNetwork::Sepolia, Some( check_services(services)? @@ -137,7 +137,7 @@ pub struct CandidRpcClient { } impl CandidRpcClient { - pub fn from_source(source: CandidRpcSource) -> RpcResult { + pub fn from_source(source: RpcSource) -> RpcResult { Ok(Self { client: get_rpc_client(source)?, }) diff --git a/src/http.rs b/src/http.rs index 39c4f3dc..24c91135 100644 --- a/src/http.rs +++ b/src/http.rs @@ -10,7 +10,7 @@ use crate::*; pub async fn do_http_request( caller: Principal, - source: ResolvedSource, + source: ResolvedJsonRpcSource, json_rpc_payload: &str, max_response_bytes: u64, ) -> Result { @@ -21,8 +21,8 @@ pub async fn do_http_request( } let cost = get_request_cost(&source, json_rpc_payload, max_response_bytes); let (api, provider) = match source { - ResolvedSource::Api(api) => (api, None), - ResolvedSource::Provider(provider) => (provider.api(), Some(provider)), + ResolvedJsonRpcSource::Api(api) => (api, None), + ResolvedJsonRpcSource::Provider(provider) => (provider.api(), Some(provider)), }; let parsed_url = match url::Url::parse(&api.url) { Ok(url) => url, diff --git a/src/main.rs b/src/main.rs index 859caef1..74cc6f56 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,7 @@ use evm_rpc::*; #[update(name = "eth_getLogs")] #[candid_method(rename = "eth_getLogs")] pub async fn eth_get_logs( - source: CandidRpcSource, + source: RpcSource, args: candid_types::GetLogsArgs, ) -> MultiRpcResult> { match CandidRpcClient::from_source(source) { @@ -28,7 +28,7 @@ pub async fn eth_get_logs( #[update(name = "eth_getBlockByNumber")] #[candid_method(rename = "eth_getBlockByNumber")] pub async fn eth_get_block_by_number( - source: CandidRpcSource, + source: RpcSource, block: candid_types::BlockTag, ) -> MultiRpcResult { match CandidRpcClient::from_source(source) { @@ -40,7 +40,7 @@ pub async fn eth_get_block_by_number( #[update(name = "eth_getTransactionReceipt")] #[candid_method(rename = "eth_getTransactionReceipt")] pub async fn eth_get_transaction_receipt( - source: CandidRpcSource, + source: RpcSource, hash: String, ) -> MultiRpcResult> { match CandidRpcClient::from_source(source) { @@ -52,7 +52,7 @@ pub async fn eth_get_transaction_receipt( #[update(name = "eth_getTransactionCount")] #[candid_method(rename = "eth_getTransactionCount")] pub async fn eth_get_transaction_count( - source: CandidRpcSource, + source: RpcSource, args: candid_types::GetTransactionCountArgs, ) -> MultiRpcResult { match CandidRpcClient::from_source(source) { @@ -64,7 +64,7 @@ pub async fn eth_get_transaction_count( #[update(name = "eth_feeHistory")] #[candid_method(rename = "eth_feeHistory")] pub async fn eth_fee_history( - source: CandidRpcSource, + source: RpcSource, args: candid_types::FeeHistoryArgs, ) -> MultiRpcResult> { match CandidRpcClient::from_source(source) { @@ -76,7 +76,7 @@ pub async fn eth_fee_history( #[update(name = "eth_sendRawTransaction")] #[candid_method(rename = "eth_sendRawTransaction")] pub async fn eth_send_raw_transaction( - source: CandidRpcSource, + source: RpcSource, raw_signed_transaction_hex: String, ) -> MultiRpcResult { match CandidRpcClient::from_source(source) { @@ -102,7 +102,7 @@ pub fn verify_message_signature(signed_message: SignedMessage) -> bool { #[update] #[candid_method] async fn request( - source: Source, + source: JsonRpcSource, json_rpc_payload: String, max_response_bytes: u64, ) -> Result { @@ -119,7 +119,7 @@ async fn request( #[query(name = "requestCost")] #[candid_method(query, rename = "requestCost")] fn request_cost( - source: Source, + source: JsonRpcSource, json_rpc_payload: String, max_response_bytes: u64, ) -> Result { diff --git a/src/types.rs b/src/types.rs index 56d50bd0..ba4f114c 100644 --- a/src/types.rs +++ b/src/types.rs @@ -16,7 +16,7 @@ use crate::constants::STRING_STORABLE_MAX_SIZE; use crate::{AUTH_SET_STORABLE_MAX_SIZE, PROVIDERS}; #[derive(Clone, Debug, CandidType, Deserialize)] -pub enum Source { +pub enum JsonRpcSource { Chain(u64), Provider(u64), Service { @@ -30,14 +30,14 @@ pub enum Source { }, } -impl Source { - pub fn resolve(self) -> Result { +impl JsonRpcSource { + pub fn resolve(self) -> Result { Ok(match self { - Source::Custom { url, headers } => ResolvedSource::Api(RpcApi { + JsonRpcSource::Custom { url, headers } => ResolvedJsonRpcSource::Api(RpcApi { url, headers: headers.unwrap_or_default(), }), - Source::Provider(id) => ResolvedSource::Provider({ + JsonRpcSource::Provider(id) => ResolvedJsonRpcSource::Provider({ PROVIDERS.with(|providers| { providers .borrow() @@ -45,7 +45,7 @@ impl Source { .ok_or(ProviderError::ProviderNotFound) })? }), - Source::Chain(id) => ResolvedSource::Provider(PROVIDERS.with(|providers| { + JsonRpcSource::Chain(id) => ResolvedJsonRpcSource::Provider(PROVIDERS.with(|providers| { let providers = providers.borrow(); Ok(providers .iter() @@ -54,8 +54,8 @@ impl Source { .ok_or(ProviderError::ProviderNotFound)? .1) })?), - Source::Service { hostname, chain_id } => { - ResolvedSource::Provider(PROVIDERS.with(|providers| { + JsonRpcSource::Service { hostname, chain_id } => { + ResolvedJsonRpcSource::Provider(PROVIDERS.with(|providers| { let matches_provider = |p: &Provider| { p.hostname == hostname && match chain_id { @@ -76,7 +76,7 @@ impl Source { } } -pub enum ResolvedSource { +pub enum ResolvedJsonRpcSource { Api(RpcApi), Provider(Provider), } @@ -394,7 +394,7 @@ impl From> for MultiRpcResult { } #[derive(Clone, Debug, CandidType, Deserialize)] -pub enum CandidRpcSource { +pub enum RpcSource { EthMainnet(Option>), EthSepolia(Option>), } diff --git a/tests/tests.rs b/tests/tests.rs index b2b68043..f5a559f9 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -190,7 +190,7 @@ impl EvmRpcSetup { pub fn request_cost( &self, - source: Source, + source: JsonRpcSource, json_rpc_payload: &str, max_response_bytes: u64, ) -> Nat { @@ -202,7 +202,7 @@ impl EvmRpcSetup { pub fn request( &self, - source: Source, + source: JsonRpcSource, json_rpc_payload: &str, max_response_bytes: u64, ) -> CallFlow> { @@ -214,7 +214,7 @@ impl EvmRpcSetup { pub fn eth_get_logs( &self, - source: CandidRpcSource, + source: RpcSource, args: candid_types::GetLogsArgs, ) -> CallFlow>> { self.call_update("eth_getLogs", Encode!(&source, &args).unwrap()) @@ -222,7 +222,7 @@ impl EvmRpcSetup { pub fn eth_get_block_by_number( &self, - source: CandidRpcSource, + source: RpcSource, block: candid_types::BlockTag, ) -> CallFlow> { self.call_update("eth_getBlockByNumber", Encode!(&source, &block).unwrap()) @@ -230,7 +230,7 @@ impl EvmRpcSetup { pub fn eth_get_transaction_receipt( &self, - source: CandidRpcSource, + source: RpcSource, address: &str, ) -> CallFlow>> { self.call_update( @@ -241,7 +241,7 @@ impl EvmRpcSetup { pub fn eth_get_transaction_count( &self, - source: CandidRpcSource, + source: RpcSource, args: candid_types::GetTransactionCountArgs, ) -> CallFlow> { self.call_update("eth_getTransactionCount", Encode!(&source, &args).unwrap()) @@ -249,7 +249,7 @@ impl EvmRpcSetup { pub fn eth_fee_history( &self, - source: CandidRpcSource, + source: RpcSource, args: candid_types::FeeHistoryArgs, ) -> CallFlow>> { self.call_update("eth_feeHistory", Encode!(&source, &args).unwrap()) @@ -257,7 +257,7 @@ impl EvmRpcSetup { pub fn eth_send_raw_transaction( &self, - source: CandidRpcSource, + source: RpcSource, signed_raw_transaction_hex: String, ) -> CallFlow> { self.call_update( @@ -490,7 +490,7 @@ fn mock_request(builder_fn: impl Fn(MockOutcallBuilder) -> MockOutcallBuilder) { assert_matches!( setup .request( - Source::Custom { + JsonRpcSource::Custom { url: MOCK_REQUEST_URL.to_string(), headers: Some(vec![HttpHeader { name: "Custom".to_string(), @@ -589,7 +589,7 @@ fn should_canonicalize_json_response() { .map(|response| { setup .request( - Source::Custom { + JsonRpcSource::Custom { url: MOCK_REQUEST_URL.to_string(), headers: None, }, @@ -656,7 +656,7 @@ fn eth_get_logs_should_succeed() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_get_logs( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), candid_types::GetLogsArgs { addresses: vec!["0xdAC17F958D2ee523a2206206994597C13D831ec7".to_string()], from_block: None, @@ -709,7 +709,7 @@ fn eth_get_block_by_number_should_succeed() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_get_block_by_number( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), candid_types::BlockTag::Latest, ) .mock_http(MockOutcallBuilder::new(200, r#"{"jsonrpc":"2.0","result":{"baseFeePerGas":"0xd7232aa34","difficulty":"0x0","extraData":"0x546974616e2028746974616e6275696c6465722e78797a29","gasLimit":"0x1c9c380","gasUsed":"0xa768c4","hash":"0xc3674be7b9d95580d7f23c03d32e946f2b453679ee6505e3a778f003c5a3cfae","logsBloom":"0x3e6b8420e1a13038902c24d6c2a9720a7ad4860cdc870cd5c0490011e43631134f608935bd83171247407da2c15d85014f9984608c03684c74aad48b20bc24022134cdca5f2e9d2dee3b502a8ccd39eff8040b1d96601c460e119c408c620b44fa14053013220847045556ea70484e67ec012c322830cf56ef75e09bd0db28a00f238adfa587c9f80d7e30d3aba2863e63a5cad78954555966b1055a4936643366a0bb0b1bac68d0e6267fc5bf8304d404b0c69041125219aa70562e6a5a6362331a414a96d0716990a10161b87dd9568046a742d4280014975e232b6001a0360970e569d54404b27807d7a44c949ac507879d9d41ec8842122da6772101bc8b","miner":"0x388c818ca8b9251b393131c08a736a67ccb19297","mixHash":"0x516a58424d4883a3614da00a9c6f18cd5cd54335a08388229a993a8ecf05042f","nonce":"0x0000000000000000","number":"0x11db01d","parentHash":"0x43325027f6adf9befb223f8ae80db057daddcd7b48e41f60cd94bfa8877181ae","receiptsRoot":"0x66934c3fd9c547036fe0e56ad01bc43c84b170be7c4030a86805ddcdab149929","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0xcd35","stateRoot":"0x13552447dd62f11ad885f21a583c4fa34144efe923c7e35fb018d6710f06b2b6","timestamp":"0x656f96f3","totalDifficulty":"0xc70d815d562d3cfa955","withdrawalsRoot":"0xecae44b2c53871003c5cc75285995764034c9b5978a904229d36c1280b141d48"},"id":0}"#)) @@ -749,7 +749,7 @@ fn eth_get_transaction_receipt_should_succeed() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new(200, r#"{"jsonrpc":"2.0","id":2,"result":{"blockHash":"0x5115c07eb1f20a9d6410db0916ed3df626cfdab161d3904f45c8c8b65c90d0be","blockNumber":"0x11a85ab","contractAddress":null,"cumulativeGasUsed":"0xf02aed","effectiveGasPrice":"0x63c00ee76","from":"0x0aa8ebb6ad5a8e499e550ae2c461197624c6e667","gasUsed":"0x7d89","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x356cfd6e6d0000400000003900b415f80669009e","transactionHash":"0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f","transactionIndex":"0xd9","type":"0x2"}}"#)) @@ -781,7 +781,7 @@ fn eth_get_transaction_count_should_succeed() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_get_transaction_count( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), candid_types::GetTransactionCountArgs { address: "0xdAC17F958D2ee523a2206206994597C13D831ec7".to_string(), block: candid_types::BlockTag::Latest, @@ -802,7 +802,7 @@ fn eth_fee_history_should_succeed() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_fee_history( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), candid_types::FeeHistoryArgs { block_count: 3, newest_block: candid_types::BlockTag::Latest, @@ -835,7 +835,7 @@ fn eth_send_raw_transaction_should_succeed() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_send_raw_transaction( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83".to_string(), ) .mock_http(MockOutcallBuilder::new( @@ -853,7 +853,7 @@ fn candid_rpc_should_allow_unexpected_response_fields() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let response = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new(200, r#"{"jsonrpc":"2.0","id":0,"result":{"unexpectedKey":"unexpectedValue","blockHash":"0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35","blockNumber":"0x5bad55","contractAddress":null,"cumulativeGasUsed":"0xb90b0","effectiveGasPrice":"0x746a528800","from":"0x398137383b3d25c92898c656696e41950e47316b","gasUsed":"0x1383f","logs":[],"logsBloom":"0x0","status":"0x1","to":"0x06012c8cf97bead5deae237070f9587f8e7a266d","transactionHash":"0xbb3a336e3f823ec18197f1e13ee875700f08f03e2cab75f0d0b118dabb44cba0","transactionIndex":"0x11","type":"0x0"}}"#)) @@ -872,7 +872,7 @@ fn candid_rpc_should_err_without_cycles() { let setup = EvmRpcSetup::new(); let result = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .wait() @@ -892,7 +892,7 @@ fn candid_rpc_should_err_during_restricted_access() { setup.clone().as_controller().set_open_rpc_access(false); let result = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .wait() @@ -908,7 +908,7 @@ fn candid_rpc_should_err_when_service_unavailable() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let result = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new(503, "Service unavailable")) @@ -931,7 +931,7 @@ fn candid_rpc_should_recognize_json_error() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let result = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(None), + RpcSource::EthMainnet(None), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .mock_http(MockOutcallBuilder::new( @@ -954,7 +954,7 @@ fn candid_rpc_should_reject_empty_service_list() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let result = setup .eth_get_transaction_receipt( - CandidRpcSource::EthMainnet(Some(vec![])), + RpcSource::EthMainnet(Some(vec![])), "0xdd5d4b18923d7aae953c7996d791118102e889bea37b48a651157a4890e4746f", ) .wait() @@ -970,7 +970,7 @@ fn candid_rpc_should_represent_inconsistent_results() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let results = setup .eth_send_raw_transaction( - CandidRpcSource::EthMainnet(Some(vec![EthMainnetService::Ankr, EthMainnetService::Cloudflare])), + RpcSource::EthMainnet(Some(vec![EthMainnetService::Ankr, EthMainnetService::Cloudflare])), "0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83".to_string(), ) .mock_http_once(MockOutcallBuilder::new( @@ -1003,7 +1003,7 @@ fn candid_rpc_should_handle_already_known() { let setup = EvmRpcSetup::new().authorize_caller(Auth::FreeRpc); let result = setup .eth_send_raw_transaction( - CandidRpcSource::EthMainnet(Some(vec![EthMainnetService::Ankr, EthMainnetService::Cloudflare])), + RpcSource::EthMainnet(Some(vec![EthMainnetService::Ankr, EthMainnetService::Cloudflare])), "0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83".to_string(), ) .mock_http_once(MockOutcallBuilder::new( From 62905093d54119ab371febdb7ba022373ac90e31 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 19 Dec 2023 11:43:49 -0700 Subject: [PATCH 16/20] Bump ckETH branch --- Cargo.lock | 36 ++++++++++++++++++------------------ Cargo.toml | 2 +- candid/evm_rpc.did | 37 +++++++++++++++++++------------------ src/candid_rpc.rs | 2 +- 4 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 86898174..400340dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2358,7 +2358,7 @@ dependencies = [ [[package]] name = "ic-base-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "base32", "byte-unit", @@ -2401,7 +2401,7 @@ dependencies = [ [[package]] name = "ic-btc-types-internal" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "candid", "ic-btc-interface", @@ -2519,7 +2519,7 @@ dependencies = [ [[package]] name = "ic-canisters-http-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "candid", "serde", @@ -2651,7 +2651,7 @@ dependencies = [ [[package]] name = "ic-cketh-minter" version = "0.1.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "askama", "async-trait", @@ -2786,7 +2786,7 @@ dependencies = [ [[package]] name = "ic-crypto-ecdsa-secp256k1" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "k256", "lazy_static", @@ -3105,7 +3105,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-sha2" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "sha2 0.10.8", ] @@ -3271,7 +3271,7 @@ dependencies = [ [[package]] name = "ic-crypto-sha2" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "ic-crypto-internal-sha2 0.9.0", ] @@ -3279,7 +3279,7 @@ dependencies = [ [[package]] name = "ic-crypto-sha3" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "sha3 0.9.1", ] @@ -3493,7 +3493,7 @@ dependencies = [ [[package]] name = "ic-error-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "ic-utils 0.9.0", "serde", @@ -3596,7 +3596,7 @@ dependencies = [ [[package]] name = "ic-ic00-types" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "candid", "ic-base-types 0.9.0", @@ -3886,7 +3886,7 @@ dependencies = [ [[package]] name = "ic-protobuf" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "bincode", "candid", @@ -4208,7 +4208,7 @@ dependencies = [ [[package]] name = "ic-sys" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "hex", "ic-crypto-sha2 0.9.0", @@ -4350,7 +4350,7 @@ dependencies = [ [[package]] name = "ic-utils" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "cvt", "hex", @@ -4367,7 +4367,7 @@ dependencies = [ [[package]] name = "ic-utils-ensure" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" [[package]] name = "ic-utils-lru-cache" @@ -4445,7 +4445,7 @@ dependencies = [ [[package]] name = "icrc-ledger-client" version = "0.1.2" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "async-trait", "candid", @@ -4456,7 +4456,7 @@ dependencies = [ [[package]] name = "icrc-ledger-client-cdk" version = "0.1.2" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "async-trait", "candid", @@ -4482,7 +4482,7 @@ dependencies = [ [[package]] name = "icrc-ledger-types" version = "0.1.4" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "base32", "candid", @@ -5568,7 +5568,7 @@ dependencies = [ [[package]] name = "phantom_newtype" version = "0.9.0" -source = "git+https://github.com/rvanasa/ic?rev=13fe6f9f7b19159a9627654515ff0cee26e3098a#13fe6f9f7b19159a9627654515ff0cee26e3098a" +source = "git+https://github.com/rvanasa/ic?rev=d8ede1d141c22a48703fa35abb567973d8fbc2b0#d8ede1d141c22a48703fa35abb567973d8fbc2b0" dependencies = [ "candid", "serde", diff --git a/Cargo.toml b/Cargo.toml index d0d88360..047933f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ ic-certified-map = { workspace = true } ic-cdk = { workspace = true } ic-cdk-macros = { workspace = true } ic-eth = { workspace = true } -cketh-common = { git = "https://github.com/rvanasa/ic", rev = "13fe6f9f7b19159a9627654515ff0cee26e3098a", package = "ic-cketh-minter" } +cketh-common = { git = "https://github.com/rvanasa/ic", rev = "d8ede1d141c22a48703fa35abb567973d8fbc2b0", package = "ic-cketh-minter" } num = "0.4" num-traits = "0.2" num-derive = "0.4" diff --git a/candid/evm_rpc.did b/candid/evm_rpc.did index 371c52e8..b12a6a11 100644 --- a/candid/evm_rpc.did +++ b/candid/evm_rpc.did @@ -30,10 +30,6 @@ type BlockTag = variant { Number : nat; Pending; }; -type CandidRpcSource = variant { - EthSepolia : opt vec EthSepoliaService; - EthMainnet : opt vec EthMainnetService; -}; type EthMainnetService = variant { BlockPi; Cloudflare; PublicNode; Ankr }; type EthSepoliaService = variant { BlockPi; PublicNode; Ankr }; type FeeHistory = record { @@ -64,6 +60,12 @@ type HttpOutcallError = variant { }; }; type JsonRpcError = record { code : int64; message : text }; +type JsonRpcSource = variant { + Custom : record { url : text; headers : opt vec HttpHeader }; + Service : record { hostname : text; chainId : opt nat64 }; + Chain : nat64; + Provider : nat64; +}; type LogEntry = record { transactionHash : opt text; blockNumber : opt nat; @@ -102,6 +104,7 @@ type MultiRpcResult_5 = variant { }; type ProviderError = variant { TooFewCycles : record { expected : nat; received : nat }; + MissingRequiredProvider; ProviderNotFound; NoPermission; }; @@ -149,6 +152,10 @@ type RpcService = variant { EthSepolia : EthSepoliaService; EthMainnet : EthMainnetService; }; +type RpcSource = variant { + EthSepolia : opt vec EthSepoliaService; + EthMainnet : opt vec EthMainnetService; +}; type SendRawTransactionResult = variant { Ok; NonceTooLow; @@ -160,12 +167,6 @@ type SignedMessage = record { message : Message; address : text; }; -type Source = variant { - Custom : record { url : text; headers : opt vec HttpHeader }; - Service : record { hostname : text; chainId : opt nat64 }; - Chain : nat64; - Provider : nat64; -}; type TransactionReceipt = record { to : text; status : nat; @@ -200,22 +201,22 @@ type ValidationError = variant { service : { authorize : (principal, Auth) -> (); deauthorize : (principal, Auth) -> (); - eth_feeHistory : (CandidRpcSource, FeeHistoryArgs) -> (MultiRpcResult); - eth_getBlockByNumber : (CandidRpcSource, BlockTag) -> (MultiRpcResult_1); - eth_getLogs : (CandidRpcSource, GetLogsArgs) -> (MultiRpcResult_2); - eth_getTransactionCount : (CandidRpcSource, GetTransactionCountArgs) -> ( + eth_feeHistory : (RpcSource, FeeHistoryArgs) -> (MultiRpcResult); + eth_getBlockByNumber : (RpcSource, BlockTag) -> (MultiRpcResult_1); + eth_getLogs : (RpcSource, GetLogsArgs) -> (MultiRpcResult_2); + eth_getTransactionCount : (RpcSource, GetTransactionCountArgs) -> ( MultiRpcResult_3, ); - eth_getTransactionReceipt : (CandidRpcSource, text) -> (MultiRpcResult_4); - eth_sendRawTransaction : (CandidRpcSource, text) -> (MultiRpcResult_5); + eth_getTransactionReceipt : (RpcSource, text) -> (MultiRpcResult_4); + eth_sendRawTransaction : (RpcSource, text) -> (MultiRpcResult_5); getAccumulatedCycleCount : (nat64) -> (nat) query; getAuthorized : (Auth) -> (vec text) query; getNodesInSubnet : () -> (nat32) query; getOpenRpcAccess : () -> (bool) query; getProviders : () -> (vec ProviderView) query; registerProvider : (RegisterProviderArgs) -> (nat64); - request : (Source, text, nat64) -> (Result_6); - requestCost : (Source, text, nat64) -> (Result_7) query; + request : (JsonRpcSource, text, nat64) -> (Result_6); + requestCost : (JsonRpcSource, text, nat64) -> (Result_7) query; setNodesInSubnet : (nat32) -> (); setOpenRpcAccess : (bool) -> (); unregisterProvider : (nat64) -> (bool); diff --git a/src/candid_rpc.rs b/src/candid_rpc.rs index 55df1c48..28dfbba7 100644 --- a/src/candid_rpc.rs +++ b/src/candid_rpc.rs @@ -50,7 +50,7 @@ impl RpcTransport for CanisterTransport { }; Ok( find_provider(|p| p.chain_id == chain_id && p.hostname == hostname) - .ok_or(ProviderError::ProviderNotFound)? + .ok_or(ProviderError::MissingRequiredProvider)? .api(), ) } From ab4cf9da7da357cd85ce4cf3f958fa1e94e67be9 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 19 Dec 2023 11:50:49 -0700 Subject: [PATCH 17/20] Update Motoko E2E test --- lib/motoko/src/lib.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/motoko/src/lib.mo b/lib/motoko/src/lib.mo index 3cb5d704..7ebdce35 100644 --- a/lib/motoko/src/lib.mo +++ b/lib/motoko/src/lib.mo @@ -28,7 +28,7 @@ module { value : Text; }; - type ActorSource = EvmRpc.Source; + type ActorSource = EvmRpc.RpcSource; public type RpcError = EvmRpc.RpcError; public type JsonRpcError = EvmRpc.JsonRpcError; From 852552570c042820e3dd34eed3ab8a39ec835af9 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 19 Dec 2023 11:51:35 -0700 Subject: [PATCH 18/20] Fix --- lib/motoko/src/lib.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/motoko/src/lib.mo b/lib/motoko/src/lib.mo index 7ebdce35..750af460 100644 --- a/lib/motoko/src/lib.mo +++ b/lib/motoko/src/lib.mo @@ -28,7 +28,7 @@ module { value : Text; }; - type ActorSource = EvmRpc.RpcSource; + type ActorSource = EvmRpc.JsonRpcSource; public type RpcError = EvmRpc.RpcError; public type JsonRpcError = EvmRpc.JsonRpcError; From 802802bacf373a28a3955cd85e80b9b294f46b6d Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 19 Dec 2023 11:56:20 -0700 Subject: [PATCH 19/20] Update Rust E2E test --- e2e/rust/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/rust/src/main.rs b/e2e/rust/src/main.rs index 44da5103..cd1031ff 100644 --- a/e2e/rust/src/main.rs +++ b/e2e/rust/src/main.rs @@ -1,7 +1,7 @@ use candid::candid_method; use ic_cdk_macros::update; -use e2e::declarations::evm_rpc::{evm_rpc, ProviderError, RpcError, Source}; +use e2e::declarations::evm_rpc::{evm_rpc, ProviderError, RpcError, JsonRpcSource}; fn main() {} @@ -12,7 +12,7 @@ pub async fn test() { // Define request parameters let params = ( - &Source::Service { + &JsonRpcSource::Service { hostname: "cloudflare-eth.com".to_string(), chainId: Some(1), // Ethereum mainnet }, From e75e784688e9747e8b74ca04d0c37a3c75ee66f7 Mon Sep 17 00:00:00 2001 From: rvanasa Date: Tue, 19 Dec 2023 12:00:39 -0700 Subject: [PATCH 20/20] Reformat --- e2e/rust/src/main.rs | 2 +- src/types.rs | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/e2e/rust/src/main.rs b/e2e/rust/src/main.rs index cd1031ff..ded67116 100644 --- a/e2e/rust/src/main.rs +++ b/e2e/rust/src/main.rs @@ -1,7 +1,7 @@ use candid::candid_method; use ic_cdk_macros::update; -use e2e::declarations::evm_rpc::{evm_rpc, ProviderError, RpcError, JsonRpcSource}; +use e2e::declarations::evm_rpc::{evm_rpc, JsonRpcSource, ProviderError, RpcError}; fn main() {} diff --git a/src/types.rs b/src/types.rs index ba4f114c..b8e1355f 100644 --- a/src/types.rs +++ b/src/types.rs @@ -45,15 +45,17 @@ impl JsonRpcSource { .ok_or(ProviderError::ProviderNotFound) })? }), - JsonRpcSource::Chain(id) => ResolvedJsonRpcSource::Provider(PROVIDERS.with(|providers| { - let providers = providers.borrow(); - Ok(providers - .iter() - .find(|(_, p)| p.primary && p.chain_id == id) - .or_else(|| providers.iter().find(|(_, p)| p.chain_id == id)) - .ok_or(ProviderError::ProviderNotFound)? - .1) - })?), + JsonRpcSource::Chain(id) => { + ResolvedJsonRpcSource::Provider(PROVIDERS.with(|providers| { + let providers = providers.borrow(); + Ok(providers + .iter() + .find(|(_, p)| p.primary && p.chain_id == id) + .or_else(|| providers.iter().find(|(_, p)| p.chain_id == id)) + .ok_or(ProviderError::ProviderNotFound)? + .1) + })?) + } JsonRpcSource::Service { hostname, chain_id } => { ResolvedJsonRpcSource::Provider(PROVIDERS.with(|providers| { let matches_provider = |p: &Provider| {