From 2448585e2c6b6525f79fd51a757a0468b5509ec8 Mon Sep 17 00:00:00 2001 From: Mikers Date: Tue, 5 Nov 2024 04:13:46 -1000 Subject: [PATCH 01/16] fix: update deploy command for calibration net (#1184) --- scripts/deploy_subnet_under_calibration_net/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deploy_subnet_under_calibration_net/deploy.sh b/scripts/deploy_subnet_under_calibration_net/deploy.sh index 857c766db..a18663a63 100644 --- a/scripts/deploy_subnet_under_calibration_net/deploy.sh +++ b/scripts/deploy_subnet_under_calibration_net/deploy.sh @@ -153,7 +153,7 @@ cd ${IPC_FOLDER}/contracts npm install export RPC_URL=https://calibration.filfox.info/rpc/v1 export PRIVATE_KEY=$(cat ${IPC_CONFIG_FOLDER}/validator_0.sk) -deploy_contracts_output=$(make deploy-ipc NETWORK=calibrationnet) +deploy_contracts_output=$(make deploy-stack NETWORK=calibrationnet) parent_gateway_address=$(echo "$deploy_contracts_output" | grep '"Gateway"' | awk -F'"' '{print $4}') parent_registry_address=$(echo "$deploy_contracts_output" | grep '"SubnetRegistry"' | awk -F'"' '{print $4}') From a73bcf7e2a91bbd38993172311da45f75baca89e Mon Sep 17 00:00:00 2001 From: cryptoAtwill <108330426+cryptoAtwill@users.noreply.github.com> Date: Wed, 6 Nov 2024 00:30:02 +0800 Subject: [PATCH 02/16] fix: fix HumanReadable serialization error (#1189) Co-authored-by: cryptoAtwill --- ipc/api/src/lib.rs | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/ipc/api/src/lib.rs b/ipc/api/src/lib.rs index 1b61454de..dd9336935 100644 --- a/ipc/api/src/lib.rs +++ b/ipc/api/src/lib.rs @@ -96,7 +96,11 @@ impl serde_with::SerializeAs> for HumanReadable { where S: Serializer, { - hex::encode(source).serialize(serializer) + if serializer.is_human_readable() { + hex::encode(source).serialize(serializer) + } else { + source.serialize(serializer) + } } } @@ -114,3 +118,32 @@ impl<'de> serde_with::DeserializeAs<'de, Vec> for HumanReadable { } } } + +#[cfg(test)] +mod tests { + use crate::HumanReadable; + use serde::{Deserialize, Serialize}; + use serde_with::serde_as; + + #[test] + fn test_human_readable() { + #[serde_as] + #[derive(PartialEq, Eq, Debug, Clone, Serialize, Deserialize)] + struct T { + #[serde_as(as = "HumanReadable")] + bytes: Vec, + } + + let t = T { + bytes: vec![1, 2, 3, 4], + }; + + let serialized_t = serde_json::to_vec(&t).unwrap(); + let dserialized_t = serde_json::from_slice(&serialized_t).unwrap(); + assert_eq!(t, dserialized_t); + + let serialized_t = fvm_ipld_encoding::to_vec(&t).unwrap(); + let dserialized_t = fvm_ipld_encoding::from_slice(&serialized_t).unwrap(); + assert_eq!(t, dserialized_t); + } +} From c93fb758a306467ec05806f5667ce56118a78cc9 Mon Sep 17 00:00:00 2001 From: Alexei Samokvalov Date: Tue, 5 Nov 2024 17:57:30 +0100 Subject: [PATCH 03/16] feat: enable process metrics (#1180) Co-authored-by: Karel Moravec --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index f60fe2c45..966fd4c44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -129,7 +129,7 @@ num-traits = "0.2" num_enum = "0.7.2" paste = "1" pin-project = "1.1.2" -prometheus = "0.13" +prometheus = { version = "0.13", features = ["process"] } prometheus_exporter = "0.8" prost = { version = "0.11" } quickcheck = "1" From 1388cd2183f4606bee80ec894621aa6858725be8 Mon Sep 17 00:00:00 2001 From: Karel Moravec Date: Thu, 7 Nov 2024 11:04:21 +0100 Subject: [PATCH 04/16] fix: use eth_getTransactionCount(pending) to get nonce (#1194) --- Cargo.lock | 25 +++++++++++ ipc/provider/src/manager/evm/manager.rs | 55 +++++++++++++------------ 2 files changed, 54 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2fbe3e919..5bcddd643 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7482,6 +7482,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "procfs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" +dependencies = [ + "bitflags 2.6.0", + "hex", + "lazy_static", + "procfs-core", + "rustix 0.38.34", +] + +[[package]] +name = "procfs-core" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" +dependencies = [ + "bitflags 2.6.0", + "hex", +] + [[package]] name = "prometheus" version = "0.13.4" @@ -7491,8 +7514,10 @@ dependencies = [ "cfg-if", "fnv", "lazy_static", + "libc", "memchr", "parking_lot", + "procfs", "protobuf", "thiserror", ] diff --git a/ipc/provider/src/manager/evm/manager.rs b/ipc/provider/src/manager/evm/manager.rs index 2cd9efc43..ac9b0766f 100644 --- a/ipc/provider/src/manager/evm/manager.rs +++ b/ipc/provider/src/manager/evm/manager.rs @@ -289,8 +289,9 @@ impl SubnetManager for EthSubnetManager { signer.clone(), ); - let call = call_with_premium_estimation(signer, registry_contract.new_subnet_actor(params)) - .await?; + let call = + call_with_premium_and_pending_block(signer, registry_contract.new_subnet_actor(params)) + .await?; // TODO: Edit call to get estimate premium let pending_tx = call.send().await?; // We need the retry to parse the deployment event. At the time of this writing, it's a bug @@ -348,7 +349,7 @@ impl SubnetManager for EthSubnetManager { let mut txn = contract.join(ethers::types::Bytes::from(pub_key), U256::from(collateral)); txn = self.handle_txn_token(&subnet, txn, collateral, 0).await?; - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; // Use the pending state to get the nonce because there could have been a pre-fund. Best would be to use this for everything. let txn = txn.block(BlockId::Number(ethers::types::BlockNumber::Pending)); @@ -374,7 +375,7 @@ impl SubnetManager for EthSubnetManager { let mut txn = contract.pre_fund(U256::from(balance)); txn = self.handle_txn_token(&subnet, txn, 0, balance).await?; - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; txn.send().await?; Ok(()) @@ -398,7 +399,7 @@ impl SubnetManager for EthSubnetManager { let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_estimation(signer, contract.pre_release(amount.into())) + call_with_premium_and_pending_block(signer, contract.pre_release(amount.into())) .await? .send() .await? @@ -425,7 +426,7 @@ impl SubnetManager for EthSubnetManager { let mut txn = contract.stake(U256::from(collateral)); txn = self.handle_txn_token(&subnet, txn, collateral, 0).await?; - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; txn.send().await?.await?; @@ -452,7 +453,8 @@ impl SubnetManager for EthSubnetManager { let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - let txn = call_with_premium_estimation(signer, contract.unstake(collateral.into())).await?; + let txn = call_with_premium_and_pending_block(signer, contract.unstake(collateral.into())) + .await?; txn.send().await?.await?; Ok(()) @@ -466,7 +468,7 @@ impl SubnetManager for EthSubnetManager { let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_estimation(signer, contract.leave()) + call_with_premium_and_pending_block(signer, contract.leave()) .await? .send() .await? @@ -483,7 +485,7 @@ impl SubnetManager for EthSubnetManager { let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_estimation(signer, contract.kill()) + call_with_premium_and_pending_block(signer, contract.kill()) .await? .send() .await? @@ -524,7 +526,7 @@ impl SubnetManager for EthSubnetManager { let contract = subnet_actor_reward_facet::SubnetActorRewardFacet::new(address, signer.clone()); - call_with_premium_estimation(signer, contract.claim()) + call_with_premium_and_pending_block(signer, contract.claim()) .await? .send() .await? @@ -564,7 +566,7 @@ impl SubnetManager for EthSubnetManager { gateway_manager_facet::FvmAddress::try_from(to)?, ); txn.tx.set_value(value); - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -598,7 +600,7 @@ impl SubnetManager for EthSubnetManager { let token_contract = IERC20::new(token_address, signer.clone()); let txn = token_contract.approve(self.ipc_contract_info.gateway_addr, value); - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -630,7 +632,7 @@ impl SubnetManager for EthSubnetManager { gateway_manager_facet::FvmAddress::try_from(to)?, value, ); - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -660,7 +662,7 @@ impl SubnetManager for EthSubnetManager { ); let mut txn = gateway_contract.release(gateway_manager_facet::FvmAddress::try_from(to)?); txn.tx.set_value(value); - let txn = call_with_premium_estimation(signer, txn).await?; + let txn = call_with_premium_and_pending_block(signer, txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -695,7 +697,7 @@ impl SubnetManager for EthSubnetManager { let mut key = [0u8; 32]; key.copy_from_slice(&postbox_msg_key); - call_with_premium_estimation(signer, gateway_contract.propagate(key)) + call_with_premium_and_pending_block(signer, gateway_contract.propagate(key)) .await? .send() .await?; @@ -834,7 +836,7 @@ impl SubnetManager for EthSubnetManager { let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_estimation(signer, contract.add_bootstrap_node(endpoint)) + call_with_premium_and_pending_block(signer, contract.add_bootstrap_node(endpoint)) .await? .send() .await? @@ -911,7 +913,7 @@ impl SubnetManager for EthSubnetManager { tracing::debug!("from address: {:?}", from); let call = contract.set_federated_power(addresses, pubkeys, power_u256); - let txn = call_with_premium_estimation(signer, call).await?; + let txn = call_with_premium_and_pending_block(signer, call).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; block_number_from_receipt(receipt) @@ -1092,10 +1094,8 @@ impl EthSubnetManager { let wallet = LocalWallet::from_bytes(private_key.private_key())? .with_chain_id(self.ipc_contract_info.chain_id); - Ok(SignerMiddleware::new( - self.ipc_contract_info.provider.clone(), - wallet, - )) + let signer = SignerMiddleware::new(self.ipc_contract_info.provider.clone(), wallet); + Ok(signer) } pub fn from_subnet_with_wallet_store( @@ -1178,7 +1178,7 @@ impl BottomUpCheckpointRelayer for EthSubnetManager { signer.clone(), ); let call = contract.submit_checkpoint(checkpoint, signatories, signatures); - let call = call_with_premium_estimation(signer, call).await?; + let call = call_with_premium_and_pending_block(signer, call).await?; let pending_tx = call.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -1278,9 +1278,10 @@ impl BottomUpCheckpointRelayer for EthSubnetManager { } } -/// Receives an input `FunctionCall` and returns a new instance -/// after estimating an optimal `gas_premium` for the transaction -pub(crate) async fn call_with_premium_estimation( +/// Takes a `FunctionCall` input and returns a new instance with an estimated optimal `gas_premium`. +/// The function also uses the pending block number to help retrieve the latest nonce +/// via `get_transaction_count` with the `pending` parameter. +pub(crate) async fn call_with_premium_and_pending_block( signer: Arc, call: ethers_contract::FunctionCall, ) -> Result> @@ -1289,7 +1290,9 @@ where M: ethers::abi::Detokenize, { let (max_priority_fee_per_gas, _) = premium_estimation(signer).await?; - Ok(call.gas_price(max_priority_fee_per_gas)) + Ok(call + .gas_price(max_priority_fee_per_gas) + .block(ethers::types::BlockNumber::Pending)) } /// Returns an estimation of an optimal `gas_premium` and `gas_fee_cap` From 56318f39fec3202169dab6bce0b56cfa785dfa1f Mon Sep 17 00:00:00 2001 From: Karel Moravec Date: Thu, 7 Nov 2024 11:12:49 +0100 Subject: [PATCH 05/16] fix: docs for deploy command (#1191) --- contracts/README.md | 4 ++-- docs/ipc/deploying-hierarchy.md | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/contracts/README.md b/contracts/README.md index 1cf26f482..7fd69434a 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -31,7 +31,7 @@ and run `source .env` before running the deployment scripts. To deploy the IPC Solidity contracts in an FEVM network, you can directly run the following: ```bash -make deploy-ipc +make deploy-stack ``` The scripts run by `make` make use of hardhat under the hood. @@ -40,7 +40,7 @@ and perform the deployment according to the configuration in `hardhat.config.ts` To deploy the contracts in some other network configured in the Hardhat config you can run the following: ```bash -make deploy-ipc NETWORK= +make deploy-stack NETWORK= ``` # Upgrading IPC Solidity Contracts diff --git a/docs/ipc/deploying-hierarchy.md b/docs/ipc/deploying-hierarchy.md index b40c9f68e..9696220e4 100644 --- a/docs/ipc/deploying-hierarchy.md +++ b/docs/ipc/deploying-hierarchy.md @@ -4,15 +4,17 @@ We recommend that you connect to the existing contracts on CalibrationNet. Never ## Install prerequisites -* Install the basic requirements for IPC (see [README](../../README.md#Prerequisites)) +- Install the basic requirements for IPC (see [README](../../README.md#Prerequisites)) + +- Install Node.js [Ubuntu] ([details](https://github.com/nodesource/distributions)) -* Install Node.js [Ubuntu] ([details](https://github.com/nodesource/distributions)) ```bash curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install nodejs ``` -* Get the Solidity actors and install dependencies +- Get the Solidity actors and install dependencies + ```bash cd contracts npm install @@ -20,16 +22,16 @@ npm install ## Set up and fund an EVM account -* Connect Metamask to the parent network (for calibrationnet, use `https://api.calibration.node.glif.io/rpc/v1` as the RPC and `314159` as the chain id) +- Connect Metamask to the parent network (for calibrationnet, use `https://api.calibration.node.glif.io/rpc/v1` as the RPC and `314159` as the chain id) -* Create a new account (or use an existing one) - -* Export the corresponding private key according to [these steps](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key) +- Create a new account (or use an existing one) +- Export the corresponding private key according to [these steps](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key) ## Deploy the contracts Once inside the repo, you'll need to populate the `.env.template` file with the private key of the address you provided with funds in the previous step, and the endpoint of the target network on which you want to deploy + ```bash export PRIVATE_KEY= export RPC_URL=https://api.calibration.node.glif.io/rpc/v1 @@ -39,7 +41,7 @@ In your currently open terminal, you'll need to load these variables into your e ```bash source .env.template -make deploy-ipc NETWORK=calibrationnet +make deploy-stack NETWORK=calibrationnet ``` If the deployment is successful, you should receive an output similar to this one: @@ -65,4 +67,4 @@ registry contract deployed to: Keep the addresses of the gateway and the registry contracts deployed, as you will need them to configure the IPC agent. ->💡If instead of deploying IPC Solidity in Calibration, you want to test them in a local network, the only thing that you need to do is to configure the `RPC_URL` of your `.env` to point to the corresponding network's RPC endpoint, and `make deploy-ipc NETWORK=localnet`. You can also use `NETWORK=auto` to let the deployment scripts figure out the chain ID and all the information required to deploy IPC over the network that `RPC_URL` is pointing to. +> 💡If instead of deploying IPC Solidity in Calibration, you want to test them in a local network, the only thing that you need to do is to configure the `RPC_URL` of your `.env` to point to the corresponding network's RPC endpoint, and `make deploy-stack NETWORK=localnet`. You can also use `NETWORK=auto` to let the deployment scripts figure out the chain ID and all the information required to deploy IPC over the network that `RPC_URL` is pointing to. From 6cfb5163c06a464065684f2e0c5d39e1892c9656 Mon Sep 17 00:00:00 2001 From: cryptoAtwill <108330426+cryptoAtwill@users.noreply.github.com> Date: Mon, 11 Nov 2024 19:34:15 +0800 Subject: [PATCH 06/16] fix: clippy + upgrade dependencies + Rust 1.81.0 (#1188) Co-authored-by: cryptoAtwill Co-authored-by: Karel Moravec Co-authored-by: raulk --- Cargo.lock | 1365 ++++++++++------- fendermint/app/src/tmconv.rs | 2 +- fendermint/vm/interpreter/src/fvm/query.rs | 4 +- .../vm/interpreter/src/fvm/state/genesis.rs | 24 +- rust-toolchain.toml | 2 +- 5 files changed, 788 insertions(+), 609 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5bcddd643..5c087cbe0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,18 +23,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.29.0", + "gimli 0.31.1", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -106,9 +106,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "ambassador" @@ -148,9 +148,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -163,52 +163,52 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" dependencies = [ "backtrace", ] [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -236,9 +236,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -248,9 +248,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "ascii" @@ -269,9 +269,9 @@ dependencies = [ [[package]] name = "asn1-rs" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", @@ -285,13 +285,13 @@ dependencies = [ [[package]] name = "asn1-rs-derive" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "synstructure 0.13.1", ] @@ -303,7 +303,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -337,14 +337,14 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", - "futures-lite 2.3.0", + "fastrand", + "futures-lite", "slab", ] @@ -356,59 +356,30 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ "async-channel 2.3.1", "async-executor", - "async-io 2.3.3", - "async-lock 3.4.0", + "async-io", + "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite", "once_cell", ] [[package]] name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock 3.4.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "parking", - "polling 3.7.2", - "rustix 0.38.34", + "polling", + "rustix", "slab", "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "windows-sys 0.59.0", ] [[package]] @@ -430,25 +401,25 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] name = "async-std" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" dependencies = [ "async-channel 1.9.0", "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 1.13.0", - "gloo-timers", + "futures-lite", + "gloo-timers 0.3.0", "kv-log-macro", "log", "memchr", @@ -477,13 +448,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -575,14 +546,14 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" @@ -638,17 +609,17 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.22.0", - "cc", + "addr2line 0.24.2", "cfg-if", "libc", "miniz_oxide", - "object 0.36.2", + "object 0.36.5", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -777,9 +748,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -855,8 +826,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", ] [[package]] @@ -877,8 +848,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", ] [[package]] @@ -917,7 +888,7 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "piper", ] @@ -1031,7 +1002,7 @@ dependencies = [ "serde_urlencoded", "thiserror", "tokio", - "tokio-util 0.7.11", + "tokio-util 0.7.12", "url", "winapi", ] @@ -1044,7 +1015,7 @@ checksum = "b58071e8fd9ec1e930efd28e3a90c1251015872a2ce49f81f36421b86466932e" dependencies = [ "serde", "serde_repr", - "serde_with 3.9.0", + "serde_with 3.11.0", ] [[package]] @@ -1077,9 +1048,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -1107,9 +1078,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] @@ -1166,12 +1137,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.7" +version = "1.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -1189,6 +1161,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chacha20" version = "0.9.1" @@ -1288,9 +1266,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -1298,9 +1276,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", @@ -1310,23 +1288,23 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.11" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ae69fbb0833c6fcd5a8d4b8609f108c7ad95fc11e248d853ff2c42a90df26a" +checksum = "11611dca53440593f38e6b25ec629de50b14cdfa63adc0fb856115a2c6d97595" dependencies = [ - "clap 4.5.11", + "clap 4.5.20", ] [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1345,7 +1323,7 @@ dependencies = [ "coins-core", "digest 0.10.7", "hmac 0.12.1", - "k256 0.13.3", + "k256 0.13.4", "serde", "sha2 0.10.8", "thiserror", @@ -1389,9 +1367,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "concurrent-queue" @@ -1437,9 +1415,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" dependencies = [ "cfg-if", "cpufeatures", @@ -1462,9 +1440,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1484,9 +1462,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1508,9 +1486,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -1800,7 +1778,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1837,7 +1815,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1848,7 +1826,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1896,7 +1874,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ - "uuid 1.10.0", + "uuid 1.11.0", ] [[package]] @@ -1945,13 +1923,13 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -1964,7 +1942,27 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.72", + "syn 2.0.87", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -2055,7 +2053,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2072,9 +2070,9 @@ checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "ec-gpu" @@ -2084,9 +2082,9 @@ checksum = "bd63582de2b59ea1aa48d7c1941b5d87618d95484397521b3acdfa0e1e9f5e45" [[package]] name = "ec-gpu-gen" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c3a1c7cc1906cead1b1763ab4ad1b86f0fa037c4407e2c7f90568f9c2eeb78" +checksum = "d2353854622ec1abfd22243eb958453b95f1502e2a56648bf9db49ccbfb55f01" dependencies = [ "bitvec", "crossbeam-channel", @@ -2224,9 +2222,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -2240,7 +2238,7 @@ dependencies = [ "base64 0.21.7", "bytes", "hex", - "k256 0.13.3", + "k256 0.13.4", "log", "rand", "rlp", @@ -2251,14 +2249,14 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2458,7 +2456,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.72", + "syn 2.0.87", "toml 0.8.19", "walkdir", ] @@ -2476,7 +2474,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2485,7 +2483,7 @@ version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bytes", "cargo_metadata", "chrono", @@ -2493,7 +2491,7 @@ dependencies = [ "elliptic-curve 0.13.8", "ethabi", "generic-array 0.14.7", - "k256 0.13.3", + "k256 0.13.4", "num_enum", "once_cell", "open-fastrlp", @@ -2502,7 +2500,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.72", + "syn 2.0.87", "tempfile", "thiserror", "tiny-keccak", @@ -2638,7 +2636,7 @@ dependencies = [ "tokio", "tracing", "walkdir", - "yansi", + "yansi 0.5.1", ] [[package]] @@ -2696,7 +2694,7 @@ checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b" dependencies = [ "execute-command-tokens", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -2738,18 +2736,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fdlimit" @@ -2953,7 +2942,7 @@ dependencies = [ "anyhow", "bytes", "cid", - "clap 4.5.11", + "clap 4.5.20", "fendermint_materializer", "fendermint_vm_actor_interface", "fendermint_vm_genesis", @@ -3052,7 +3041,7 @@ dependencies = [ "async-trait", "axum", "cid", - "clap 4.5.11", + "clap 4.5.20", "erased-serde", "ethers", "ethers-contract", @@ -3174,7 +3163,7 @@ dependencies = [ "base64 0.21.7", "bytes", "cid", - "clap 4.5.11", + "clap 4.5.20", "ethers", "fendermint_crypto", "fendermint_vm_actor_interface", @@ -3398,7 +3387,7 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", - "tokio-util 0.7.11", + "tokio-util 0.7.12", "tracing", ] @@ -3477,7 +3466,7 @@ dependencies = [ "tendermint-rpc", "thiserror", "tokio", - "tokio-util 0.7.11", + "tokio-util 0.7.12", "tracing", ] @@ -3491,7 +3480,7 @@ dependencies = [ "async-trait", "bytes", "cid", - "clap 4.5.11", + "clap 4.5.20", "ethers", "fendermint_crypto", "fendermint_testing", @@ -3557,7 +3546,7 @@ dependencies = [ "anyhow", "async-std", "cid", - "clap 4.5.11", + "clap 4.5.20", "futures", "fvm_ipld_blockstore", "fvm_ipld_car", @@ -3733,9 +3722,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide", @@ -3766,6 +3755,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3870,9 +3865,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -3895,9 +3890,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -3905,15 +3900,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -3923,32 +3918,17 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "fastrand 2.1.0", + "fastrand", "futures-core", "futures-io", "parking", @@ -3967,13 +3947,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -3983,21 +3963,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.12", + "rustls 0.23.16", "rustls-pki-types", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-ticker" @@ -4016,15 +3996,15 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers", + "gloo-timers 0.2.6", "send_wrapper 0.4.0", ] [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -4050,7 +4030,7 @@ dependencies = [ "blake2b_simd", "byteorder", "cid", - "derive_more", + "derive_more 0.99.18", "filecoin-proofs-api", "fvm-wasm-instrument", "fvm_ipld_amt", @@ -4276,7 +4256,7 @@ version = "0.4.0" source = "git+https://github.com/consensus-shipyard/gcra-rs.git?branch=main#621a45559a1107778dfcb6ebdf00a7ee848a8d8c" dependencies = [ "dashmap", - "rustc-hash", + "rustc-hash 1.1.0", "thiserror", ] @@ -4336,9 +4316,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -4358,6 +4338,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "group" version = "0.12.1" @@ -4399,7 +4391,7 @@ dependencies = [ "indexmap 2.6.0", "slab", "tokio", - "tokio-util 0.7.11", + "tokio-util 0.7.12", "tracing", ] @@ -4426,16 +4418,17 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.11", - "allocator-api2", -] [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "hashers" @@ -4489,12 +4482,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -4566,7 +4553,7 @@ dependencies = [ "ipnet", "once_cell", "rand", - "socket2 0.5.7", + "socket2", "thiserror", "tinyvec", "tokio", @@ -4684,9 +4671,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -4711,9 +4698,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", @@ -4726,7 +4713,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", "tower-service", "tracing", @@ -4812,9 +4799,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4833,6 +4820,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -4851,12 +4956,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -4875,7 +4991,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io 2.3.3", + "async-io", "core-foundation", "fnv", "futures", @@ -4983,7 +5099,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "serde", ] @@ -5018,17 +5134,6 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" -[[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.9", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "iowrap" version = "0.2.1" @@ -5077,7 +5182,7 @@ dependencies = [ "base64 0.21.7", "bytes", "cid", - "clap 4.5.11", + "clap 4.5.20", "clap_complete", "env_logger 0.10.2", "ethers", @@ -5283,7 +5388,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.7", + "socket2", "widestring", "windows-sys 0.48.0", "winreg", @@ -5291,17 +5396,17 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.4.0", "libc", "windows-sys 0.52.0", ] @@ -5365,9 +5470,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -5436,9 +5541,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa 0.16.9", @@ -5479,7 +5584,7 @@ dependencies = [ "lalrpop-util", "petgraph", "regex", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "string_cache", "term", "tiny-keccak", @@ -5493,7 +5598,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "regex-automata 0.4.7", + "regex-automata 0.4.8", ] [[package]] @@ -5519,9 +5624,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libipld" @@ -5585,9 +5690,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libp2p" @@ -5679,7 +5784,7 @@ dependencies = [ "futures-timer", "libp2p-identity", "multiaddr", - "multihash 0.19.1", + "multihash 0.19.2", "multistream-select", "once_cell", "parking_lot", @@ -5778,7 +5883,7 @@ dependencies = [ "ed25519-dalek", "hkdf", "libsecp256k1", - "multihash 0.19.1", + "multihash 0.19.2", "quick-protobuf", "rand", "serde", @@ -5794,7 +5899,7 @@ version = "0.45.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc5767727d062c4eac74dd812c998f0e488008e82cce9c33b463d38423f9ad2" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "asynchronous-codec 0.7.0", "bytes", "either", @@ -5833,7 +5938,7 @@ dependencies = [ "libp2p-swarm", "rand", "smallvec", - "socket2 0.5.7", + "socket2", "tokio", "tracing", "void", @@ -5890,7 +5995,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "multiaddr", - "multihash 0.19.1", + "multihash 0.19.2", "once_cell", "quick-protobuf", "rand", @@ -5954,8 +6059,8 @@ dependencies = [ "quinn", "rand", "ring 0.17.8", - "rustls 0.23.12", - "socket2 0.5.7", + "rustls 0.23.16", + "socket2", "thiserror", "tokio", "tracing", @@ -6014,7 +6119,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6029,7 +6134,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.7", + "socket2", "tokio", "tracing", ] @@ -6046,7 +6151,7 @@ dependencies = [ "libp2p-identity", "rcgen", "ring 0.17.8", - "rustls 0.23.12", + "rustls 0.23.16", "rustls-webpki 0.101.7", "thiserror", "x509-parser", @@ -6071,9 +6176,9 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.45.1" +version = "0.45.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200cbe50349a44760927d50b431d77bed79b9c0a3959de1af8d24a63434b71e5" +checksum = "ddd5265f6b80f94d48a3963541aad183cc598a645755d2f1805a373e41e0716b" dependencies = [ "either", "futures", @@ -6160,9 +6265,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.18" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "pkg-config", @@ -6177,15 +6282,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] -name = "linux-raw-sys" -version = "0.4.14" +name = "litemap" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" [[package]] name = "literally" @@ -6214,11 +6319,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.1", ] [[package]] @@ -6238,9 +6343,9 @@ checksum = "9106e1d747ffd48e6be5bb2d97fa706ed25b144fbee4d5c02eae110cd8d6badd" [[package]] name = "lz4-sys" -version = "1.10.0" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -6298,7 +6403,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.34", + "rustix", ] [[package]] @@ -6362,11 +6467,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] @@ -6381,9 +6486,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", @@ -6393,20 +6498,20 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" dependencies = [ "arrayref", "byteorder", "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.1", + "multihash 0.19.2", "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", "url", ] @@ -6444,13 +6549,13 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2" dependencies = [ "core2", "serde", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", ] [[package]] @@ -6689,7 +6794,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6759,10 +6864,10 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6779,27 +6884,27 @@ dependencies = [ [[package]] name = "object" -version = "0.36.2" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "oid-registry" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ "asn1-rs", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -6813,7 +6918,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "auto_impl", "bytes", "ethereum-types", @@ -6834,9 +6939,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -6855,7 +6960,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -6866,18 +6971,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.1+3.3.1" +version = "300.4.0+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" +checksum = "a709e02f2b4aca747929cca5ed248880847c650233cf8b8cdc48f40aaf4898a6" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -6932,7 +7037,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", @@ -6946,7 +7051,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -6954,9 +7059,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -7034,9 +7139,9 @@ checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" [[package]] name = "pbkdf2" @@ -7120,9 +7225,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -7131,9 +7236,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ "pest", "pest_generator", @@ -7141,22 +7246,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] name = "pest_meta" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ "once_cell", "pest", @@ -7213,7 +7318,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7236,29 +7341,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -7268,12 +7373,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand", "futures-io", ] @@ -7299,39 +7404,23 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "polling" -version = "2.8.0" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" -version = "3.7.2" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -7376,9 +7465,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -7388,12 +7480,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", - "yansi", + "yansi 1.0.1", ] [[package]] @@ -7408,12 +7500,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7442,11 +7534,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.22.22", ] [[package]] @@ -7475,9 +7567,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -7492,7 +7584,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core", - "rustix 0.38.34", + "rustix", ] [[package]] @@ -7542,7 +7634,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -7571,7 +7663,7 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "unarray", ] @@ -7615,9 +7707,9 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psm" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" dependencies = [ "cc", ] @@ -7697,17 +7789,18 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.2" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ "bytes", "futures-io", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", - "rustls 0.23.12", + "rustc-hash 2.0.0", + "rustls 0.23.16", + "socket2", "thiserror", "tokio", "tracing", @@ -7715,15 +7808,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.3" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand", "ring 0.17.8", - "rustc-hash", - "rustls 0.23.12", + "rustc-hash 2.0.0", + "rustls 0.23.16", "slab", "thiserror", "tinyvec", @@ -7732,21 +7825,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ + "cfg_aliases", "libc", "once_cell", - "socket2 0.5.7", - "windows-sys 0.52.0", + "socket2", + "tracing", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -7839,18 +7934,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", @@ -7865,21 +7960,21 @@ checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" dependencies = [ "hashbrown 0.13.2", "log", - "rustc-hash", + "rustc-hash 1.1.0", "slice-group-by", "smallvec", ] [[package]] name = "regex" -version = "1.10.5" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -7893,13 +7988,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -7910,9 +8005,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "render-tree" @@ -8125,6 +8220,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -8133,9 +8234,9 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] @@ -8151,28 +8252,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.27" +version = "0.38.40" 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.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" dependencies = [ "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.14", + "linux-raw-sys", "windows-sys 0.52.0", ] @@ -8215,14 +8302,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -8262,9 +8349,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -8278,9 +8365,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -8289,9 +8376,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rw-stream-sink" @@ -8330,44 +8417,44 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "cfg-if", - "derive_more", + "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", ] [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] name = "scc" -version = "2.1.6" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ccfb12511cdb770157ace92d7dda771e498445b78f9886e8cdbc5140a4eced" +checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -8410,9 +8497,9 @@ dependencies = [ [[package]] name = "sdd" -version = "2.1.0" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177258b64c0faaa9ffd3c65cd3262c2bc7e2588dbbd9c1641d0346145c1bbda8" +checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" [[package]] name = "sec1" @@ -8457,9 +8544,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -8488,9 +8575,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] @@ -8515,13 +8602,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -8538,9 +8625,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -8566,14 +8653,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -8629,9 +8716,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ "base64 0.22.1", "chrono", @@ -8653,7 +8740,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -8671,9 +8758,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" dependencies = [ "futures", "log", @@ -8685,13 +8772,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -8880,16 +8967,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.7" @@ -9159,7 +9236,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -9216,9 +9293,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -9251,7 +9328,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -9283,20 +9360,21 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.15" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.10.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand 2.1.0", - "rustix 0.38.34", - "windows-sys 0.52.0", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", ] [[package]] @@ -9311,7 +9389,7 @@ dependencies = [ "ed25519-consensus", "flex-error", "futures", - "k256 0.13.3", + "k256 0.13.4", "num-traits", "once_cell", "prost", @@ -9489,22 +9567,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -9579,6 +9657,16 @@ dependencies = [ "url", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -9596,9 +9684,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -9607,7 +9695,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2", "tokio-macros", "windows-sys 0.52.0", ] @@ -9620,7 +9708,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -9667,9 +9755,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -9721,9 +9809,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -9788,17 +9876,6 @@ dependencies = [ "winnow 0.5.40", ] -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.6.0", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.22.22" @@ -9827,7 +9904,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.11", + "tokio-util 0.7.12", "tower-layer", "tower-service", "tracing", @@ -9872,15 +9949,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -9914,7 +9991,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] @@ -10046,9 +10123,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -10070,42 +10147,42 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -10155,12 +10232,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", "serde", ] @@ -10171,6 +10248,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -10189,9 +10278,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" [[package]] name = "valuable" @@ -10201,9 +10290,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[package]] name = "vcpkg" @@ -10247,12 +10336,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -10280,34 +10363,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -10317,9 +10401,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10327,22 +10411,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-encoder" @@ -10517,7 +10601,7 @@ dependencies = [ "log", "object 0.31.1", "rustc-demangle", - "rustix 0.38.34", + "rustix", "serde", "target-lexicon", "wasmtime-environ", @@ -10564,7 +10648,7 @@ dependencies = [ "memoffset", "paste", "rand", - "rustix 0.38.34", + "rustix", "sptr", "wasm-encoder 0.31.1", "wasmtime-asm-macros", @@ -10594,14 +10678,14 @@ checksum = "ca7af9bb3ee875c4907835e607a275d10b04d15623d3aebe01afe8fbd3f85050" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", ] [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -10676,11 +10760,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -10735,6 +10819,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -10884,6 +10977,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -10943,9 +11048,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.20" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" [[package]] name = "xmltree" @@ -11015,6 +11120,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yasna" version = "0.5.2" @@ -11034,12 +11145,37 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] @@ -11051,7 +11187,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", ] [[package]] @@ -11071,7 +11228,29 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -11115,9 +11294,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/fendermint/app/src/tmconv.rs b/fendermint/app/src/tmconv.rs index cd1e1e786..029270e47 100644 --- a/fendermint/app/src/tmconv.rs +++ b/fendermint/app/src/tmconv.rs @@ -269,7 +269,7 @@ pub fn to_query(ret: FvmQueryRet, block_height: BlockHeight) -> anyhow::Result>), /// The results of a read-only message application. - Call(FvmApplyRet), + Call(Box), /// The estimated gas limit. EstimateGas(GasEstimate), /// Current state parameters. @@ -106,7 +106,7 @@ where emitters, }; - let out = FvmQueryRet::Call(ret); + let out = FvmQueryRet::Call(Box::new(ret)); Ok((state, out)) } FvmQuery::EstimateGas(mut msg) => { diff --git a/fendermint/vm/interpreter/src/fvm/state/genesis.rs b/fendermint/vm/interpreter/src/fvm/state/genesis.rs index bdbed9947..b53fe5d36 100644 --- a/fendermint/vm/interpreter/src/fvm/state/genesis.rs +++ b/fendermint/vm/interpreter/src/fvm/state/genesis.rs @@ -50,8 +50,8 @@ pub fn empty_state_tree(store: DB) -> anyhow::Result { - Tree(StateTree), - Exec(FvmExecState), + Tree(Box>), + Exec(Box>), } /// A state we create for the execution of genesis initialisation. @@ -121,7 +121,7 @@ where custom_actor_manifest, store, multi_engine, - stage: Stage::Tree(state_tree), + stage: Stage::Tree(Box::new(state_tree)), }; Ok(state) @@ -139,11 +139,11 @@ where chain_id: u64, power_scale: PowerScale, ) -> anyhow::Result<()> { - self.stage = match self.stage { + self.stage = match &mut self.stage { Stage::Exec(_) => bail!("execution engine already initialized"), Stage::Tree(ref mut state_tree) => { // We have to flush the data at this point. - let state_root = state_tree.flush()?; + let state_root = (*state_tree).flush()?; let params = FvmStateParams { state_root, @@ -160,7 +160,7 @@ where FvmExecState::new(self.store.clone(), &self.multi_engine, 1, params) .context("failed to create exec state")?; - Stage::Exec(exec_state) + Stage::Exec(Box::new(exec_state)) } }; Ok(()) @@ -170,7 +170,7 @@ where pub fn finalize(self) -> anyhow::Result<(Cid, DB)> { match self.stage { Stage::Tree(_) => Err(anyhow!("invalid finalize state")), - Stage::Exec(exec_state) => match exec_state.commit()? { + Stage::Exec(exec_state) => match (*exec_state).commit()? { (_, _, true) => bail!("FVM parameters are not expected to be updated in genesis"), (cid, _, _) => Ok((cid, self.store)), }, @@ -454,7 +454,7 @@ where let (apply_ret, _) = match self.stage { Stage::Tree(_) => bail!("execution engine not initialized"), - Stage::Exec(ref mut exec_state) => exec_state + Stage::Exec(ref mut exec_state) => (*exec_state) .execute_implicit(msg) .context("failed to execute message")?, }; @@ -503,14 +503,14 @@ where pub fn exec_state(&mut self) -> Option<&mut FvmExecState> { match self.stage { Stage::Tree(_) => None, - Stage::Exec(ref mut exec) => Some(exec), + Stage::Exec(ref mut exec) => Some(&mut *exec), } } pub fn into_exec_state(self) -> Result, Self> { match self.stage { Stage::Tree(_) => Err(self), - Stage::Exec(exec) => Ok(exec), + Stage::Exec(exec) => Ok(*exec), } } @@ -530,7 +530,7 @@ where { match self.stage { Stage::Tree(ref mut state_tree) => f(state_tree), - Stage::Exec(ref mut exec_state) => g(exec_state.state_tree_mut()), + Stage::Exec(ref mut exec_state) => g((*exec_state).state_tree_mut()), } } @@ -538,7 +538,7 @@ where fn get_actor_state(&self, actor: ActorID) -> anyhow::Result { let actor_state_cid = match &self.stage { Stage::Tree(s) => s.get_actor(actor)?, - Stage::Exec(s) => s.state_tree().get_actor(actor)?, + Stage::Exec(ref s) => (*s).state_tree().get_actor(actor)?, } .ok_or_else(|| anyhow!("actor state {actor} not found, is it deployed?"))? .state; diff --git a/rust-toolchain.toml b/rust-toolchain.toml index a59cf37c5..73c404b3f 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "stable" +channel = "1.81.0" components = ["clippy", "llvm-tools", "rustfmt"] targets = ["wasm32-unknown-unknown"] From 0d44ac39fe121736fb78003e3033def8ac7e20fc Mon Sep 17 00:00:00 2001 From: Karel Moravec Date: Mon, 11 Nov 2024 17:19:21 +0100 Subject: [PATCH 07/16] fix: for "Nonce Has Already Been Used" Issue During Deployment on Calibrationnet (#1186) --- .github/workflows/contracts-deployment-test.yaml | 6 +++--- contracts/tasks/deploy-registry.ts | 8 ++------ contracts/tasks/lib/deployments.ts | 6 ++++++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/contracts-deployment-test.yaml b/.github/workflows/contracts-deployment-test.yaml index 7d7de2147..bc77985b2 100644 --- a/.github/workflows/contracts-deployment-test.yaml +++ b/.github/workflows/contracts-deployment-test.yaml @@ -1,4 +1,4 @@ -name: 'Contracts: Smoke test deployment' +name: "Contracts: Smoke test deployment" # This workflow is triggered from the main CI workflow. on: @@ -17,8 +17,8 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: '18.x' - cache: 'pnpm' + node-version: "18.x" + cache: "pnpm" - name: Install dependencies run: cd contracts && make deps diff --git a/contracts/tasks/deploy-registry.ts b/contracts/tasks/deploy-registry.ts index f087bd8b0..50ecb7507 100644 --- a/contracts/tasks/deploy-registry.ts +++ b/contracts/tasks/deploy-registry.ts @@ -97,12 +97,8 @@ task('deploy-registry') creationPrivileges: Number(mode), } - console.log(`Deploying SubnetRegistryDiamond...`) - const registry = await hre.deployments.deploy('SubnetRegistryDiamond', { - from: deployer, + Deployments.deploy(hre, deployer, { + name: 'SubnetRegistryDiamond', args: [registryFacets.asFacetCuts(), registryConstructorParams], - log: true, - waitConfirmations: 1, }) - console.log(`SubnetRegistryDiamond deployed at ${registry.address}`) }) diff --git a/contracts/tasks/lib/deployments.ts b/contracts/tasks/lib/deployments.ts index 4fbcb15b4..89eaacc47 100644 --- a/contracts/tasks/lib/deployments.ts +++ b/contracts/tasks/lib/deployments.ts @@ -68,16 +68,22 @@ export class Deployments { ...(contract.libraries || []), ) + // Manually managed nonce due to a Filecoin update, which requires specifying 'pending' with + // getTransactionCount to retrieve the latest nonce. + const nonce = await hre.ethers.provider.getTransactionCount(deployer, "pending"); + const result = await hre.deployments.deploy(contract.name, { from: deployer, log: true, args: contract.args, libraries: libraries.addresses, + nonce: nonce, waitConfirmations: 1, }) results[contract.name] = result console.log(`${contract.name} deployed at ${result.address}`) } + return new Deployments( await Deployments.resolveContracts(hre, Object.keys(results)), results, From 409c1387ddf978a76c999bd8a19c7291dd094fd1 Mon Sep 17 00:00:00 2001 From: LePremierHomme <57456510+LePremierHomme@users.noreply.github.com> Date: Thu, 14 Nov 2024 15:00:06 +0530 Subject: [PATCH 08/16] fix: add `--artifacts-path` flag documentation (#1199) --- docs/fendermint/running.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/fendermint/running.md b/docs/fendermint/running.md index bd0e0bbdf..eabcb2e0a 100644 --- a/docs/fendermint/running.md +++ b/docs/fendermint/running.md @@ -221,7 +221,8 @@ cargo run -p fendermint_app --release -- \ seal-genesis \ --builtin-actors-path fendermint/builtin-actors/output/bundle.car \ --custom-actors-path fendermint/actors/output/custom_actors_bundle.car \ - --output-path test-network/sealed.car + --output-path test-network/sealed.car \ + --artifacts-path contracts/out ``` ### Configure CometBFT From 76532d2a758d1b6cfed037cd557794ed35bd54d6 Mon Sep 17 00:00:00 2001 From: LePremierHomme <57456510+LePremierHomme@users.noreply.github.com> Date: Fri, 15 Nov 2024 14:27:14 +0530 Subject: [PATCH 09/16] feat: add `subnet_id` to metrics as a global label (#1204) --- fendermint/app/src/cmd/run.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fendermint/app/src/cmd/run.rs b/fendermint/app/src/cmd/run.rs index 81357ae5d..865ccecb9 100644 --- a/fendermint/app/src/cmd/run.rs +++ b/fendermint/app/src/cmd/run.rs @@ -71,8 +71,11 @@ async fn run(settings: Settings) -> anyhow::Result<()> { // Prometheus metrics let metrics_registry = if settings.metrics.enabled { - let registry = prometheus::Registry::new_custom(Some("ipc".to_string()), None) - .context("failed to create Prometheus registry")?; + let registry = prometheus::Registry::new_custom( + Some("ipc".to_string()), + Some([("subnet_id".to_string(), settings.ipc.subnet_id.to_string())].into()), + ) + .context("failed to create Prometheus registry")?; register_default_metrics(®istry).context("failed to register default metrics")?; register_topdown_metrics(®istry).context("failed to register topdown metrics")?; From 510676d011482cc070b40d31871d84d3c5095f13 Mon Sep 17 00:00:00 2001 From: Karel Moravec Date: Fri, 15 Nov 2024 15:12:34 +0100 Subject: [PATCH 10/16] fix: install target arch (#1203) --- .github/workflows/docker-publish.yaml | 1 + fendermint/docker/builder.ci.Dockerfile | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 0f1cbc053..67f00d659 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -2,6 +2,7 @@ name: Fendermint CI - Publish # This workflow is triggered from the main CI workflow. on: + workflow_dispatch: workflow_call: env: diff --git a/fendermint/docker/builder.ci.Dockerfile b/fendermint/docker/builder.ci.Dockerfile index 64c78e001..e7228f5db 100644 --- a/fendermint/docker/builder.ci.Dockerfile +++ b/fendermint/docker/builder.ci.Dockerfile @@ -72,7 +72,9 @@ RUN \ set -eux; \ case "${TARGETARCH}" in \ amd64) ARCH='x86_64' ;; \ - arm64) ARCH='aarch64' ;; \ + arm64) ARCH='aarch64'; \ + rustup target add aarch64-unknown-linux-gnu; \ + rustup toolchain install stable-aarch64-unknown-linux-gnu ;; \ *) echo >&2 "unsupported architecture: ${TARGETARCH}"; exit 1 ;; \ esac; \ rustup show ; \ @@ -94,7 +96,9 @@ RUN \ set -eux; \ case "${TARGETARCH}" in \ amd64) ARCH='x86_64' ;; \ - arm64) ARCH='aarch64' ;; \ + arm64) ARCH='aarch64'; \ + rustup target add aarch64-unknown-linux-gnu; \ + rustup toolchain install stable-aarch64-unknown-linux-gnu ;; \ esac; \ cargo install --locked --root output --path fendermint/app --target ${ARCH}-unknown-linux-gnu ; \ cargo install --locked --root output --path ipc/cli --target ${ARCH}-unknown-linux-gnu From d33333a4ea8a58dd2364ef186c13d85386fead34 Mon Sep 17 00:00:00 2001 From: LePremierHomme <57456510+LePremierHomme@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:43:55 +0530 Subject: [PATCH 11/16] fix: metrics validator label to use address instead of pk struct formatting (#1201) Co-authored-by: Karel Moravec --- fendermint/app/src/cmd/run.rs | 2 +- fendermint/vm/interpreter/src/fvm/checkpoint.rs | 2 +- fendermint/vm/interpreter/src/fvm/mod.rs | 6 +++++- fendermint/vm/interpreter/src/fvm/observe.rs | 13 ++++--------- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/fendermint/app/src/cmd/run.rs b/fendermint/app/src/cmd/run.rs index 865ccecb9..9ddb9cf16 100644 --- a/fendermint/app/src/cmd/run.rs +++ b/fendermint/app/src/cmd/run.rs @@ -128,7 +128,7 @@ async fn run(settings: Settings) -> anyhow::Result<()> { .with_max_retries(settings.broadcast.max_retries) .with_retry_delay(settings.broadcast.retry_delay); - ValidatorContext::new(sk, broadcaster) + ValidatorContext::new(sk, addr, broadcaster) }); let testing_settings = match settings.testing.as_ref() { diff --git a/fendermint/vm/interpreter/src/fvm/checkpoint.rs b/fendermint/vm/interpreter/src/fvm/checkpoint.rs index ab9b2c0d5..b9ebd433a 100644 --- a/fendermint/vm/interpreter/src/fvm/checkpoint.rs +++ b/fendermint/vm/interpreter/src/fvm/checkpoint.rs @@ -261,7 +261,7 @@ where role: CheckpointSignedRole::Own, height: height.value(), hash: HexEncodableBlockHash(cp.block_hash.to_vec()), - validator: validator_ctx.public_key, + validator: validator_ctx.addr, }); tracing::debug!(?height, "submitted checkpoint signature"); diff --git a/fendermint/vm/interpreter/src/fvm/mod.rs b/fendermint/vm/interpreter/src/fvm/mod.rs index 42bbef7a5..e0fa04a26 100644 --- a/fendermint/vm/interpreter/src/fvm/mod.rs +++ b/fendermint/vm/interpreter/src/fvm/mod.rs @@ -24,6 +24,7 @@ pub use exec::FvmApplyRet; use fendermint_crypto::{PublicKey, SecretKey}; pub use fendermint_vm_message::query::FvmQuery; use fvm_ipld_blockstore::Blockstore; +use fvm_shared::address::Address; pub use query::FvmQueryRet; use tendermint_rpc::Client; @@ -40,18 +41,21 @@ pub struct ValidatorContext { secret_key: SecretKey, /// The public key identifying the validator (corresponds to the secret key.) public_key: PublicKey, + /// The address associated with the public key. + addr: Address, /// Used to broadcast transactions. It might use a different secret key for /// signing transactions than the validator's block producing key. broadcaster: Broadcaster, } impl ValidatorContext { - pub fn new(secret_key: SecretKey, broadcaster: Broadcaster) -> Self { + pub fn new(secret_key: SecretKey, addr: Address, broadcaster: Broadcaster) -> Self { // Derive the public keys so it's available to check whether this node is a validator at any point in time. let public_key = secret_key.public_key(); Self { secret_key, public_key, + addr, broadcaster, } } diff --git a/fendermint/vm/interpreter/src/fvm/observe.rs b/fendermint/vm/interpreter/src/fvm/observe.rs index d0304b879..e714981ca 100644 --- a/fendermint/vm/interpreter/src/fvm/observe.rs +++ b/fendermint/vm/interpreter/src/fvm/observe.rs @@ -1,6 +1,7 @@ // Copyright 2022-2024 Protocol Labs // SPDX-License-Identifier: Apache-2.0, MIT +use fvm_shared::address::Address; use ipc_observability::{ impl_traceable, impl_traceables, lazy_static, register_metrics, serde::HexEncodableBlockHash, Recordable, TraceLevel, Traceable, @@ -11,7 +12,6 @@ use prometheus::{ Histogram, IntCounter, IntGauge, IntGaugeVec, Registry, }; -use fendermint_crypto::PublicKey; use fvm_shared::message::Message; register_metrics! { @@ -110,13 +110,13 @@ pub struct CheckpointSigned { pub role: CheckpointSignedRole, pub height: u64, pub hash: HexEncodableBlockHash, - pub validator: PublicKey, + pub validator: Address, } impl Recordable for CheckpointSigned { fn record_metrics(&self) { BOTTOMUP_CHECKPOINT_SIGNED_HEIGHT - .with_label_values(&[format!("{:?}", self.validator).as_str()]) + .with_label_values(&[format!("{}", self.validator).as_str()]) .set(self.height as i64); } } @@ -146,11 +146,9 @@ mod tests { #[test] fn test_emit() { - use fendermint_crypto::SecretKey; use fvm_ipld_encoding::RawBytes; use fvm_shared::address::Address; use fvm_shared::econ::TokenAmount; - use rand::thread_rng; let message = Message { version: 1, @@ -181,14 +179,11 @@ mod tests { config_number: 3, }); - let mut r = thread_rng(); - let secret_key = SecretKey::random(&mut r); - emit(CheckpointSigned { role: CheckpointSignedRole::Own, height: 1, hash: HexEncodableBlockHash(hash.clone()), - validator: secret_key.public_key(), + validator: Address::new_id(1), }); } } From 480a035bb0736faee23b80089dc98e8852812711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7oisT?= Date: Mon, 18 Nov 2024 13:57:25 +0100 Subject: [PATCH 12/16] Docs: Fix a broken reference for the subnets webpage (#1178) --- docs-gitbook/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-gitbook/README.md b/docs-gitbook/README.md index 1e9e449ae..332116efb 100644 --- a/docs-gitbook/README.md +++ b/docs-gitbook/README.md @@ -22,7 +22,7 @@ IPC is a scaling solution intentionally designed to achieve considerable perform It achieves scaling through the permission-less spawning of new blockchain sub-systems, which are composed of subnets. -[Subnets](broken-reference) are organized in a hierarchy, with one parent subnet being able to spawn infinite child subnets. Within a hierarchical subsystem, subnets can seamlessly communicate with each other, reducing the need for cross-chain bridges. +[Subnets](concepts/subnets/README.md) are organized in a hierarchy, with one parent subnet being able to spawn infinite child subnets. Within a hierarchical subsystem, subnets can seamlessly communicate with each other, reducing the need for cross-chain bridges. Subnets also have their own specific consensus algorithms, whilst leveraging security features from parent subnets. This allows dApps to use subnets for hosting sets of applications or to [shard](https://en.wikipedia.org/wiki/Shard\_\(database\_architecture\)) a single application, according to its various cost or performance needs. \ \ From 2da7612b4b6a269b2c0a7f40557c6835b8521e1f Mon Sep 17 00:00:00 2001 From: cryptoAtwill <108330426+cryptoAtwill@users.noreply.github.com> Date: Mon, 18 Nov 2024 21:44:59 +0800 Subject: [PATCH 13/16] fix: update deploy-registry.ts (#1206) --- contracts/tasks/deploy-registry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/tasks/deploy-registry.ts b/contracts/tasks/deploy-registry.ts index 50ecb7507..348035dd1 100644 --- a/contracts/tasks/deploy-registry.ts +++ b/contracts/tasks/deploy-registry.ts @@ -97,7 +97,7 @@ task('deploy-registry') creationPrivileges: Number(mode), } - Deployments.deploy(hre, deployer, { + return await Deployments.deploy(hre, deployer, { name: 'SubnetRegistryDiamond', args: [registryFacets.asFacetCuts(), registryConstructorParams], }) From 23c044ea324a50668c8a09ac16cb7cccbd906d4b Mon Sep 17 00:00:00 2001 From: LePremierHomme <57456510+LePremierHomme@users.noreply.github.com> Date: Fri, 22 Nov 2024 13:14:30 +0530 Subject: [PATCH 14/16] chore: upgrade `fvm` and `builtin-actors` versions (#1209) --- Cargo.lock | 890 ++++++++++---------- Cargo.toml | 16 +- fendermint/Makefile | 8 +- fendermint/testing/graph-test/Makefile.toml | 2 +- 4 files changed, 459 insertions(+), 457 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5c087cbe0..579680833 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,15 +12,6 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" -dependencies = [ - "gimli 0.27.3", -] - [[package]] name = "addr2line" version = "0.24.2" @@ -112,9 +103,9 @@ checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "ambassador" -version = "0.3.7" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87ccf220415ad6a81b21e21780134c746463fdb821cc2530a001df2c3d13a36" +checksum = "6b27ba24e4d8a188489d5a03c7fabc167a60809a383cdb4d15feb37479cd2a48" dependencies = [ "itertools 0.10.5", "proc-macro2", @@ -279,7 +270,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -613,11 +604,11 @@ version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.24.2", + "addr2line", "cfg-if", "libc", "miniz_oxide", - "object 0.36.5", + "object", "rustc-demangle", "windows-targets 0.52.6", ] @@ -691,7 +682,7 @@ dependencies = [ "byteorder", "ff 0.13.0", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -720,7 +711,7 @@ dependencies = [ "rustversion", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -914,7 +905,7 @@ dependencies = [ "pairing 0.22.0", "rand_core", "subtle", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -930,7 +921,7 @@ dependencies = [ "pairing 0.23.0", "rand_core", "subtle", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1000,7 +991,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util 0.7.12", "url", @@ -1105,7 +1096,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1137,9 +1128,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.37" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -1266,9 +1257,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -1276,9 +1267,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -1288,11 +1279,11 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.37" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11611dca53440593f38e6b25ec629de50b14cdfa63adc0fb856115a2c6d97595" +checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01" dependencies = [ - "clap 4.5.20", + "clap 4.5.21", ] [[package]] @@ -1309,9 +1300,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" [[package]] name = "coins-bip32" @@ -1326,7 +1323,7 @@ dependencies = [ "k256 0.13.4", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1342,7 +1339,7 @@ dependencies = [ "pbkdf2 0.12.2", "rand", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1362,7 +1359,7 @@ dependencies = [ "serde_derive", "sha2 0.10.8", "sha3", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1446,9 +1443,12 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] [[package]] name = "core-foundation" @@ -1476,91 +1476,96 @@ dependencies = [ ] [[package]] -name = "cpp_demangle" -version = "0.3.5" +name = "cpufeatures" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ - "cfg-if", + "libc", ] [[package]] -name = "cpufeatures" -version = "0.2.14" +name = "cranelift-bforest" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "69792bd40d21be8059f7c709f44200ded3bbd073df7eb3fa3c282b387c7ffa5b" dependencies = [ - "libc", + "cranelift-entity", ] [[package]] -name = "cranelift-bforest" -version = "0.99.2" +name = "cranelift-bitset" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a91a1ccf6fb772808742db2f51e2179f25b1ec559cbe39ea080c72ff61caf8f" +checksum = "38da1eb6f7d8cdfa92f05acfae63c9a1d7a337e49ce7a2d0769c7fa03a2613a5" dependencies = [ - "cranelift-entity", + "serde", + "serde_derive", ] [[package]] name = "cranelift-codegen" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "169db1a457791bff4fd1fc585bb5cc515609647e0420a7d5c98d7700c59c2d00" +checksum = "709f5567a2bff9f06edf911a7cb5ebb091e4c81701714dc6ab574d08b4a69a0d" dependencies = [ "bumpalo", "cranelift-bforest", + "cranelift-bitset", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli 0.27.3", - "hashbrown 0.13.2", + "gimli 0.29.0", + "hashbrown 0.14.5", "log", "regalloc2", + "rustc-hash 2.0.0", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3486b93751ef19e6d6eef66d2c0e83ed3d2ba01da1919ed2747f2f7bd8ba3419" +checksum = "72d39a6b194c069fd091ca1f17b9d86ff1a4627ccad8806095828f61989a691f" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86a1205ab18e7cd25dc4eca5246e56b506ced3feb8d95a8d776195e48d2cd4ef" +checksum = "18f81aefad1f80ed4132ae33f40b92779eeb57edeb1e28bb24424a4098c963a2" [[package]] name = "cranelift-control" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b108cae0f724ddfdec1871a0dc193a607e0c2d960f083cfefaae8ccf655eff2" +checksum = "6adbaac785ad4683c4f199686f9e15c1471f52ae2f4c013a3be039b4719db754" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720444006240622798665bfc6aa8178e2eed556da342fda62f659c5267c3c659" +checksum = "70b85ed43567e13782cd1b25baf42a8167ee57169a60dfd3d7307c6ca3839da0" dependencies = [ + "cranelift-bitset", "serde", + "serde_derive", ] [[package]] name = "cranelift-frontend" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a94c4c5508b7407e125af9d5320694b7423322e59a4ac0d07919ae254347ca" +checksum = "8349f71373bb69c6f73992c6c1606236a66c8134e7a60e04e03fbd64b1aa7dcf" dependencies = [ "cranelift-codegen", "log", @@ -1570,15 +1575,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1f888d0845dcd6be4d625b91d9d8308f3d95bed5c5d4072ce38e1917faa505" +checksum = "464a6b958ce05e0c237c8b25508012b6c644e8c37348213a8c786ba29e28cfdb" [[package]] name = "cranelift-native" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad5966da08f1e96a3ae63be49966a85c9b249fa465f8cf1b66469a82b1004a0" +checksum = "ffc4acaf6894ee323ff4e9ce786bec09f0ebbe49941e8012f1c1052f1d965034" dependencies = [ "cranelift-codegen", "libc", @@ -1587,17 +1592,17 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.99.2" +version = "0.112.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8635c88b424f1d232436f683a301143b36953cd98fc6f86f7bac862dfeb6f5" +checksum = "b878860895cca97454ef8d8b12bfda9d0889dd49efee175dba78d54ff8363ec2" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools 0.10.5", + "itertools 0.12.1", "log", "smallvec", - "wasmparser 0.110.0", + "wasmparser 0.217.0", "wasmtime-types", ] @@ -1868,15 +1873,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "uuid 1.11.0", -] - [[package]] name = "der" version = "0.6.1" @@ -1932,19 +1928,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 2.0.87", -] - [[package]] name = "derive_more" version = "1.0.0" @@ -1960,9 +1943,11 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ + "convert_case", "proc-macro2", "quote", "syn 2.0.87", + "unicode-xid", ] [[package]] @@ -2098,7 +2083,7 @@ dependencies = [ "once_cell", "rayon", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "yastl", ] @@ -2211,6 +2196,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "ena" version = "0.14.3" @@ -2338,8 +2335,8 @@ dependencies = [ "serde_json", "sha2 0.10.8", "sha3", - "thiserror", - "uuid 0.8.2", + "thiserror 1.0.69", + "uuid", ] [[package]] @@ -2355,7 +2352,7 @@ dependencies = [ "serde", "serde_json", "sha3", - "thiserror", + "thiserror 1.0.69", "uint", ] @@ -2434,7 +2431,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2502,7 +2499,7 @@ dependencies = [ "strum", "syn 2.0.87", "tempfile", - "thiserror", + "thiserror 1.0.69", "tiny-keccak", "unicode-xid", ] @@ -2519,7 +2516,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -2543,7 +2540,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "tracing-futures", @@ -2576,7 +2573,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-tungstenite 0.20.1", "tracing", @@ -2603,7 +2600,7 @@ dependencies = [ "ethers-core", "rand", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -2631,7 +2628,7 @@ dependencies = [ "serde_json", "solang-parser", "svm-rs", - "thiserror", + "thiserror 1.0.69", "tiny-keccak", "tokio", "tracing", @@ -2730,9 +2727,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" @@ -2942,7 +2939,7 @@ dependencies = [ "anyhow", "bytes", "cid", - "clap 4.5.20", + "clap 4.5.21", "fendermint_materializer", "fendermint_vm_actor_interface", "fendermint_vm_genesis", @@ -3041,7 +3038,7 @@ dependencies = [ "async-trait", "axum", "cid", - "clap 4.5.20", + "clap 4.5.21", "erased-serde", "ethers", "ethers-contract", @@ -3069,7 +3066,7 @@ dependencies = [ "serde_json", "tendermint 0.31.1", "tendermint-rpc", - "thiserror", + "thiserror 1.0.69", "tokio", "tower-http", "tracing", @@ -3151,7 +3148,7 @@ dependencies = [ "rocksdb", "serde", "tempfile", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3163,7 +3160,7 @@ dependencies = [ "base64 0.21.7", "bytes", "cid", - "clap 4.5.20", + "clap 4.5.21", "ethers", "fendermint_crypto", "fendermint_vm_actor_interface", @@ -3201,7 +3198,7 @@ dependencies = [ "quickcheck", "quickcheck_macros", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3247,7 +3244,7 @@ dependencies = [ "fil_actors_evm_shared", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.9.0", + "fvm_ipld_hamt", "fvm_shared", "hex", "ipc-api", @@ -3277,7 +3274,7 @@ dependencies = [ "quickcheck_macros", "regex", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3384,7 +3381,7 @@ dependencies = [ "tempfile", "tendermint 0.31.1", "tendermint-rpc", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util 0.7.12", @@ -3418,7 +3415,7 @@ dependencies = [ "serde", "serde_tuple", "serde_with 2.3.3", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3464,7 +3461,7 @@ dependencies = [ "tempfile", "tendermint 0.31.1", "tendermint-rpc", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util 0.7.12", "tracing", @@ -3480,7 +3477,7 @@ dependencies = [ "async-trait", "bytes", "cid", - "clap 4.5.20", + "clap 4.5.21", "ethers", "fendermint_crypto", "fendermint_testing", @@ -3503,7 +3500,7 @@ dependencies = [ "serde", "serde_json", "tendermint-rpc", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "tracing-subscriber", @@ -3546,7 +3543,7 @@ dependencies = [ "anyhow", "async-std", "cid", - "clap 4.5.20", + "clap 4.5.21", "futures", "fvm_ipld_blockstore", "fvm_ipld_car", @@ -3558,8 +3555,8 @@ dependencies = [ [[package]] name = "fil_actor_eam" -version = "12.0.0" -source = "git+https://github.com/filecoin-project/builtin-actors?tag=v12.0.0#b86938e410daebf27f9397fd622370a16b24f58b" +version = "15.0.0-rc1" +source = "git+https://github.com/filecoin-project/builtin-actors?tag=v15.0.0#831bf1b9fe281835409c39a8c454a68dd3200bbc" dependencies = [ "anyhow", "cid", @@ -3579,8 +3576,8 @@ dependencies = [ [[package]] name = "fil_actors_evm_shared" -version = "12.0.0" -source = "git+https://github.com/filecoin-project/builtin-actors?tag=v12.0.0#b86938e410daebf27f9397fd622370a16b24f58b" +version = "15.0.0-rc1" +source = "git+https://github.com/filecoin-project/builtin-actors?tag=v15.0.0#831bf1b9fe281835409c39a8c454a68dd3200bbc" dependencies = [ "fil_actors_runtime", "fvm_ipld_encoding", @@ -3592,8 +3589,8 @@ dependencies = [ [[package]] name = "fil_actors_runtime" -version = "12.0.0" -source = "git+https://github.com/filecoin-project/builtin-actors?tag=v12.0.0#b86938e410daebf27f9397fd622370a16b24f58b" +version = "15.0.0-rc1" +source = "git+https://github.com/filecoin-project/builtin-actors?tag=v15.0.0#831bf1b9fe281835409c39a8c454a68dd3200bbc" dependencies = [ "anyhow", "base64 0.21.7", @@ -3605,7 +3602,7 @@ dependencies = [ "fvm_ipld_bitfield", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.8.0", + "fvm_ipld_hamt", "fvm_sdk", "fvm_shared", "hex", @@ -3625,16 +3622,16 @@ dependencies = [ "serde", "serde_repr", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.7.2", "vm_api", ] [[package]] name = "filecoin-hashers" -version = "11.1.0" +version = "13.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a96fbc8232ba762026e6b4687dedf08ba1b3830148c919a158c21d7720fb62" +checksum = "85413176cea16bfe171caafab023044820c0033b243b535b19116776ffd3f285" dependencies = [ "anyhow", "bellperson", @@ -3652,9 +3649,9 @@ dependencies = [ [[package]] name = "filecoin-proofs" -version = "16.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a4daf099aade347b0f23c1dd5b644aad340a223d5b65c37840faedda3092f" +checksum = "096b8b483f6ed5823150daf6cd22ee8e32b3dabcb4fd70dab70044e73bcab107" dependencies = [ "anyhow", "bellperson", @@ -3686,15 +3683,13 @@ dependencies = [ [[package]] name = "filecoin-proofs-api" -version = "16.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64cef9a819a3125ab92269da594daf2f742a3f6b1e03a2493c13a0bda4514b03" +checksum = "3aea8140d1e2d2ac18347e6121ee24d0e903f9cfdc2eb2ee507932e352c9e7b8" dependencies = [ "anyhow", - "bellperson", "bincode", "blstrs 0.7.1", - "filecoin-hashers", "filecoin-proofs", "fr32", "lazy_static", @@ -3797,48 +3792,45 @@ dependencies = [ [[package]] name = "fr32" -version = "9.1.0" +version = "11.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca9913cf6179723cdc69827661a36d9ac3fea4c6c8c0ee71536417e5b2cf5d6" +checksum = "627a3f3108ee3287759a45f6d5aafe48b3017509df9b677115f88266d61e0815" dependencies = [ "anyhow", "blstrs 0.7.1", "byte-slice-cast", "byteorder", "ff 0.13.0", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "frc42_dispatch" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a1704e27193af21e58435974ff20f2be25cc59338afb89920abdb540ad3182b" +version = "7.0.0" +source = "git+https://github.com/filecoin-project/actors-utils?rev=0f8365151f44785f7bead4e5500258fd5c8944e6#0f8365151f44785f7bead4e5500258fd5c8944e6" dependencies = [ "frc42_hasher", "frc42_macros", "fvm_ipld_encoding", "fvm_sdk", "fvm_shared", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "frc42_hasher" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63f58bb50d36d90f5d0fee8391d6e1ed1a2b15ab8da6417dc42d7c78b587479d" +version = "5.0.0" +source = "git+https://github.com/filecoin-project/actors-utils?rev=0f8365151f44785f7bead4e5500258fd5c8944e6#0f8365151f44785f7bead4e5500258fd5c8944e6" dependencies = [ "fvm_sdk", "fvm_shared", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "frc42_macros" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9ce38a981bab5e0d3c0835baa86f83066afe9afaf0aec23cee421f6d8c628e" +version = "5.0.0" +source = "git+https://github.com/filecoin-project/actors-utils?rev=0f8365151f44785f7bead4e5500258fd5c8944e6#0f8365151f44785f7bead4e5500258fd5c8944e6" dependencies = [ "blake2b_simd", "frc42_hasher", @@ -4020,31 +4012,27 @@ dependencies = [ [[package]] name = "fvm" -version = "4.1.2" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aa28091abfa865076e1afc15f008ef3b26c7cfa11291f5e5742665cc4746969" +checksum = "7e2bc545e9b8a6c4e08ec78c712469c542b3e9310ae3091c1b60ddb48e20862b" dependencies = [ "ambassador", "anyhow", "arbitrary", - "blake2b_simd", - "byteorder", "cid", - "derive_more 0.99.18", + "derive_more", "filecoin-proofs-api", "fvm-wasm-instrument", "fvm_ipld_amt", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.9.0", + "fvm_ipld_hamt", "fvm_shared", "lazy_static", "log", "minstant", "multihash 0.18.1", "num-traits", - "num_cpus", - "once_cell", "quickcheck", "rand", "rayon", @@ -4052,10 +4040,9 @@ dependencies = [ "serde", "serde_tuple", "static_assertions", - "thiserror", + "thiserror 1.0.69", "wasmtime", "wasmtime-environ", - "wasmtime-runtime", "yastl", ] @@ -4068,7 +4055,7 @@ dependencies = [ "anyhow", "wasm-encoder 0.20.0", "wasmparser 0.95.0", - "wasmprinter", + "wasmprinter 0.2.80", ] [[package]] @@ -4084,7 +4071,7 @@ dependencies = [ "itertools 0.11.0", "once_cell", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4095,7 +4082,7 @@ checksum = "da94287cafa663c2e295fe45c4c9dbf5ab7b52f648568f9ae3823deaf9873a89" dependencies = [ "fvm_ipld_encoding", "serde", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.7.2", ] @@ -4121,7 +4108,7 @@ dependencies = [ "fvm_ipld_blockstore", "fvm_ipld_encoding", "serde", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.7.2", ] @@ -4139,27 +4126,7 @@ dependencies = [ "serde_ipld_dagcbor", "serde_repr", "serde_tuple", - "thiserror", -] - -[[package]] -name = "fvm_ipld_hamt" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a53e14c789449cec999ca0e93d909490c921b967adb7a9ec8f12286fb809bd" -dependencies = [ - "anyhow", - "byteorder", - "cid", - "forest_hash_utils", - "fvm_ipld_blockstore", - "fvm_ipld_encoding", - "libipld-core", - "multihash 0.18.1", - "once_cell", - "serde", - "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4179,30 +4146,29 @@ dependencies = [ "once_cell", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "fvm_sdk" -version = "4.1.2" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e58331aefe4b5592c59abfd4d94c62b23ea61d1e121202fbc2fb6abd2fcb165" +checksum = "3b2df521d41de41c34ac712720abdd6e29e68e3ed922554db70dbf8bc49a82b7" dependencies = [ - "byteorder", "cid", "fvm_ipld_encoding", "fvm_shared", "lazy_static", "log", "num-traits", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "fvm_shared" -version = "4.1.2" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f9a003148f592d1b24124b27c9a52f00902b23233515b45b65730dbbfc0c03" +checksum = "bb7838d3fc1eeeb47c7a8e32bdc3b37e6d806ac261cb96e38f15b503df671648" dependencies = [ "anyhow", "arbitrary", @@ -4224,8 +4190,8 @@ dependencies = [ "quickcheck", "serde", "serde_tuple", - "thiserror", - "unsigned-varint 0.7.2", + "thiserror 1.0.69", + "unsigned-varint 0.8.0", ] [[package]] @@ -4237,19 +4203,6 @@ 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.6.0", - "debugid", - "fxhash", - "serde", - "serde_json", -] - [[package]] name = "gcra" version = "0.4.0" @@ -4257,7 +4210,7 @@ source = "git+https://github.com/consensus-shipyard/gcra-rs.git?branch=main#621a dependencies = [ "dashmap", "rustc-hash 1.1.0", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4305,12 +4258,12 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" dependencies = [ "fallible-iterator", - "indexmap 1.9.3", + "indexmap 2.6.0", "stable_deref_trait", ] @@ -4406,19 +4359,14 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.13.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash 0.8.11", + "serde", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - [[package]] name = "hashbrown" version = "0.15.1" @@ -4482,6 +4430,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -4554,7 +4508,7 @@ dependencies = [ "once_cell", "rand", "socket2", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -4577,7 +4531,7 @@ dependencies = [ "rand", "resolv-conf", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -4938,6 +4892,12 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "ident_case" version = "1.0.1" @@ -5154,7 +5114,7 @@ dependencies = [ "fnv", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.9.0", + "fvm_ipld_hamt", "fvm_shared", "integer-encoding", "ipc-types", @@ -5168,7 +5128,7 @@ dependencies = [ "serde_tuple", "serde_with 2.3.3", "strum", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -5182,7 +5142,7 @@ dependencies = [ "base64 0.21.7", "bytes", "cid", - "clap 4.5.20", + "clap 4.5.21", "clap_complete", "env_logger 0.10.2", "ethers", @@ -5210,7 +5170,7 @@ dependencies = [ "serde_json", "serde_tuple", "strum", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-tungstenite 0.18.0", "toml 0.7.8", @@ -5273,7 +5233,7 @@ dependencies = [ "serde_with 2.3.3", "strum", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-tungstenite 0.18.0", "toml 0.8.19", @@ -5292,7 +5252,7 @@ dependencies = [ "fvm_ipld_amt", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.9.0", + "fvm_ipld_hamt", "fvm_shared", "hex", "indexmap 1.9.3", @@ -5302,7 +5262,7 @@ dependencies = [ "num-derive 0.3.3", "num-traits", "serde", - "thiserror", + "thiserror 1.0.69", "uint", ] @@ -5330,7 +5290,7 @@ dependencies = [ "serde_ipld_dagcbor", "serde_json", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "xsalsa20poly1305", "zeroize", @@ -5358,7 +5318,7 @@ dependencies = [ "env_logger 0.10.2", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.9.0", + "fvm_ipld_hamt", "fvm_shared", "gcra", "ipc-api", @@ -5378,7 +5338,7 @@ dependencies = [ "rand", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -5453,6 +5413,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -5598,7 +5567,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "regex-automata 0.4.8", + "regex-automata 0.4.9", ] [[package]] @@ -5640,7 +5609,7 @@ dependencies = [ "libipld-macro", "log", "multihash 0.18.1", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5651,7 +5620,7 @@ checksum = "77d98c9d1747aa5eef1cf099cd648c3fd2d235249f5fed07522aaebc348e423b" dependencies = [ "byteorder", "libipld-core", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5666,7 +5635,7 @@ dependencies = [ "multibase", "multihash 0.18.1", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5728,7 +5697,7 @@ dependencies = [ "multiaddr", "pin-project", "rw-stream-sink", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5755,7 +5724,7 @@ dependencies = [ "libipld", "libp2p", "prometheus", - "thiserror", + "thiserror 1.0.69", "tracing", "unsigned-varint 0.7.2", ] @@ -5794,7 +5763,7 @@ dependencies = [ "rw-stream-sink", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "tracing", "unsigned-varint 0.8.0", "void", @@ -5867,7 +5836,7 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec 0.3.1", "smallvec", - "thiserror", + "thiserror 1.0.69", "tracing", "void", ] @@ -5888,7 +5857,7 @@ dependencies = [ "rand", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "tracing", "zeroize", ] @@ -5917,7 +5886,7 @@ dependencies = [ "serde", "sha2 0.10.8", "smallvec", - "thiserror", + "thiserror 1.0.69", "tracing", "uint", "void", @@ -6002,7 +5971,7 @@ dependencies = [ "sha2 0.10.8", "snow", "static_assertions", - "thiserror", + "thiserror 1.0.69", "tracing", "x25519-dalek", "zeroize", @@ -6061,7 +6030,7 @@ dependencies = [ "ring 0.17.8", "rustls 0.23.16", "socket2", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -6153,7 +6122,7 @@ dependencies = [ "ring 0.17.8", "rustls 0.23.16", "rustls-webpki 0.101.7", - "thiserror", + "thiserror 1.0.69", "x509-parser", "yasna", ] @@ -6183,7 +6152,7 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror", + "thiserror 1.0.69", "tracing", "yamux 0.12.1", "yamux 0.13.3", @@ -6352,10 +6321,10 @@ dependencies = [ ] [[package]] -name = "mach" -version = "0.3.2" +name = "mach2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -6415,15 +6384,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "merkle-tree-rs" version = "0.1.0" @@ -6433,7 +6393,7 @@ dependencies = [ "render-tree", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6658,7 +6618,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6672,7 +6632,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -6870,24 +6830,15 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "object" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" -dependencies = [ - "crc32fast", - "hashbrown 0.13.2", - "indexmap 1.9.3", - "memchr", -] - [[package]] name = "object" version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ + "crc32fast", + "hashbrown 0.15.1", + "indexmap 2.6.0", "memchr", ] @@ -7230,7 +7181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.69", "ucd-trie", ] @@ -7457,6 +7408,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "postcard" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "serde", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -7528,7 +7491,7 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "thiserror", + "thiserror 1.0.69", "toml 0.5.11", ] @@ -7611,7 +7574,7 @@ dependencies = [ "parking_lot", "procfs", "protobuf", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7647,7 +7610,7 @@ dependencies = [ "lazy_static", "log", "prometheus", - "thiserror", + "thiserror 1.0.69", "tiny_http", ] @@ -7707,9 +7670,9 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" [[package]] name = "psm" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ "cc", ] @@ -7738,7 +7701,7 @@ dependencies = [ "asynchronous-codec 0.6.2", "bytes", "quick-protobuf", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.7.2", ] @@ -7751,7 +7714,7 @@ dependencies = [ "asynchronous-codec 0.7.0", "bytes", "quick-protobuf", - "thiserror", + "thiserror 1.0.69", "unsigned-varint 0.8.0", ] @@ -7789,9 +7752,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "futures-io", @@ -7801,26 +7764,29 @@ dependencies = [ "rustc-hash 2.0.0", "rustls 0.23.16", "socket2", - "thiserror", + "thiserror 2.0.3", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring 0.17.8", "rustc-hash 2.0.0", "rustls 0.23.16", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", + "web-time", ] [[package]] @@ -7949,18 +7915,18 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "regalloc2" -version = "0.9.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +checksum = "12908dbeb234370af84d0579b9f68258a0f67e201412dd9a2814e6f45b2fc0f0" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.14.5", "log", - "rustc-hash 1.1.0", + "rustc-hash 2.0.0", "slice-group-by", "smallvec", ] @@ -7973,7 +7939,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -7988,9 +7954,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -8194,7 +8160,7 @@ dependencies = [ "netlink-packet-route", "netlink-proto", "nix", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -8352,6 +8318,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -8422,7 +8391,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "cfg-if", - "derive_more 1.0.0", + "derive_more", "parity-scale-codec", "scale-info-derive", ] @@ -8575,9 +8544,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -8602,9 +8571,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", @@ -8828,9 +8797,9 @@ dependencies = [ [[package]] name = "sha2raw" -version = "11.1.0" +version = "13.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05310f1b1ceedfef5da1f80b6690342aec43713a79d1c303fa7b451f4e313de" +checksum = "73744f6a373edfc5624f452ec705a762e1154bb88c6699242bf37c56d99a6ebb" dependencies = [ "byteorder", "cpufeatures", @@ -8903,7 +8872,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -8943,6 +8912,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "snap" @@ -8987,7 +8959,7 @@ dependencies = [ "lalrpop", "lalrpop-util", "phf", - "thiserror", + "thiserror 1.0.69", "unicode-xid", ] @@ -9046,9 +9018,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "storage-proofs-core" -version = "16.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568106d9e94bd28082551873fe36e0295de24770e67cecdd25f345a1b39664f7" +checksum = "390385ae6787ad5d4312f3b6f0462c9f6615d9a7863376f8636604e6e43f3d28" dependencies = [ "aes", "anyhow", @@ -9076,14 +9048,14 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "storage-proofs-porep" -version = "16.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d3d0dd1f03de0f4a3ea54ceed7d79c62e3c7963abe2014db0934e828514b54" +checksum = "6dd8c6bbeb00933edb41152fdabf28d2519d6a1b6ea176a793e3198a07bb9acd" dependencies = [ "anyhow", "bellperson", @@ -9123,20 +9095,17 @@ dependencies = [ [[package]] name = "storage-proofs-post" -version = "16.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4817014940a69e7e84aa459afa3d7a0b81090a312d9918089f14810e988ac24" +checksum = "779fbfe1455a57d2a7fd655ce1b2e97bf9f238b65c71919e92aa9df8f2ced8b1" dependencies = [ "anyhow", "bellperson", - "blake2b_simd", "blstrs 0.7.1", "byteorder", "ff 0.13.0", "filecoin-hashers", - "fr32", "generic-array 0.14.7", - "hex", "log", "rayon", "serde", @@ -9146,9 +9115,9 @@ dependencies = [ [[package]] name = "storage-proofs-update" -version = "16.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5374a6a435d62e23700a08e124a8b4756ddd937fd6152289346481bfdbac21f5" +checksum = "ee4b391917dbcffa2297295971a02cc54aa19aa8b5378d539a435e78f8050153" dependencies = [ "anyhow", "bellperson", @@ -9275,7 +9244,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "url", "zip", ] @@ -9527,12 +9496,12 @@ dependencies = [ "subtle-encoding", "tendermint 0.31.1", "tendermint-config 0.31.1", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tracing", "url", - "uuid 0.8.2", + "uuid", "walkdir", ] @@ -9571,7 +9540,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] @@ -9585,6 +9563,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -9978,7 +9967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time", "tracing-subscriber", ] @@ -10089,7 +10078,7 @@ dependencies = [ "rand", "rustls 0.20.9", "sha1", - "thiserror", + "thiserror 1.0.69", "url", "utf-8", "webpki 0.22.4", @@ -10110,7 +10099,7 @@ dependencies = [ "rand", "rustls 0.21.12", "sha1", - "thiserror", + "thiserror 1.0.69", "url", "utf-8", ] @@ -10276,12 +10265,6 @@ dependencies = [ "serde", ] -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" - [[package]] name = "valuable" version = "0.1.0" @@ -10315,13 +10298,13 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vm_api" version = "1.0.0" -source = "git+https://github.com/filecoin-project/builtin-actors?tag=v12.0.0#b86938e410daebf27f9397fd622370a16b24f58b" +source = "git+https://github.com/filecoin-project/builtin-actors?tag=v15.0.0#831bf1b9fe281835409c39a8c454a68dd3200bbc" dependencies = [ "anyhow", "cid", "fvm_ipld_blockstore", "fvm_ipld_encoding", - "fvm_ipld_hamt 0.8.0", + "fvm_ipld_hamt", "fvm_shared", "num-derive 0.3.3", "num-traits", @@ -10439,9 +10422,9 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.31.1" +version = "0.217.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" +checksum = "7b88b0814c9a2b323a9b46c687e726996c255ac8b64aa237dd11c81ed4854760" dependencies = [ "leb128", ] @@ -10458,23 +10441,27 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.110.0" +version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dfcdb72d96f01e6c85b6bf20102e7423bdbaad5c337301bab2bbf253d26413c" +checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ + "bitflags 2.6.0", "indexmap 2.6.0", "semver", ] [[package]] name = "wasmparser" -version = "0.121.2" +version = "0.217.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" +checksum = "ca917a21307d3adf2b9857b94dd05ebf8496bdcff4437a9b9fb3899d3e6c74e7" dependencies = [ + "ahash 0.8.11", "bitflags 2.6.0", + "hashbrown 0.14.5", "indexmap 2.6.0", "semver", + "serde", ] [[package]] @@ -10487,200 +10474,191 @@ dependencies = [ "wasmparser 0.121.2", ] +[[package]] +name = "wasmprinter" +version = "0.217.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dc568b3e0d47e8f96ea547c90790cfa783f0205160c40de894a427114185ce" +dependencies = [ + "anyhow", + "termcolor", + "wasmparser 0.217.0", +] + [[package]] name = "wasmtime" -version = "12.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e87029cc5760db9a3774aff4708596fe90c20ed2baeef97212e98b812fd0fc" +checksum = "f38dbf42dc56a6fe41ccd77211ea8ec90855de05e52cd00df5a0a3bca87d6147" dependencies = [ "anyhow", - "bincode", + "bitflags 2.6.0", "bumpalo", + "cc", "cfg-if", - "fxprof-processed-profile", + "hashbrown 0.14.5", "indexmap 2.6.0", "libc", + "libm", "log", - "object 0.31.1", + "mach2", + "memfd", + "object", "once_cell", "paste", + "postcard", "psm", "rayon", + "rustix", "serde", - "serde_json", + "serde_derive", + "smallvec", + "sptr", "target-lexicon", - "wasm-encoder 0.31.1", - "wasmparser 0.110.0", + "wasmparser 0.217.0", + "wasmtime-asm-macros", + "wasmtime-component-macro", "wasmtime-cranelift", "wasmtime-environ", - "wasmtime-jit", - "wasmtime-runtime", - "windows-sys 0.48.0", + "wasmtime-jit-icache-coherence", + "wasmtime-slab", + "wasmtime-versioned-export-macros", + "windows-sys 0.52.0", ] [[package]] name = "wasmtime-asm-macros" -version = "12.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d84f68d831200016e120f2ee79d81b50cf4c4123112914aefb168d036d445d" +checksum = "30e0c7f9983c2d60109a939d9ab0e0df301901085c3608e1c22c27c98390a027" dependencies = [ "cfg-if", ] [[package]] -name = "wasmtime-cranelift" -version = "12.0.2" +name = "wasmtime-component-macro" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae8ed7a4845f22be6b1ad80f33f43fa03445b03a02f2d40dca695129769cd1a" +checksum = "0929ffffaca32dd8770b56848c94056036963ca05de25fb47cac644e20262168" dependencies = [ "anyhow", - "cranelift-codegen", - "cranelift-control", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli 0.27.3", - "log", - "object 0.31.1", - "target-lexicon", - "thiserror", - "wasmparser 0.110.0", - "wasmtime-cranelift-shared", - "wasmtime-environ", - "wasmtime-versioned-export-macros", + "proc-macro2", + "quote", + "syn 2.0.87", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", ] [[package]] -name = "wasmtime-cranelift-shared" -version = "12.0.2" +name = "wasmtime-component-util" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b17099f9320a1c481634d88101258917d5065717cf22b04ed75b1a8ea062b4" +checksum = "fdc29d2b56629d66d2fd791d1b46471d0016e0d684ed2dc299e870d127082268" + +[[package]] +name = "wasmtime-cranelift" +version = "25.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8c8af1197703f4de556a274384adf5db36a146f9892bc9607bad16881e75c80" dependencies = [ "anyhow", + "cfg-if", "cranelift-codegen", "cranelift-control", + "cranelift-entity", + "cranelift-frontend", "cranelift-native", - "gimli 0.27.3", - "object 0.31.1", + "cranelift-wasm", + "gimli 0.29.0", + "log", + "object", + "smallvec", "target-lexicon", + "thiserror 1.0.69", + "wasmparser 0.217.0", "wasmtime-environ", + "wasmtime-versioned-export-macros", ] [[package]] name = "wasmtime-environ" -version = "12.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b9227b1001229ff125e0f76bf1d5b9dc4895e6bcfd5cc35a56f84685964ec7" +checksum = "3f1b5af7bac868c5bce3b78a366a10677caacf6e6467c156301297e36ed31f3e" dependencies = [ "anyhow", + "cranelift-bitset", "cranelift-entity", - "gimli 0.27.3", + "gimli 0.29.0", "indexmap 2.6.0", "log", - "object 0.31.1", + "object", + "postcard", "serde", + "serde_derive", "target-lexicon", - "thiserror", - "wasmparser 0.110.0", + "wasm-encoder 0.217.0", + "wasmparser 0.217.0", + "wasmprinter 0.217.0", "wasmtime-types", ] -[[package]] -name = "wasmtime-jit" -version = "12.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cce606b392c321d7272928003543447119ef937a9c3ebfce5c4bb0bf6b0f5bac" -dependencies = [ - "addr2line 0.20.0", - "anyhow", - "bincode", - "cfg-if", - "cpp_demangle", - "gimli 0.27.3", - "log", - "object 0.31.1", - "rustc-demangle", - "rustix", - "serde", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.48.0", -] - -[[package]] -name = "wasmtime-jit-debug" -version = "12.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef27ea6c34ef888030d15560037fe7ef27a5609fbbba8e1e3e41dc4245f5bb2" -dependencies = [ - "once_cell", - "wasmtime-versioned-export-macros", -] - [[package]] name = "wasmtime-jit-icache-coherence" -version = "12.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b59f94b0409221873565419168e20b5aedf18c4bd64de5c38acf8f0634efeee3" +checksum = "5d7314e32c624f645ad7d6b9fc3ac89eb7d2b9aa06695d6445cec087958ec27d" dependencies = [ + "anyhow", "cfg-if", "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] -name = "wasmtime-runtime" -version = "12.0.2" +name = "wasmtime-slab" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceb587a88ae5bb6ca248455a391aff29ac63329a404b2cdea36d91267c797db4" -dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap 2.6.0", - "libc", - "log", - "mach", - "memfd", - "memoffset", - "paste", - "rand", - "rustix", - "sptr", - "wasm-encoder 0.31.1", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-versioned-export-macros", - "windows-sys 0.48.0", -] +checksum = "f75cba1a8cc327839f493cfc3036c9de3d077d59ab76296bc710ee5f95be5391" [[package]] name = "wasmtime-types" -version = "12.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77943729d4b46141538e8d0b6168915dc5f88575ecdfea26753fd3ba8bab244a" +checksum = "c6d83a7816947a4974e2380c311eacb1db009b8bad86081dc726b705603c93c7" dependencies = [ + "anyhow", "cranelift-entity", "serde", - "thiserror", - "wasmparser 0.110.0", + "serde_derive", + "smallvec", + "wasmparser 0.217.0", ] [[package]] name = "wasmtime-versioned-export-macros" -version = "12.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca7af9bb3ee875c4907835e607a275d10b04d15623d3aebe01afe8fbd3f85050" +checksum = "6879a8e168aef3fe07335343b7fbede12fa494215e83322e173d4018e124a846" dependencies = [ "proc-macro2", "quote", "syn 2.0.87", ] +[[package]] +name = "wasmtime-wit-bindgen" +version = "25.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f571f63ac1d532e986eb3973bbef3a45e4ae83de521a8d573b0fe0594dc9608" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap 2.6.0", + "wit-parser", +] + [[package]] name = "web-sys" version = "0.3.72" @@ -10977,6 +10955,24 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-parser" +version = "0.217.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb893dcd6d370cfdf19a0d9adfcd403efb8e544e1a0ea3a8b81a21fe392eaa78" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.6.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.217.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -11002,7 +10998,7 @@ dependencies = [ "pharos", "rustc_version", "send_wrapper 0.6.0", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -11042,7 +11038,7 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] diff --git a/Cargo.toml b/Cargo.toml index 966fd4c44..c226151a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -194,9 +194,10 @@ openssl = { version = "0.10", features = ["vendored"] } # pull in crates as transitive dependencies that do not support Wasm architector. If this # happens, try removing "crypto" feature from fvm_shared dependency in contracts/binding/Cargo.toml # and run `cargo build`. Then add the "crypto" feature back and run `cargo build` again. -fvm = { version = "4.1.0", default-features = false } # no opencl feature or it fails on CI -fvm_shared = { version = "4.1.0" } -fvm_sdk = { version = "4.1.0" } +fvm = { version = "4.4.0", features = ["verify-signature"], default-features = false } # no opencl feature or it fails on CI +fvm_shared = { version = "4.4.0" } +fvm_sdk = { version = "4.4.0" } + fvm_ipld_blockstore = "0.2.0" fvm_ipld_car = "0.7.1" @@ -216,9 +217,9 @@ fvm_ipld_amt = "0.6.2" # to cut down the time it takes to compile everything. However, some projects have a "shared" part, # and this copy-paste is clunky, so at least for those that have it, we should use it. # Keep the version here in sync with the Makefile! -fil_actors_evm_shared = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v12.0.0" } -fil_actor_eam = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v12.0.0" } -fil_actors_runtime = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v12.0.0" } +fil_actors_evm_shared = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v15.0.0" } +fil_actor_eam = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v15.0.0" } +fil_actors_runtime = { git = "https://github.com/filecoin-project/builtin-actors", tag = "v15.0.0" } fendermint_actor_eam = { path = "./fendermint/actors/eam" } @@ -227,7 +228,7 @@ cid = { version = "0.10.1", default-features = false, features = [ "std", ] } -frc42_dispatch = "6.0.0" +frc42_dispatch = { git = "https://github.com/filecoin-project/actors-utils", rev = "0f8365151f44785f7bead4e5500258fd5c8944e6" } # Using the same tendermint-rs dependency as tower-abci. From both we are interested in v037 modules. tower-abci = { version = "0.7" } @@ -254,3 +255,4 @@ opt-level = "z" strip = true codegen-units = 1 incremental = false + diff --git a/fendermint/Makefile b/fendermint/Makefile index 92a668994..6fbe3fa3d 100644 --- a/fendermint/Makefile +++ b/fendermint/Makefile @@ -1,6 +1,6 @@ .PHONY: all build test lint license check-fmt check-clippy actor-bundle -BUILTIN_ACTORS_TAG ?= v12.0.0 +BUILTIN_ACTORS_TAG ?= v15.0.0 BUILTIN_ACTORS_BUNDLE := $(PWD)/builtin-actors/output/bundle.car CUSTOM_ACTORS_BUNDLE := $(PWD)/actors/output/custom_actors_bundle.car @@ -53,7 +53,11 @@ e2e-only: cd testing/smoke-test && cargo make --profile $(PROFILE) cd testing/snapshot-test && cargo make --profile $(PROFILE) cd testing/graph-test && cargo make --profile $(PROFILE) - PROFILE=$(PROFILE) cargo test --locked --package fendermint_materializer +ifeq ($(PROFILE), release) + cargo test --release --locked --package fendermint_materializer +else + cargo test --locked --package fendermint_materializer +endif clean: cargo clean diff --git a/fendermint/testing/graph-test/Makefile.toml b/fendermint/testing/graph-test/Makefile.toml index 3fe2c024e..0966d5e0a 100644 --- a/fendermint/testing/graph-test/Makefile.toml +++ b/fendermint/testing/graph-test/Makefile.toml @@ -30,7 +30,7 @@ run_task = { name = [ [tasks.greeter-example] script = """ cd ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/fendermint -cargo run -p fendermint_eth_api --example greeter -- \ +cargo run --profile ${PROFILE} -p fendermint_eth_api --example greeter -- \ --secret-key testing/graph-test/test-data/keys/veronica.sk \ --out ${TEST_DATA_DIR}/greeter.json \ ${VERBOSITY} From 9f87b096c089b2f3078fa013c4a66054324504d3 Mon Sep 17 00:00:00 2001 From: cryptoAtwill <108330426+cryptoAtwill@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:11:55 +0800 Subject: [PATCH 15/16] fix: fix inconsistent network btw eth and fendermint (#1212) --- infra/fendermint/scripts/ethapi.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/infra/fendermint/scripts/ethapi.toml b/infra/fendermint/scripts/ethapi.toml index 6a3cafc06..d68d770f2 100644 --- a/infra/fendermint/scripts/ethapi.toml +++ b/infra/fendermint/scripts/ethapi.toml @@ -12,6 +12,7 @@ docker run \ --env LOG_LEVEL=${ETHAPI_LOG_LEVEL} \ --env RUST_BACKTRACE=1 \ ${FM_DOCKER_IMAGE} \ + --network=${FM_NETWORK} \ ${CMD} """ dependencies = ["docker-network-create"] From bcc73c9f09e92c15b492e4924c6c2c3d6b446646 Mon Sep 17 00:00:00 2001 From: Karel Moravec Date: Mon, 25 Nov 2024 17:57:12 +0100 Subject: [PATCH 16/16] fix: improve Gas Fee Estimation by Integrating Filecoin's EIP-1559-Compatible APIs (#1182) --- .../manager/evm/gas_estimator_middleware.rs | 160 ++++++++++++++ ipc/provider/src/manager/evm/manager.rs | 209 +++++------------- ipc/provider/src/manager/evm/mod.rs | 1 + 3 files changed, 211 insertions(+), 159 deletions(-) create mode 100644 ipc/provider/src/manager/evm/gas_estimator_middleware.rs diff --git a/ipc/provider/src/manager/evm/gas_estimator_middleware.rs b/ipc/provider/src/manager/evm/gas_estimator_middleware.rs new file mode 100644 index 000000000..e1499b863 --- /dev/null +++ b/ipc/provider/src/manager/evm/gas_estimator_middleware.rs @@ -0,0 +1,160 @@ +// Copyright 2022-2024 Protocol Labs +// SPDX-License-Identifier: MIT + +use async_trait::async_trait; +use ethers::{ + core::types::{transaction::eip2718::TypedTransaction, BlockId, U256}, + providers::{Middleware, MiddlewareError, PendingTransaction, ProviderError}, +}; +use serde_json::json; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum Eip1559GasEstimatorError { + #[error("{0}")] + MiddlewareError(M::Error), + #[error("{0}")] + FailedToEstimateGas(String), +} + +impl Eip1559GasEstimatorError { + pub fn failed_to_estimate_gas_not_supported() -> Self { + Eip1559GasEstimatorError::FailedToEstimateGas( + "Only EIP-1559 transactions are supported".to_string(), + ) + } +} + +impl MiddlewareError for Eip1559GasEstimatorError { + type Inner = M::Error; + + fn from_err(src: M::Error) -> Self { + Eip1559GasEstimatorError::MiddlewareError(src) + } + + fn as_inner(&self) -> Option<&Self::Inner> { + match self { + Eip1559GasEstimatorError::MiddlewareError(e) => Some(e), + _ => None, + } + } +} + +pub struct GasFeeEstimate { + pub max_priority_fee_per_gas: U256, + pub max_fee_per_gas: U256, +} + +#[derive(Debug)] +pub struct Eip1559GasEstimatorMiddleware { + inner: M, +} + +impl Eip1559GasEstimatorMiddleware { + pub fn new(inner: M) -> Self { + Self { inner } + } + + pub async fn max_priority_fee_per_gas(&self) -> Result { + self.inner + .provider() + .request("eth_maxPriorityFeePerGas", json!([])) + .await + } + + pub async fn base_fee_per_gas(&self) -> Result { + let latest_block = self + .inner + .provider() + .get_block(ethers::types::BlockNumber::Latest) + .await? + .ok_or_else(|| ProviderError::CustomError("Latest block not found".to_string()))?; + + latest_block + .base_fee_per_gas + .ok_or_else(|| ProviderError::CustomError("EIP-1559 not activated".to_string())) + } + + pub async fn estimate_gas_fees(&self) -> Result> { + let max_priority_fee_per_gas = self + .max_priority_fee_per_gas() + .await + .map_err(|e| Eip1559GasEstimatorError::FailedToEstimateGas(e.to_string()))?; + let base_fee_per_gas = self + .base_fee_per_gas() + .await + .map_err(|e| Eip1559GasEstimatorError::FailedToEstimateGas(e.to_string()))?; + + // Buffer the base fee by multiplying by 2 to account for potential cumulative increases. + let base_fee_per_gas_surged = base_fee_per_gas * 2; + let max_fee_per_gas = max_priority_fee_per_gas + base_fee_per_gas_surged; + + Ok(GasFeeEstimate { + max_priority_fee_per_gas, + max_fee_per_gas, + }) + } +} + +#[async_trait] +impl Middleware for Eip1559GasEstimatorMiddleware { + type Error = Eip1559GasEstimatorError; + type Provider = M::Provider; + type Inner = M; + + fn inner(&self) -> &M { + &self.inner + } + + /// Fills the transaction with EIP-1559 gas fees. + async fn fill_transaction( + &self, + tx: &mut TypedTransaction, + block: Option, + ) -> Result<(), Self::Error> { + if let TypedTransaction::Eip1559(inner) = tx { + let gas_fees = self.estimate_gas_fees().await?; + + // Set the gas fees directly on the transaction. + let tx_req = inner + .clone() + .max_fee_per_gas(gas_fees.max_fee_per_gas) + .max_priority_fee_per_gas(gas_fees.max_priority_fee_per_gas); + + *tx = TypedTransaction::Eip1559(tx_req); + } else { + return Err(Eip1559GasEstimatorError::failed_to_estimate_gas_not_supported()); + } + + // Delegate to the inner middleware for filling remaining transaction fields. + self.inner() + .fill_transaction(tx, block) + .await + .map_err(Eip1559GasEstimatorError::MiddlewareError) + } + + /// Sends a transaction with EIP-1559 gas fees. + async fn send_transaction + Send + Sync>( + &self, + tx: T, + block: Option, + ) -> Result, Self::Error> { + let mut tx = tx.into(); + + // Automatically fill EIP-1559 gas fees if they are not already set. + if let TypedTransaction::Eip1559(ref mut inner) = tx { + if inner.max_fee_per_gas.is_none() || inner.max_priority_fee_per_gas.is_none() { + // Populate missing gas fees with `fill_transaction`. + self.fill_transaction(&mut tx, block).await?; + } + } else { + return Err(Eip1559GasEstimatorError::failed_to_estimate_gas_not_supported()); + } + + // Proceed to send the transaction with the inner middleware. + self.inner() + .send_transaction(tx, block) + .await + .map_err(Eip1559GasEstimatorError::MiddlewareError) + } +} diff --git a/ipc/provider/src/manager/evm/manager.rs b/ipc/provider/src/manager/evm/manager.rs index ac9b0766f..fe393242f 100644 --- a/ipc/provider/src/manager/evm/manager.rs +++ b/ipc/provider/src/manager/evm/manager.rs @@ -29,6 +29,7 @@ use crate::manager::subnet::{ BottomUpCheckpointRelayer, GetBlockHashResult, SubnetGenesisInfo, TopDownFinalityQuery, TopDownQueryPayload, }; + use crate::manager::{EthManager, SubnetManager}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; @@ -38,8 +39,9 @@ use ethers::prelude::k256::ecdsa::SigningKey; use ethers::prelude::{Signer, SignerMiddleware}; use ethers::providers::{Authorization, Http, Middleware, Provider}; use ethers::signers::{LocalWallet, Wallet}; -use ethers::types::{BlockId, Eip1559TransactionRequest, ValueOrArray, I256, U256}; +use ethers::types::{Eip1559TransactionRequest, ValueOrArray, U256}; +use super::gas_estimator_middleware::Eip1559GasEstimatorMiddleware; use fvm_shared::clock::ChainEpoch; use fvm_shared::{address::Address, econ::TokenAmount}; use ipc_api::checkpoint::{ @@ -53,7 +55,8 @@ use ipc_wallet::{EthKeyAddress, EvmKeyStore, PersistentKeyStore}; use num_traits::ToPrimitive; use std::result; -pub type DefaultSignerMiddleware = SignerMiddleware, Wallet>; +pub type SignerWithFeeEstimatorMiddleware = + Eip1559GasEstimatorMiddleware, Wallet>>; /// Default polling time used by the Ethers provider to check for pending /// transactions and events. Default is 7, and for our child subnets we @@ -282,7 +285,7 @@ impl SubnetManager for EthSubnetManager { tracing::info!("creating subnet on evm with params: {params:?}"); - let signer = self.get_signer(&from)?; + let signer = self.get_signer_with_fee_estimator(&from)?; let signer = Arc::new(signer); let registry_contract = register_subnet_facet::RegisterSubnetFacet::new( self.ipc_contract_info.registry_addr, @@ -290,8 +293,7 @@ impl SubnetManager for EthSubnetManager { ); let call = - call_with_premium_and_pending_block(signer, registry_contract.new_subnet_actor(params)) - .await?; + extend_call_with_pending_block(registry_contract.new_subnet_actor(params)).await?; // TODO: Edit call to get estimate premium let pending_tx = call.send().await?; // We need the retry to parse the deployment event. At the time of this writing, it's a bug @@ -342,17 +344,14 @@ impl SubnetManager for EthSubnetManager { "interacting with evm subnet contract: {address:} with collateral: {collateral:}" ); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); let mut txn = contract.join(ethers::types::Bytes::from(pub_key), U256::from(collateral)); txn = self.handle_txn_token(&subnet, txn, collateral, 0).await?; - let txn = call_with_premium_and_pending_block(signer, txn).await?; - - // Use the pending state to get the nonce because there could have been a pre-fund. Best would be to use this for everything. - let txn = txn.block(BlockId::Number(ethers::types::BlockNumber::Pending)); + let txn = extend_call_with_pending_block(txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -368,14 +367,14 @@ impl SubnetManager for EthSubnetManager { let address = contract_address_from_subnet(&subnet)?; tracing::info!("interacting with evm subnet contract: {address:} with balance: {balance:}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); let mut txn = contract.pre_fund(U256::from(balance)); txn = self.handle_txn_token(&subnet, txn, 0, balance).await?; - let txn = call_with_premium_and_pending_block(signer, txn).await?; + let txn = extend_call_with_pending_block(txn).await?; txn.send().await?; Ok(()) @@ -395,11 +394,11 @@ impl SubnetManager for EthSubnetManager { .to_u128() .ok_or_else(|| anyhow!("invalid pre-release amount"))?; - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_and_pending_block(signer, contract.pre_release(amount.into())) + extend_call_with_pending_block(contract.pre_release(amount.into())) .await? .send() .await? @@ -419,14 +418,14 @@ impl SubnetManager for EthSubnetManager { "interacting with evm subnet contract: {address:} with collateral: {collateral:}" ); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); let mut txn = contract.stake(U256::from(collateral)); txn = self.handle_txn_token(&subnet, txn, collateral, 0).await?; - let txn = call_with_premium_and_pending_block(signer, txn).await?; + let txn = extend_call_with_pending_block(txn).await?; txn.send().await?.await?; @@ -449,12 +448,11 @@ impl SubnetManager for EthSubnetManager { "interacting with evm subnet contract: {address:} with collateral: {collateral:}" ); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - let txn = call_with_premium_and_pending_block(signer, contract.unstake(collateral.into())) - .await?; + let txn = extend_call_with_pending_block(contract.unstake(collateral.into())).await?; txn.send().await?.await?; Ok(()) @@ -464,11 +462,11 @@ impl SubnetManager for EthSubnetManager { let address = contract_address_from_subnet(&subnet)?; tracing::info!("leaving evm subnet: {subnet:} at contract: {address:}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_and_pending_block(signer, contract.leave()) + extend_call_with_pending_block(contract.leave()) .await? .send() .await? @@ -481,11 +479,11 @@ impl SubnetManager for EthSubnetManager { let address = contract_address_from_subnet(&subnet)?; tracing::info!("kill evm subnet: {subnet:} at contract: {address:}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_and_pending_block(signer, contract.kill()) + extend_call_with_pending_block(contract.kill()) .await? .send() .await? @@ -522,11 +520,11 @@ impl SubnetManager for EthSubnetManager { let address = contract_address_from_subnet(&subnet)?; tracing::info!("claim collateral evm subnet: {subnet:} at contract: {address:}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let contract = subnet_actor_reward_facet::SubnetActorRewardFacet::new(address, signer.clone()); - call_with_premium_and_pending_block(signer, contract.claim()) + extend_call_with_pending_block(contract.claim()) .await? .send() .await? @@ -555,7 +553,7 @@ impl SubnetManager for EthSubnetManager { let evm_subnet_id = gateway_manager_facet::SubnetID::try_from(&subnet)?; tracing::debug!("evm subnet id to fund: {evm_subnet_id:?}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let gateway_contract = gateway_manager_facet::GatewayManagerFacet::new( self.ipc_contract_info.gateway_addr, signer.clone(), @@ -566,7 +564,7 @@ impl SubnetManager for EthSubnetManager { gateway_manager_facet::FvmAddress::try_from(to)?, ); txn.tx.set_value(value); - let txn = call_with_premium_and_pending_block(signer, txn).await?; + let txn = extend_call_with_pending_block(txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -584,7 +582,7 @@ impl SubnetManager for EthSubnetManager { let value = fil_amount_to_eth_amount(&amount)?; - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let subnet_supply_source = self.get_subnet_supply_source(&subnet).await?; if subnet_supply_source.kind != AssetKind::ERC20 { @@ -600,7 +598,7 @@ impl SubnetManager for EthSubnetManager { let token_contract = IERC20::new(token_address, signer.clone()); let txn = token_contract.approve(self.ipc_contract_info.gateway_addr, value); - let txn = call_with_premium_and_pending_block(signer, txn).await?; + let txn = extend_call_with_pending_block(txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -621,7 +619,7 @@ impl SubnetManager for EthSubnetManager { let value = fil_amount_to_eth_amount(&amount)?; let evm_subnet_id = gateway_manager_facet::SubnetID::try_from(&subnet)?; - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let gateway_contract = gateway_manager_facet::GatewayManagerFacet::new( self.ipc_contract_info.gateway_addr, signer.clone(), @@ -632,7 +630,7 @@ impl SubnetManager for EthSubnetManager { gateway_manager_facet::FvmAddress::try_from(to)?, value, ); - let txn = call_with_premium_and_pending_block(signer, txn).await?; + let txn = extend_call_with_pending_block(txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -655,14 +653,14 @@ impl SubnetManager for EthSubnetManager { tracing::info!("release with evm gateway contract: {gateway_addr:} with value: {value:}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let gateway_contract = gateway_manager_facet::GatewayManagerFacet::new( self.ipc_contract_info.gateway_addr, signer.clone(), ); let mut txn = gateway_contract.release(gateway_manager_facet::FvmAddress::try_from(to)?); txn.tx.set_value(value); - let txn = call_with_premium_and_pending_block(signer, txn).await?; + let txn = extend_call_with_pending_block(txn).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -688,7 +686,7 @@ impl SubnetManager for EthSubnetManager { tracing::info!("propagate postbox evm gateway contract: {gateway_addr:} with message key: {postbox_msg_key:?}"); - let signer = Arc::new(self.get_signer(&from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let gateway_contract = gateway_messenger_facet::GatewayMessengerFacet::new( self.ipc_contract_info.gateway_addr, signer.clone(), @@ -697,7 +695,7 @@ impl SubnetManager for EthSubnetManager { let mut key = [0u8; 32]; key.copy_from_slice(&postbox_msg_key); - call_with_premium_and_pending_block(signer, gateway_contract.propagate(key)) + extend_call_with_pending_block(gateway_contract.propagate(key)) .await? .send() .await?; @@ -707,13 +705,10 @@ impl SubnetManager for EthSubnetManager { /// Send value between two addresses in a subnet async fn send_value(&self, from: Address, to: Address, amount: TokenAmount) -> Result<()> { - let signer = Arc::new(self.get_signer(&from)?); - let (fee, fee_cap) = premium_estimation(signer.clone()).await?; + let signer = Arc::new(self.get_signer_with_fee_estimator(&from)?); let tx = Eip1559TransactionRequest::new() .to(payload_to_evm_address(to.payload())?) - .value(fil_to_eth_amount(&amount)?) - .max_priority_fee_per_gas(fee) - .max_fee_per_gas(fee_cap); + .value(fil_to_eth_amount(&amount)?); let tx_pending = signer.send_transaction(tx, None).await?; @@ -832,11 +827,11 @@ impl SubnetManager for EthSubnetManager { return Err(anyhow!("wrong format for bootstrap endpoint")); } - let signer = Arc::new(self.get_signer(from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); - call_with_premium_and_pending_block(signer, contract.add_bootstrap_node(endpoint)) + extend_call_with_pending_block(contract.add_bootstrap_node(endpoint)) .await? .send() .await? @@ -888,7 +883,7 @@ impl SubnetManager for EthSubnetManager { let address = contract_address_from_subnet(subnet)?; tracing::info!("interacting with evm subnet contract: {address:}"); - let signer = Arc::new(self.get_signer(from)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(from)?); let contract = subnet_actor_manager_facet::SubnetActorManagerFacet::new(address, signer.clone()); @@ -913,7 +908,7 @@ impl SubnetManager for EthSubnetManager { tracing::debug!("from address: {:?}", from); let call = contract.set_federated_power(addresses, pubkeys, power_u256); - let txn = call_with_premium_and_pending_block(signer, call).await?; + let txn = extend_call_with_pending_block(call).await?; let pending_tx = txn.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; block_number_from_receipt(receipt) @@ -1083,7 +1078,10 @@ impl EthSubnetManager { /// Get the ethers singer instance. /// We use filecoin addresses throughout our whole code-base /// and translate them to evm addresses when relevant. - fn get_signer(&self, addr: &Address) -> Result { + fn get_signer_with_fee_estimator( + &self, + addr: &Address, + ) -> Result { // convert to its underlying eth address let addr = payload_to_evm_address(addr.payload())?; let keystore = self.keystore()?; @@ -1094,8 +1092,10 @@ impl EthSubnetManager { let wallet = LocalWallet::from_bytes(private_key.private_key())? .with_chain_id(self.ipc_contract_info.chain_id); + use super::gas_estimator_middleware::Eip1559GasEstimatorMiddleware; + let signer = SignerMiddleware::new(self.ipc_contract_info.provider.clone(), wallet); - Ok(signer) + Ok(Eip1559GasEstimatorMiddleware::new(signer)) } pub fn from_subnet_with_wallet_store( @@ -1172,13 +1172,13 @@ impl BottomUpCheckpointRelayer for EthSubnetManager { let checkpoint = subnet_actor_checkpointing_facet::BottomUpCheckpoint::try_from(checkpoint)?; - let signer = Arc::new(self.get_signer(submitter)?); + let signer = Arc::new(self.get_signer_with_fee_estimator(submitter)?); let contract = subnet_actor_checkpointing_facet::SubnetActorCheckpointingFacet::new( address, signer.clone(), ); let call = contract.submit_checkpoint(checkpoint, signatories, signatures); - let call = call_with_premium_and_pending_block(signer, call).await?; + let call = extend_call_with_pending_block(call).await?; let pending_tx = call.send().await?; let receipt = pending_tx.retries(TRANSACTION_RECEIPT_RETRIES).await?; @@ -1277,126 +1277,17 @@ impl BottomUpCheckpointRelayer for EthSubnetManager { Ok(epoch as ChainEpoch) } } - /// Takes a `FunctionCall` input and returns a new instance with an estimated optimal `gas_premium`. /// The function also uses the pending block number to help retrieve the latest nonce /// via `get_transaction_count` with the `pending` parameter. -pub(crate) async fn call_with_premium_and_pending_block( - signer: Arc, +pub(crate) async fn extend_call_with_pending_block( call: ethers_contract::FunctionCall, ) -> Result> where B: std::borrow::Borrow, M: ethers::abi::Detokenize, { - let (max_priority_fee_per_gas, _) = premium_estimation(signer).await?; - Ok(call - .gas_price(max_priority_fee_per_gas) - .block(ethers::types::BlockNumber::Pending)) -} - -/// Returns an estimation of an optimal `gas_premium` and `gas_fee_cap` -/// for a transaction considering the average premium, base_fee and reward percentile from -/// past blocks -/// This is adaptation of ethers' `eip1559_default_estimator`: -/// https://github.com/gakonst/ethers-rs/blob/5dcd3b7e754174448f9a8cbfc0523896609629f9/ethers-core/src/utils/mod.rs#L476 -async fn premium_estimation( - signer: Arc, -) -> Result<(ethers::types::U256, ethers::types::U256)> { - let base_fee_per_gas = signer - .get_block(ethers::types::BlockNumber::Latest) - .await? - .ok_or_else(|| anyhow!("Latest block not found"))? - .base_fee_per_gas - .ok_or_else(|| anyhow!("EIP-1559 not activated"))?; - - let fee_history = signer - .fee_history( - ethers::utils::EIP1559_FEE_ESTIMATION_PAST_BLOCKS, - ethers::types::BlockNumber::Latest, - &[ethers::utils::EIP1559_FEE_ESTIMATION_REWARD_PERCENTILE], - ) - .await?; - - let max_priority_fee_per_gas = estimate_priority_fee(fee_history.reward); //overestimate? - let potential_max_fee = base_fee_surged(base_fee_per_gas); - let max_fee_per_gas = if max_priority_fee_per_gas > potential_max_fee { - max_priority_fee_per_gas + potential_max_fee - } else { - potential_max_fee - }; - - Ok((max_priority_fee_per_gas, max_fee_per_gas)) -} - -/// Implementation borrowed from -/// https://github.com/gakonst/ethers-rs/blob/ethers-v2.0.8/ethers-core/src/utils/mod.rs#L582 -/// Refer to the implementation for unit tests -fn base_fee_surged(base_fee_per_gas: U256) -> U256 { - if base_fee_per_gas <= U256::from(40_000_000_000u64) { - base_fee_per_gas * 2 - } else if base_fee_per_gas <= U256::from(100_000_000_000u64) { - base_fee_per_gas * 16 / 10 - } else if base_fee_per_gas <= U256::from(200_000_000_000u64) { - base_fee_per_gas * 14 / 10 - } else { - base_fee_per_gas * 12 / 10 - } -} - -/// Implementation borrowed from -/// https://github.com/gakonst/ethers-rs/blob/ethers-v2.0.8/ethers-core/src/utils/mod.rs#L536 -/// Refer to the implementation for unit tests -fn estimate_priority_fee(rewards: Vec>) -> U256 { - let mut rewards: Vec = rewards - .iter() - .map(|r| r[0]) - .filter(|r| *r > U256::zero()) - .collect(); - if rewards.is_empty() { - return U256::zero(); - } - if rewards.len() == 1 { - return rewards[0]; - } - // Sort the rewards as we will eventually take the median. - rewards.sort(); - - // A copy of the same vector is created for convenience to calculate percentage change - // between subsequent fee values. - let mut rewards_copy = rewards.clone(); - rewards_copy.rotate_left(1); - - let mut percentage_change: Vec = rewards - .iter() - .zip(rewards_copy.iter()) - .map(|(a, b)| { - let a = I256::try_from(*a).expect("priority fee overflow"); - let b = I256::try_from(*b).expect("priority fee overflow"); - ((b - a) * 100) / a - }) - .collect(); - percentage_change.pop(); - - // Fetch the max of the percentage change, and that element's index. - let max_change = percentage_change.iter().max().unwrap(); - let max_change_index = percentage_change - .iter() - .position(|&c| c == *max_change) - .unwrap(); - - // If we encountered a big change in fees at a certain position, then consider only - // the values >= it. - let values = if *max_change >= ethers::utils::EIP1559_FEE_ESTIMATION_THRESHOLD_MAX_CHANGE.into() - && (max_change_index >= (rewards.len() / 2)) - { - rewards[max_change_index..].to_vec() - } else { - rewards - }; - - // Return the median. - values[values.len() / 2] + Ok(call.block(ethers::types::BlockNumber::Pending)) } /// Get the block number from the transaction receipt diff --git a/ipc/provider/src/manager/evm/mod.rs b/ipc/provider/src/manager/evm/mod.rs index f51b5359a..973c34cf9 100644 --- a/ipc/provider/src/manager/evm/mod.rs +++ b/ipc/provider/src/manager/evm/mod.rs @@ -1,6 +1,7 @@ // Copyright 2022-2024 Protocol Labs // SPDX-License-Identifier: MIT +mod gas_estimator_middleware; mod manager; use async_trait::async_trait;