From c82b07236c6ff61a81cca06db1d731c5adb339dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 4 Nov 2022 14:12:12 +0100 Subject: [PATCH 1/6] bump Rust to v1.65.0, yay! --- docker/namada-wasm/Dockerfile | 4 ++-- docker/namada/Dockerfile | 2 +- rust-toolchain.toml | 2 +- wasm/rust-toolchain.toml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/namada-wasm/Dockerfile b/docker/namada-wasm/Dockerfile index 5b47fa35f4..2b4a55a46c 100644 --- a/docker/namada-wasm/Dockerfile +++ b/docker/namada-wasm/Dockerfile @@ -1,12 +1,12 @@ # This docker is used for deterministic wasm builds # The version should be matching the version set in wasm/rust-toolchain.toml -FROM rust:1.61.0-bullseye +FROM rust:1.65.0-bullseye WORKDIR /__w/namada/namada # The version should be matching the version set above -RUN rustup toolchain install 1.61.0 --profile minimal +RUN rustup toolchain install 1.65.0 --profile minimal RUN rustup target add wasm32-unknown-unknown # Download binaryen and extract wasm-opt diff --git a/docker/namada/Dockerfile b/docker/namada/Dockerfile index 2335ea9f46..9f8b50ca84 100644 --- a/docker/namada/Dockerfile +++ b/docker/namada/Dockerfile @@ -1,4 +1,4 @@ -FROM lukemathwalker/cargo-chef:latest-rust-1.61.0 AS chef +FROM lukemathwalker/cargo-chef:latest-rust-1.65.0 AS chef WORKDIR /app FROM chef AS planner diff --git a/rust-toolchain.toml b/rust-toolchain.toml index b12fcffcfe..bb2965ded6 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.61.0" +channel = "1.65.0" components = ["rustc", "cargo", "rust-std", "rust-docs", "rls", "rust-src", "rust-analysis"] targets = ['wasm32-unknown-unknown'] \ No newline at end of file diff --git a/wasm/rust-toolchain.toml b/wasm/rust-toolchain.toml index 6ee193d7cb..2bf2af8c51 100644 --- a/wasm/rust-toolchain.toml +++ b/wasm/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.61.0" +channel = "1.65.0" components = ["rustc", "cargo", "rust-std", "rust-docs", "rls", "rust-analysis"] From d747b169a5ba2af8655436cdcf248bab22937c70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 4 Nov 2022 14:14:20 +0100 Subject: [PATCH 2/6] wallet/store: fix unused print alias arg --- apps/src/lib/wallet/store.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/apps/src/lib/wallet/store.rs b/apps/src/lib/wallet/store.rs index e189255355..4a5524dd15 100644 --- a/apps/src/lib/wallet/store.rs +++ b/apps/src/lib/wallet/store.rs @@ -339,7 +339,7 @@ impl Store { if alias.is_empty() { println!( "Empty alias given, defaulting to {}.", - alias = Into::::into(pkh.to_string()) + Into::::into(pkh.to_string()) ); } if self.keys.contains_key(&alias) { @@ -366,10 +366,7 @@ impl Store { address: Address, ) -> Option { if alias.is_empty() { - println!( - "Empty alias given, defaulting to {}.", - alias = address.encode() - ); + println!("Empty alias given, defaulting to {}.", address.encode()); } if self.addresses.contains_left(&alias) { match show_overwrite_confirmation(&alias, "an address") { From 5a6ab0a92111fb69c08a21682d1bbedcd510edcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 4 Nov 2022 14:14:43 +0100 Subject: [PATCH 3/6] bump Rust nightly to 2022-11-03 --- rust-nightly-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-nightly-version b/rust-nightly-version index e6c378230a..a39b15f0ea 100644 --- a/rust-nightly-version +++ b/rust-nightly-version @@ -1 +1 @@ -nightly-2022-05-20 +nightly-2022-11-03 From a4371abe6876420a3693ed1b2ca3ef3666f21c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 4 Nov 2022 14:43:52 +0100 Subject: [PATCH 4/6] update rustfmt config for nightly-2022-11-03 --- rustfmt.toml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/rustfmt.toml b/rustfmt.toml index fc535ff5ca..5be227e0b6 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -31,7 +31,6 @@ imports_indent = "Block" imports_layout = "Mixed" indent_style = "Block" inline_attribute_width = 0 -license_template_path = "" make_backup = false match_arm_blocks = true match_arm_leading_pipes = "Never" @@ -46,9 +45,7 @@ remove_nested_parens = true reorder_impl_items = true reorder_imports = true reorder_modules = true -report_fixme = "Never" -report_todo = "Never" -required_version = "1.4.38" +required_version = "1.5.1" skip_children = false space_after_colon = true space_before_colon = false From 5caaa813f19068bd5dd54b59eda1cb4b49165580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Fri, 4 Nov 2022 15:49:11 +0100 Subject: [PATCH 5/6] fix newly found clippy issues --- apps/src/bin/anoma-wallet/cli.rs | 3 +- apps/src/lib/cli/context.rs | 4 +- apps/src/lib/client/rpc.rs | 10 +- apps/src/lib/client/utils.rs | 15 +-- apps/src/lib/config/genesis.rs | 22 ++- apps/src/lib/node/ledger/mod.rs | 2 +- apps/src/lib/node/ledger/shell/mod.rs | 2 +- apps/src/lib/node/ledger/storage/mod.rs | 2 +- apps/src/lib/node/ledger/storage/rocksdb.rs | 2 +- apps/src/lib/node/ledger/tendermint_node.rs | 6 +- encoding_spec/src/main.rs | 9 +- proof_of_stake/src/epoched.rs | 12 +- shared/build.rs | 7 +- shared/src/ledger/gas.rs | 2 +- shared/src/ledger/governance/storage.rs | 127 ++++++------------ shared/src/ledger/ibc/vp/channel.rs | 2 +- shared/src/ledger/ibc/vp/client.rs | 4 +- shared/src/ledger/native_vp.rs | 53 +++----- shared/src/ledger/pos/storage.rs | 27 +--- shared/src/ledger/storage/merkle_tree.rs | 4 +- shared/src/ledger/storage/mod.rs | 12 +- shared/src/proto/types.rs | 4 +- shared/src/types/governance.rs | 8 +- shared/src/vm/wasm/run.rs | 9 +- tests/src/e2e/helpers.rs | 2 +- tests/src/e2e/ledger_tests.rs | 8 +- tests/src/e2e/setup.rs | 16 +-- .../collections/nested_lazy_map.rs | 4 +- tests/src/vm_host_env/tx.rs | 2 +- tests/src/vm_host_env/vp.rs | 2 +- 30 files changed, 149 insertions(+), 233 deletions(-) diff --git a/apps/src/bin/anoma-wallet/cli.rs b/apps/src/bin/anoma-wallet/cli.rs index 6bab0b19a4..962f4c2898 100644 --- a/apps/src/bin/anoma-wallet/cli.rs +++ b/apps/src/bin/anoma-wallet/cli.rs @@ -200,8 +200,7 @@ fn address_or_alias_find(ctx: Context, args: args::AddressOrAliasFind) { message." ); } else if args.alias.is_some() { - if let Some(address) = - wallet.find_address(&args.alias.as_ref().unwrap()) + if let Some(address) = wallet.find_address(args.alias.as_ref().unwrap()) { println!("Found address {}", address.to_pretty_string()); } else { diff --git a/apps/src/lib/cli/context.rs b/apps/src/lib/cli/context.rs index fc6db9633b..861fee31f7 100644 --- a/apps/src/lib/cli/context.rs +++ b/apps/src/lib/cli/context.rs @@ -62,13 +62,13 @@ impl Context { let chain_dir = global_args .base_dir - .join(&global_config.default_chain_id.as_str()); + .join(global_config.default_chain_id.as_str()); let genesis_file_path = global_args .base_dir .join(format!("{}.toml", global_config.default_chain_id.as_str())); let wallet = Wallet::load_or_new_from_genesis( &chain_dir, - genesis_config::open_genesis_config(&genesis_file_path)?, + genesis_config::open_genesis_config(genesis_file_path)?, ); // If the WASM dir specified, put it in the config diff --git a/apps/src/lib/client/rpc.rs b/apps/src/lib/client/rpc.rs index ce6a542897..470544e3de 100644 --- a/apps/src/lib/client/rpc.rs +++ b/apps/src/lib/client/rpc.rs @@ -410,7 +410,7 @@ pub async fn query_proposal_result( cli::safe_exit(1) } - let file = File::open(&path.join("proposal")) + let file = File::open(path.join("proposal")) .expect("Proposal file must exist."); let proposal: OfflineProposal = serde_json::from_reader(file).expect( @@ -1410,11 +1410,11 @@ pub async fn query_tx_response( // applied to the blockchain let query_event_opt = response_block_results.end_block_events.and_then(|events| { - (&events) + events .iter() .find(|event| { event.type_str == tx_query.event_type() - && (&event.attributes).iter().any(|tag| { + && event.attributes.iter().any(|tag| { tag.key.as_ref() == "hash" && tag.value.as_ref() == tx_query.tx_hash() }) @@ -1429,8 +1429,8 @@ pub async fn query_tx_response( ) })?; // Reformat the event attributes so as to ease value extraction - let event_map: std::collections::HashMap<&str, &str> = (&query_event - .attributes) + let event_map: std::collections::HashMap<&str, &str> = query_event + .attributes .iter() .map(|tag| (tag.key.as_ref(), tag.value.as_ref())) .collect(); diff --git a/apps/src/lib/client/utils.rs b/apps/src/lib/client/utils.rs index 8848726792..01d32a3c8a 100644 --- a/apps/src/lib/client/utils.rs +++ b/apps/src/lib/client/utils.rs @@ -279,7 +279,7 @@ pub async fn join_network( // Write consensus key to tendermint home tendermint_node::write_validator_key( &tm_home_dir, - &*pre_genesis_wallet.consensus_key, + &pre_genesis_wallet.consensus_key, ); // Derive the node ID from the node key @@ -400,8 +400,7 @@ pub fn init_network( archive_dir, }: args::InitNetwork, ) { - let mut config = - genesis_config::open_genesis_config(&genesis_path).unwrap(); + let mut config = genesis_config::open_genesis_config(genesis_path).unwrap(); // Update the WASM checksums let checksums = @@ -679,7 +678,7 @@ pub fn init_network( fs::rename(&temp_dir, &chain_dir).unwrap(); // Copy the WASM checksums - let wasm_dir_full = chain_dir.join(&config::DEFAULT_WASM_DIR); + let wasm_dir_full = chain_dir.join(config::DEFAULT_WASM_DIR); fs::create_dir_all(&wasm_dir_full).unwrap(); fs::copy( &wasm_checksums_path, @@ -696,16 +695,16 @@ pub fn init_network( .join(config::DEFAULT_BASE_DIR); let temp_validator_chain_dir = validator_dir.join(temp_chain_id.as_str()); - let validator_chain_dir = validator_dir.join(&chain_id.as_str()); + let validator_chain_dir = validator_dir.join(chain_id.as_str()); fs::create_dir_all(&validator_chain_dir) .expect("Couldn't create validator directory"); // Rename the generated directories for validators from `temp_chain_id` // to `chain_id` - std::fs::rename(&temp_validator_chain_dir, &validator_chain_dir) + std::fs::rename(temp_validator_chain_dir, &validator_chain_dir) .unwrap(); // Copy the WASM checksums - let wasm_dir_full = validator_chain_dir.join(&config::DEFAULT_WASM_DIR); + let wasm_dir_full = validator_chain_dir.join(config::DEFAULT_WASM_DIR); fs::create_dir_all(&wasm_dir_full).unwrap(); fs::copy( &wasm_checksums_path, @@ -1052,7 +1051,7 @@ pub fn write_tendermint_node_key( .create(true) .write(true) .truncate(true) - .open(&node_key_path) + .open(node_key_path) .expect("Couldn't create validator node key file"); serde_json::to_writer_pretty(file, &tm_node_keypair_json) .expect("Couldn't write validator node key file"); diff --git a/apps/src/lib/config/genesis.rs b/apps/src/lib/config/genesis.rs index 9425e3b019..fd122a5cac 100644 --- a/apps/src/lib/config/genesis.rs +++ b/apps/src/lib/config/genesis.rs @@ -282,10 +282,10 @@ pub mod genesis_config { Validator { pos_data: GenesisValidator { - address: Address::decode(&config.address.as_ref().unwrap()) + address: Address::decode(config.address.as_ref().unwrap()) .unwrap(), staking_reward_address: Address::decode( - &config.staking_reward_address.as_ref().unwrap(), + config.staking_reward_address.as_ref().unwrap(), ) .unwrap(), tokens: token::Amount::whole(config.tokens.unwrap_or_default()), @@ -354,8 +354,7 @@ pub mod genesis_config { let token_vp_config = wasm.get(token_vp_name).unwrap(); TokenAccount { - address: Address::decode(&config.address.as_ref().unwrap()) - .unwrap(), + address: Address::decode(config.address.as_ref().unwrap()).unwrap(), vp_code_path: token_vp_config.filename.to_owned(), vp_sha256: token_vp_config .sha256 @@ -373,7 +372,7 @@ pub mod genesis_config { .iter() .map(|(alias_or_address, amount)| { ( - match Address::decode(&alias_or_address) { + match Address::decode(alias_or_address) { Ok(address) => address, Err(decode_err) => { if let Some(alias) = @@ -436,8 +435,7 @@ pub mod genesis_config { let account_vp_config = wasm.get(account_vp_name).unwrap(); EstablishedAccount { - address: Address::decode(&config.address.as_ref().unwrap()) - .unwrap(), + address: Address::decode(config.address.as_ref().unwrap()).unwrap(), vp_code_path: account_vp_config.filename.to_owned(), vp_sha256: account_vp_config .sha256 @@ -459,7 +457,7 @@ pub mod genesis_config { .iter() .map(|(address, hex)| { ( - storage::Key::parse(&address).unwrap(), + storage::Key::parse(address).unwrap(), hex.to_bytes().unwrap(), ) }) @@ -500,8 +498,8 @@ pub mod genesis_config { let token_accounts = config .token .unwrap_or_default() - .iter() - .map(|(_name, cfg)| { + .values() + .map(|cfg| { load_token( cfg, &wasms, @@ -822,8 +820,8 @@ pub fn genesis() -> Genesis { ((&validator.account_key).into(), default_key_tokens), ]); let token_accounts = address::tokens() - .into_iter() - .map(|(address, _)| TokenAccount { + .into_keys() + .map(|address| TokenAccount { address, vp_code_path: vp_token_path.into(), vp_sha256: Default::default(), diff --git a/apps/src/lib/node/ledger/mod.rs b/apps/src/lib/node/ledger/mod.rs index 9796c18fce..42e632d98e 100644 --- a/apps/src/lib/node/ledger/mod.rs +++ b/apps/src/lib/node/ledger/mod.rs @@ -138,7 +138,7 @@ impl Shell { CheckTxType::New => MempoolTxType::NewTransaction, CheckTxType::Recheck => MempoolTxType::RecheckTransaction, }; - Ok(Response::CheckTx(self.mempool_validate(&*tx.tx, r#type))) + Ok(Response::CheckTx(self.mempool_validate(&tx.tx, r#type))) } Request::ListSnapshots(_) => { Ok(Response::ListSnapshots(Default::default())) diff --git a/apps/src/lib/node/ledger/shell/mod.rs b/apps/src/lib/node/ledger/shell/mod.rs index ef2160737a..24f2d9b101 100644 --- a/apps/src/lib/node/ledger/shell/mod.rs +++ b/apps/src/lib/node/ledger/shell/mod.rs @@ -140,7 +140,7 @@ pub type Result = std::result::Result; pub fn reset(config: config::Ledger) -> Result<()> { // simply nuke the DB files let db_path = &config.db_dir(); - match std::fs::remove_dir_all(&db_path) { + match std::fs::remove_dir_all(db_path) { Err(e) if e.kind() == std::io::ErrorKind::NotFound => (), res => res.map_err(Error::RemoveDB)?, }; diff --git a/apps/src/lib/node/ledger/storage/mod.rs b/apps/src/lib/node/ledger/storage/mod.rs index 2876236bca..ee0d1ed6e4 100644 --- a/apps/src/lib/node/ledger/storage/mod.rs +++ b/apps/src/lib/node/ledger/storage/mod.rs @@ -85,7 +85,7 @@ mod tests { assert_eq!(gas, key.len() as u64); let (result, gas) = storage.read(&key).expect("read failed"); let read_value: u64 = - types::decode(&result.expect("value doesn't exist")) + types::decode(result.expect("value doesn't exist")) .expect("decoding failed"); assert_eq!(read_value, value); assert_eq!(gas, key.len() as u64 + value_bytes_len as u64); diff --git a/apps/src/lib/node/ledger/storage/rocksdb.rs b/apps/src/lib/node/ledger/storage/rocksdb.rs index 8cb14872ca..87477e3f1f 100644 --- a/apps/src/lib/node/ledger/storage/rocksdb.rs +++ b/apps/src/lib/node/ledger/storage/rocksdb.rs @@ -673,7 +673,7 @@ impl DB for RocksDB { // Write the new key-val self.0 - .put(&subspace_key.to_string(), value) + .put(subspace_key.to_string(), value) .map_err(|e| Error::DBError(e.into_string()))?; Ok(size_diff) diff --git a/apps/src/lib/node/ledger/tendermint_node.rs b/apps/src/lib/node/ledger/tendermint_node.rs index cbd5cd4879..a89a3193b2 100644 --- a/apps/src/lib/node/ledger/tendermint_node.rs +++ b/apps/src/lib/node/ledger/tendermint_node.rs @@ -86,7 +86,7 @@ pub async fn run( // init and run a tendermint node child process let output = Command::new(&tendermint_path) - .args(&["init", &mode, "--home", &home_dir_string]) + .args(["init", &mode, "--home", &home_dir_string]) .output() .await .map_err(Error::Init)?; @@ -110,7 +110,7 @@ pub async fn run( update_tendermint_config(&home_dir, config).await?; let mut tendermint_node = Command::new(&tendermint_path); - tendermint_node.args(&[ + tendermint_node.args([ "start", "--proxy_app", &ledger_address, @@ -170,7 +170,7 @@ pub fn reset(tendermint_dir: impl AsRef) -> Result<()> { let tendermint_dir = tendermint_dir.as_ref().to_string_lossy(); // reset all the Tendermint state, if any std::process::Command::new(tendermint_path) - .args(&[ + .args([ "reset-state", "unsafe-all", // NOTE: log config: https://docs.tendermint.com/master/nodes/logging.html#configuring-log-levels diff --git a/encoding_spec/src/main.rs b/encoding_spec/src/main.rs index 5579178210..1c0b416a7f 100644 --- a/encoding_spec/src/main.rs +++ b/encoding_spec/src/main.rs @@ -372,10 +372,11 @@ fn md_fmt_type(type_name: impl AsRef) -> String { fn write_generated_code_notice( file: &mut std::fs::File, ) -> Result<(), Box> { + let path = std::file!(); writeln!( file, - "", - std::file!() + "", )?; Ok(()) } @@ -390,9 +391,7 @@ fn escape_fragment_anchor(string: impl AsRef) -> String { // mdBook turns headings fragment links to lowercase string .as_ref() - .replace('>', "") - .replace('<', "") - .replace(',', "") + .replace(['>', '<', ','], "") .replace(' ', "-") .replace(':', "") .to_ascii_lowercase() diff --git a/proof_of_stake/src/epoched.rs b/proof_of_stake/src/epoched.rs index f13bec3ee0..9cca568410 100644 --- a/proof_of_stake/src/epoched.rs +++ b/proof_of_stake/src/epoched.rs @@ -635,11 +635,15 @@ mod tests { Set { value: Data, epoch: Epoch }, UpdateFromOffset(UpdateFromOffset), } + + /// Function for updating epoched data from an offset + pub type UpdateFn = Rc; + /// These are the arguments of one of the constructors in /// [`EpochedTransition`]. It's not inlined because we need to manually /// implement `Debug`. struct UpdateFromOffset { - update_value: Rc, + update_value: UpdateFn, epoch: Epoch, offset: DynEpochOffset, } @@ -886,12 +890,12 @@ mod tests { // Post-conditions assert_eq!(data.last_update, epoch); assert_eq!( - data.data[offset as usize], + data.data[offset], Some(value), "The value at offset must be updated" ); assert!( - data.data.len() > offset as usize, + data.data.len() > offset, "The length of the data must be greater than the \ offset" ); @@ -1188,7 +1192,7 @@ mod tests { change" ); assert!( - data.data.len() > offset as usize, + data.data.len() > offset, "The length of the data must be greater than the \ offset" ); diff --git a/shared/build.rs b/shared/build.rs index 74dd72b753..c872467fcf 100644 --- a/shared/build.rs +++ b/shared/build.rs @@ -34,12 +34,7 @@ fn main() { if let Ok(rustfmt_toolchain) = read_to_string(RUSTFMT_TOOLCHAIN_SRC) { // Try to find the path to rustfmt. if let Ok(output) = Command::new("rustup") - .args(&[ - "which", - "rustfmt", - "--toolchain", - rustfmt_toolchain.trim(), - ]) + .args(["which", "rustfmt", "--toolchain", rustfmt_toolchain.trim()]) .output() { if let Ok(rustfmt) = str::from_utf8(&output.stdout) { diff --git a/shared/src/ledger/gas.rs b/shared/src/ledger/gas.rs index c7da7b132c..99eb606b7b 100644 --- a/shared/src/ledger/gas.rs +++ b/shared/src/ledger/gas.rs @@ -208,7 +208,7 @@ impl VpsGas { let parallel_gas = self.rest.iter().sum::() / PARALLEL_GAS_DIVIDER; self.max .unwrap_or_default() - .checked_add(parallel_gas as u64) + .checked_add(parallel_gas) .ok_or(Error::GasOverflow) } } diff --git a/shared/src/ledger/governance/storage.rs b/shared/src/ledger/governance/storage.rs index 9d2f0a4e4a..f8e409e3bc 100644 --- a/shared/src/ledger/governance/storage.rs +++ b/shared/src/ledger/governance/storage.rs @@ -175,121 +175,74 @@ pub fn is_end_epoch_key(key: &Key) -> bool { /// Check if key is counter key pub fn is_counter_key(key: &Key) -> bool { - match &key.segments[..] { - [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(counter)] - if addr == &ADDRESS && counter == COUNTER_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(counter)] if addr == &ADDRESS && counter == COUNTER_KEY) } /// Check if key is a proposal fund parameter key pub fn is_min_proposal_fund_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(min_funds_param), - ] if addr == &ADDRESS && min_funds_param == MIN_PROPOSAL_FUND_KEY => { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(min_funds_param), + ] if addr == &ADDRESS && min_funds_param == MIN_PROPOSAL_FUND_KEY) } /// Check if key is a proposal max content parameter key pub fn is_max_content_size_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(max_content_size_param), - ] if addr == &ADDRESS - && max_content_size_param == MAX_PROPOSAL_CONTENT_SIZE_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(max_content_size_param), + ] if addr == &ADDRESS + && max_content_size_param == MAX_PROPOSAL_CONTENT_SIZE_KEY) } /// Check if key is a max proposal size key pub fn is_max_proposal_code_size_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(max_content_size_param), - ] if addr == &ADDRESS - && max_content_size_param == MAX_PROPOSAL_CONTENT_SIZE_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(max_content_size_param), + ] if addr == &ADDRESS + && max_content_size_param == MAX_PROPOSAL_CONTENT_SIZE_KEY) } /// Check if key is a min proposal period param key pub fn is_min_proposal_period_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(min_proposal_period_param), - ] if addr == &ADDRESS - && min_proposal_period_param == MIN_PROPOSAL_PERIOD_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(min_proposal_period_param), + ] if addr == &ADDRESS + && min_proposal_period_param == MIN_PROPOSAL_PERIOD_KEY) } /// Check if key is a max proposal period param key pub fn is_max_proposal_period_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(max_proposal_period_param), - ] if addr == &ADDRESS - && max_proposal_period_param == MAX_PROPOSAL_PERIOD_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(max_proposal_period_param), + ] if addr == &ADDRESS + && max_proposal_period_param == MAX_PROPOSAL_PERIOD_KEY) } /// Check if key is a min grace epoch key pub fn is_commit_proposal_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(prefix), - DbKeySeg::StringSeg(epoch_prefix), - DbKeySeg::StringSeg(_epoch), - DbKeySeg::StringSeg(_id), - ] if addr == &ADDRESS - && prefix == PROPOSAL_PREFIX - && epoch_prefix == PROPOSAL_COMMITTING_EPOCH => - { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(prefix), + DbKeySeg::StringSeg(epoch_prefix), + DbKeySeg::StringSeg(_epoch), + DbKeySeg::StringSeg(_id), + ] if addr == &ADDRESS + && prefix == PROPOSAL_PREFIX + && epoch_prefix == PROPOSAL_COMMITTING_EPOCH + ) } /// Check if key is a commit proposal key pub fn is_min_grace_epoch_key(key: &Key) -> bool { - match &key.segments[..] { - [ - DbKeySeg::AddressSeg(addr), - DbKeySeg::StringSeg(min_grace_epoch_param), - ] if addr == &ADDRESS - && min_grace_epoch_param == MIN_GRACE_EPOCH_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [ + DbKeySeg::AddressSeg(addr), + DbKeySeg::StringSeg(min_grace_epoch_param), + ] if addr == &ADDRESS + && min_grace_epoch_param == MIN_GRACE_EPOCH_KEY) } /// Check if key is parameter key diff --git a/shared/src/ledger/ibc/vp/channel.rs b/shared/src/ledger/ibc/vp/channel.rs index d2c586c6f0..80adb7969f 100644 --- a/shared/src/ledger/ibc/vp/channel.rs +++ b/shared/src/ledger/ibc/vp/channel.rs @@ -748,7 +748,7 @@ where .map_err(|_| Ics04Error::implementation_specific())?; if let Some(id) = channel.connection_hops().get(0) { if id == conn_id { - let key = Key::parse(&key).map_err(|_| { + let key = Key::parse(key).map_err(|_| { Ics04Error::implementation_specific() })?; let port_channel_id = diff --git a/shared/src/ledger/ibc/vp/client.rs b/shared/src/ledger/ibc/vp/client.rs index 453006f356..05ac3c3528 100644 --- a/shared/src/ledger/ibc/vp/client.rs +++ b/shared/src/ledger/ibc/vp/client.rs @@ -488,7 +488,7 @@ where .iter_pre_next(&mut iter) .map_err(|_| Ics02Error::implementation_specific())? { - let key = Key::parse(&key) + let key = Key::parse(key) .map_err(|_| Ics02Error::implementation_specific())?; let consensus_height = consensus_height(&key) .map_err(|_| Ics02Error::implementation_specific())?; @@ -529,7 +529,7 @@ where .iter_pre_next(&mut iter) .map_err(|_| Ics02Error::implementation_specific())? { - let key = Key::parse(&key) + let key = Key::parse(key) .map_err(|_| Ics02Error::implementation_specific())?; let consensus_height = consensus_height(&key) .map_err(|_| Ics02Error::implementation_specific())?; diff --git a/shared/src/ledger/native_vp.rs b/shared/src/ledger/native_vp.rs index 2b7d41e795..ccdbd70429 100644 --- a/shared/src/ledger/native_vp.rs +++ b/shared/src/ledger/native_vp.rs @@ -136,7 +136,7 @@ where /// Add a gas cost incured in a validity predicate pub fn add_gas(&self, used_gas: u64) -> Result<(), vp_env::RuntimeError> { - vp_env::add_gas(&mut *self.gas_meter.borrow_mut(), used_gas) + vp_env::add_gas(&mut self.gas_meter.borrow_mut(), used_gas) } /// Read access to the prior storage (state before tx execution) @@ -168,7 +168,7 @@ where key: &crate::types::storage::Key, ) -> Result>, storage_api::Error> { vp_env::read_pre( - &mut *self.ctx.gas_meter.borrow_mut(), + &mut self.ctx.gas_meter.borrow_mut(), self.ctx.storage, self.ctx.write_log, key, @@ -181,7 +181,7 @@ where key: &crate::types::storage::Key, ) -> Result { vp_env::has_key_pre( - &mut *self.ctx.gas_meter.borrow_mut(), + &mut self.ctx.gas_meter.borrow_mut(), self.ctx.storage, key, ) @@ -199,7 +199,7 @@ where &self, iter: &mut Self::PrefixIter, ) -> Result)>, storage_api::Error> { - vp_env::iter_pre_next::(&mut *self.ctx.gas_meter.borrow_mut(), iter) + vp_env::iter_pre_next::(&mut self.ctx.gas_meter.borrow_mut(), iter) .into_storage_result() } @@ -244,7 +244,7 @@ where key: &crate::types::storage::Key, ) -> Result>, storage_api::Error> { vp_env::read_post( - &mut *self.ctx.gas_meter.borrow_mut(), + &mut self.ctx.gas_meter.borrow_mut(), self.ctx.storage, self.ctx.write_log, key, @@ -257,7 +257,7 @@ where key: &crate::types::storage::Key, ) -> Result { vp_env::has_key_post( - &mut *self.ctx.gas_meter.borrow_mut(), + &mut self.ctx.gas_meter.borrow_mut(), self.ctx.storage, self.ctx.write_log, key, @@ -277,7 +277,7 @@ where iter: &mut Self::PrefixIter, ) -> Result)>, storage_api::Error> { vp_env::iter_post_next::( - &mut *self.ctx.gas_meter.borrow_mut(), + &mut self.ctx.gas_meter.borrow_mut(), self.ctx.write_log, iter, ) @@ -333,49 +333,38 @@ where &self, key: &Key, ) -> Result, storage_api::Error> { - vp_env::read_temp( - &mut *self.gas_meter.borrow_mut(), - self.write_log, - key, - ) - .map(|data| data.and_then(|t| T::try_from_slice(&t[..]).ok())) - .into_storage_result() + vp_env::read_temp(&mut self.gas_meter.borrow_mut(), self.write_log, key) + .map(|data| data.and_then(|t| T::try_from_slice(&t[..]).ok())) + .into_storage_result() } fn read_bytes_temp( &self, key: &Key, ) -> Result>, storage_api::Error> { - vp_env::read_temp( - &mut *self.gas_meter.borrow_mut(), - self.write_log, - key, - ) - .into_storage_result() + vp_env::read_temp(&mut self.gas_meter.borrow_mut(), self.write_log, key) + .into_storage_result() } fn get_chain_id(&'view self) -> Result { - vp_env::get_chain_id(&mut *self.gas_meter.borrow_mut(), self.storage) + vp_env::get_chain_id(&mut self.gas_meter.borrow_mut(), self.storage) .into_storage_result() } fn get_block_height( &'view self, ) -> Result { - vp_env::get_block_height( - &mut *self.gas_meter.borrow_mut(), - self.storage, - ) - .into_storage_result() + vp_env::get_block_height(&mut self.gas_meter.borrow_mut(), self.storage) + .into_storage_result() } fn get_block_hash(&'view self) -> Result { - vp_env::get_block_hash(&mut *self.gas_meter.borrow_mut(), self.storage) + vp_env::get_block_hash(&mut self.gas_meter.borrow_mut(), self.storage) .into_storage_result() } fn get_block_epoch(&'view self) -> Result { - vp_env::get_block_epoch(&mut *self.gas_meter.borrow_mut(), self.storage) + vp_env::get_block_epoch(&mut self.gas_meter.borrow_mut(), self.storage) .into_storage_result() } @@ -384,7 +373,7 @@ where prefix: &Key, ) -> Result { vp_env::iter_prefix( - &mut *self.gas_meter.borrow_mut(), + &mut self.gas_meter.borrow_mut(), self.storage, prefix, ) @@ -396,7 +385,7 @@ where prefix: &Key, ) -> Result { vp_env::rev_iter_prefix( - &mut *self.gas_meter.borrow_mut(), + &mut self.gas_meter.borrow_mut(), self.storage, prefix, ) @@ -429,7 +418,7 @@ where self.address, self.storage, self.write_log, - &mut *self.gas_meter.borrow_mut(), + &mut self.gas_meter.borrow_mut(), self.tx, &mut iterators, self.verifiers, @@ -470,7 +459,7 @@ where } fn get_tx_code_hash(&self) -> Result { - vp_env::get_tx_code_hash(&mut *self.gas_meter.borrow_mut(), self.tx) + vp_env::get_tx_code_hash(&mut self.gas_meter.borrow_mut(), self.tx) .into_storage_result() } } diff --git a/shared/src/ledger/pos/storage.rs b/shared/src/ledger/pos/storage.rs index 366ce489b5..6c7bc57735 100644 --- a/shared/src/ledger/pos/storage.rs +++ b/shared/src/ledger/pos/storage.rs @@ -48,14 +48,7 @@ pub fn params_key() -> Key { /// Is storage key for PoS parameters? pub fn is_params_key(key: &Key) -> bool { - match &key.segments[..] { - [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(key)] - if addr == &ADDRESS && key == PARAMS_STORAGE_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(key)] if addr == &ADDRESS && key == PARAMS_STORAGE_KEY) } /// Storage key prefix for validator data. @@ -326,14 +319,7 @@ pub fn validator_set_key() -> Key { /// Is storage key for a validator set? pub fn is_validator_set_key(key: &Key) -> bool { - match &key.segments[..] { - [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(key)] - if addr == &ADDRESS && key == VALIDATOR_SET_STORAGE_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(key)] if addr == &ADDRESS && key == VALIDATOR_SET_STORAGE_KEY) } /// Storage key for total voting power. @@ -345,14 +331,7 @@ pub fn total_voting_power_key() -> Key { /// Is storage key for total voting power? pub fn is_total_voting_power_key(key: &Key) -> bool { - match &key.segments[..] { - [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(key)] - if addr == &ADDRESS && key == TOTAL_VOTING_POWER_STORAGE_KEY => - { - true - } - _ => false, - } + matches!(&key.segments[..], [DbKeySeg::AddressSeg(addr), DbKeySeg::StringSeg(key)] if addr == &ADDRESS && key == TOTAL_VOTING_POWER_STORAGE_KEY) } /// Get validator address from bond key diff --git a/shared/src/ledger/storage/merkle_tree.rs b/shared/src/ledger/storage/merkle_tree.rs index 4ac2201bbe..49afb3dcfc 100644 --- a/shared/src/ledger/storage/merkle_tree.rs +++ b/shared/src/ledger/storage/merkle_tree.rs @@ -283,7 +283,7 @@ impl MerkleTree { let sub_root = self.tree_mut(store_type).subtree_update(key, value)?; // update the base tree with the updated sub root without hashing if *store_type != StoreType::Base { - let base_key = H::hash(&store_type.to_string()); + let base_key = H::hash(store_type.to_string()); self.base.update(base_key.into(), sub_root)?; } Ok(()) @@ -310,7 +310,7 @@ impl MerkleTree { let (store_type, sub_key) = StoreType::sub_key(key)?; let sub_root = self.tree_mut(&store_type).subtree_delete(&sub_key)?; if store_type != StoreType::Base { - let base_key = H::hash(&store_type.to_string()); + let base_key = H::hash(store_type.to_string()); self.base.update(base_key.into(), sub_root)?; } Ok(()) diff --git a/shared/src/ledger/storage/mod.rs b/shared/src/ledger/storage/mod.rs index 16c3ecf180..2f9ff19ecd 100644 --- a/shared/src/ledger/storage/mod.rs +++ b/shared/src/ledger/storage/mod.rs @@ -450,7 +450,7 @@ where // but with gas and storage bytes len diff accounting tracing::debug!("storage write key {}", key,); let value = value.as_ref(); - self.block.tree.update(key, &value)?; + self.block.tree.update(key, value)?; let len = value.len(); let gas = key.len() + len; @@ -805,7 +805,7 @@ where // gas and storage bytes len diff accounting, because it can only be // used by the protocol that has a direct mutable access to storage let val = val.as_ref(); - self.block.tree.update(key, &val).into_storage_result()?; + self.block.tree.update(key, val).into_storage_result()?; let _ = self .db .write_subspace_val(self.block.height, key, val) @@ -941,14 +941,14 @@ mod tests { max_expected_time_per_block in Just(max_expected_time_per_block), start_height in Just(start_height), start_time in Just(start_time), - block_height in start_height + 1..(start_height + 2 * min_num_of_blocks as u64), + block_height in start_height + 1..(start_height + 2 * min_num_of_blocks), block_time in start_time + 1..(start_time + 2 * min_duration), // Delta will be applied on the `min_num_of_blocks` parameter min_blocks_delta in -(min_num_of_blocks as i64 - 1)..5, // Delta will be applied on the `min_duration` parameter - min_duration_delta in -(min_duration as i64 - 1)..50, + min_duration_delta in -(min_duration - 1)..50, // Delta will be applied on the `max_expected_time_per_block` parameter - max_time_per_block_delta in -(max_expected_time_per_block as i64 - 1)..50, + max_time_per_block_delta in -(max_expected_time_per_block - 1)..50, ) -> (EpochDuration, i64, BlockHeight, DateTimeUtc, BlockHeight, DateTimeUtc, i64, i64, i64) { let epoch_duration = EpochDuration { @@ -998,7 +998,7 @@ mod tests { // Test for 1. if block_height.0 - start_height.0 - >= epoch_duration.min_num_of_blocks as u64 + >= epoch_duration.min_num_of_blocks && time::duration_passed( block_time, start_time, diff --git a/shared/src/proto/types.rs b/shared/src/proto/types.rs index 41e6655080..f05467e825 100644 --- a/shared/src/proto/types.rs +++ b/shared/src/proto/types.rs @@ -96,7 +96,7 @@ where let to_sign = data .try_to_vec() .expect("Encoding data for signing shouldn't fail"); - let sig = common::SigScheme::sign(keypair, &to_sign); + let sig = common::SigScheme::sign(keypair, to_sign); Self { data, sig } } @@ -179,7 +179,7 @@ impl Tx { /// Sign a transaction using [`SignedTxData`]. pub fn sign(self, keypair: &common::SecretKey) -> Self { let to_sign = self.hash(); - let sig = common::SigScheme::sign(keypair, &to_sign); + let sig = common::SigScheme::sign(keypair, to_sign); let signed = SignedTxData { data: self.data, sig, diff --git a/shared/src/types/governance.rs b/shared/src/types/governance.rs index 5f82335cb2..b49ebabc43 100644 --- a/shared/src/types/governance.rs +++ b/shared/src/types/governance.rs @@ -224,9 +224,9 @@ impl OfflineProposal { tally_epoch_serialized, ] .concat(); - let proposal_data_hash = Hash::sha256(&proposal_serialized); + let proposal_data_hash = Hash::sha256(proposal_serialized); let signature = - common::SigScheme::sign(signing_key, &proposal_data_hash); + common::SigScheme::sign(signing_key, proposal_data_hash); Self { content: proposal.content, author: proposal.author, @@ -261,7 +261,7 @@ impl OfflineProposal { tally_epoch_serialized, ] .concat(); - Hash::sha256(&proposal_serialized) + Hash::sha256(proposal_serialized) } } @@ -297,7 +297,7 @@ impl OfflineVote { .expect("Conversion to bytes shouldn't fail."); let vote_serialized = &[proposal_hash_data, proposal_vote_data].concat(); - let signature = common::SigScheme::sign(signing_key, &vote_serialized); + let signature = common::SigScheme::sign(signing_key, vote_serialized); Self { proposal_hash, vote, diff --git a/shared/src/vm/wasm/run.rs b/shared/src/vm/wasm/run.rs index d9977393d8..b35c862131 100644 --- a/shared/src/vm/wasm/run.rs +++ b/shared/src/vm/wasm/run.rs @@ -52,7 +52,8 @@ pub enum Error { #[error("Failed running wasm with: {0}")] RuntimeError(wasmer::RuntimeError), #[error("Failed instantiating wasm module with: {0}")] - InstantiationError(wasmer::InstantiationError), + // Boxed cause it's 128b + InstantiationError(Box), #[error( "Unexpected module entrypoint interface {entrypoint}, failed with: \ {error}" @@ -112,7 +113,7 @@ where // Instantiate the wasm module let instance = wasmer::Instance::new(&module, &imports) - .map_err(Error::InstantiationError)?; + .map_err(|e| Error::InstantiationError(Box::new(e)))?; // We need to write the inputs in the memory exported from the wasm // module @@ -179,7 +180,7 @@ where validate_untrusted_wasm(vp_code).map_err(Error::ValidationError)?; // Compile the wasm module - let (module, store) = vp_wasm_cache.fetch_or_compile(&vp_code)?; + let (module, store) = vp_wasm_cache.fetch_or_compile(vp_code)?; let mut iterators: PrefixIterators<'_, DB> = PrefixIterators::default(); let mut result_buffer: Option> = None; @@ -235,7 +236,7 @@ fn run_vp( // Instantiate the wasm module let instance = wasmer::Instance::new(&module, &vp_imports) - .map_err(Error::InstantiationError)?; + .map_err(|e| Error::InstantiationError(Box::new(e)))?; // We need to write the inputs in the memory exported from the wasm // module diff --git a/tests/src/e2e/helpers.rs b/tests/src/e2e/helpers.rs index d0dd60a688..2ff09391ff 100644 --- a/tests/src/e2e/helpers.rs +++ b/tests/src/e2e/helpers.rs @@ -51,7 +51,7 @@ pub fn get_actor_rpc(test: &Test, who: &Who) -> String { Who::Validator(_) => TendermintMode::Validator, }; let config = - Config::load(&base_dir, &test.net.chain_id, Some(tendermint_mode)); + Config::load(base_dir, &test.net.chain_id, Some(tendermint_mode)); config.ledger.tendermint.rpc_address.to_string() } diff --git a/tests/src/e2e/ledger_tests.rs b/tests/src/e2e/ledger_tests.rs index 8a7427a9fd..53d199d0f5 100644 --- a/tests/src/e2e/ledger_tests.rs +++ b/tests/src/e2e/ledger_tests.rs @@ -173,7 +173,7 @@ fn test_anoma_shuts_down_if_tendermint_dies() -> Result<()> { // 2. Kill the tendermint node sleep(1); Command::new("pkill") - .args(&["tendermint"]) + .args(["tendermint"]) .spawn() .expect("Test failed") .wait() @@ -1509,7 +1509,7 @@ fn proposal_offline() -> Result<()> { client.assert_success(); let expected_file_name = format!("proposal-vote-{}", albert); - let expected_path_vote = test.test_dir.path().join(&expected_file_name); + let expected_path_vote = test.test_dir.path().join(expected_file_name); assert!(expected_path_vote.exists()); // 4. Compute offline tally @@ -1652,7 +1652,7 @@ fn test_genesis_validators() -> Result<()> { validator_1_alias, ); let config = std::fs::read_to_string( - &namada_apps::client::utils::validator_pre_genesis_file( + namada_apps::client::utils::validator_pre_genesis_file( &validator_1_pre_genesis_dir, ), ) @@ -1966,7 +1966,7 @@ fn double_signing_gets_slashed() -> Result<()> { let validator_0_base_dir_copy = test.test_dir.path().join("validator-0-copy"); fs_extra::dir::copy( - &validator_0_base_dir, + validator_0_base_dir, &validator_0_base_dir_copy, &fs_extra::dir::CopyOptions { copy_inside: true, diff --git a/tests/src/e2e/setup.rs b/tests/src/e2e/setup.rs index 3d6ff5e951..6a8e004f50 100644 --- a/tests/src/e2e/setup.rs +++ b/tests/src/e2e/setup.rs @@ -373,7 +373,7 @@ impl Test { args, timeout_sec, &self.working_dir, - &base_dir, + base_dir, mode, loc, ) @@ -660,7 +660,7 @@ where .env("TM_LOG_LEVEL", "info") .env("ANOMA_LOG_COLOR", "false") .current_dir(working_dir) - .args(&[ + .args([ "--base-dir", &base_dir.as_ref().to_string_lossy(), "--mode", @@ -689,7 +689,7 @@ where let mut rng = rand::thread_rng(); let log_dir = base_dir.as_ref().join("logs"); fs::create_dir_all(&log_dir)?; - log_dir.join(&format!( + log_dir.join(format!( "{}-{}-{}.log", SystemTime::now() .duration_since(UNIX_EPOCH) @@ -828,8 +828,8 @@ pub fn copy_wasm_to_chain_dir<'a>( let target_wasm_dir = chain_dir.join(config::DEFAULT_WASM_DIR); for file in &wasm_files { std::fs::copy( - working_dir.join("wasm").join(&file), - target_wasm_dir.join(&file), + working_dir.join("wasm").join(file), + target_wasm_dir.join(file), ) .unwrap(); } @@ -843,8 +843,8 @@ pub fn copy_wasm_to_chain_dir<'a>( .join(chain_id.as_str()) .join(config::DEFAULT_WASM_DIR); for file in &wasm_files { - let src = working_dir.join("wasm").join(&file); - let dst = target_wasm_dir.join(&file); + let src = working_dir.join("wasm").join(file); + let dst = target_wasm_dir.join(file); std::fs::copy(&src, &dst) .wrap_err_with(|| { format!( @@ -870,7 +870,7 @@ pub fn get_all_wasms_hashes( checksums .values() .filter_map(|wasm| { - if wasm.contains(&filter_prefix) { + if wasm.contains(filter_prefix) { Some( wasm.split('.').collect::>()[1] .to_owned() diff --git a/tests/src/storage_api/collections/nested_lazy_map.rs b/tests/src/storage_api/collections/nested_lazy_map.rs index 037decce46..9951eb318b 100644 --- a/tests/src/storage_api/collections/nested_lazy_map.rs +++ b/tests/src/storage_api/collections/nested_lazy_map.rs @@ -428,8 +428,8 @@ mod tests { |mut acc, (middle, inner_map)| { acc.extend( inner_map - .into_iter() - .map(|(inner, _)| (outer, middle, inner)), + .into_keys() + .map(|inner| (outer, middle, inner)), ); acc }, diff --git a/tests/src/vm_host_env/tx.rs b/tests/src/vm_host_env/tx.rs index 6a3ef96084..ceeb317461 100644 --- a/tests/src/vm_host_env/tx.rs +++ b/tests/src/vm_host_env/tx.rs @@ -216,7 +216,7 @@ mod native_tx_host_env { `tx_host_env::init()`)", ) .as_mut(); - f(&mut *env) + f(&mut env) }) } diff --git a/tests/src/vm_host_env/vp.rs b/tests/src/vm_host_env/vp.rs index 88aa63d530..c9e036f5fb 100644 --- a/tests/src/vm_host_env/vp.rs +++ b/tests/src/vm_host_env/vp.rs @@ -150,7 +150,7 @@ mod native_vp_host_env { `vp_host_env::init()`)", ) .as_mut(); - f(&mut *env) + f(&mut env) }) } From 70b760ae4b1c03249c0697bd9f8a84cfd0f79288 Mon Sep 17 00:00:00 2001 From: Gianmarco Fraccaroli <> Date: Mon, 28 Nov 2022 15:07:43 +0100 Subject: [PATCH 6/6] ci: update rust/docker image --- .github/workflows/build-and-test-bridge.yml | 4 ++-- .github/workflows/build-and-test.yml | 4 ++-- .github/workflows/checks.yml | 2 +- .github/workflows/cron.yml | 2 +- .github/workflows/docs.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-test-bridge.yml b/.github/workflows/build-and-test-bridge.yml index 0ed0437ce4..1773da82bb 100644 --- a/.github/workflows/build-and-test-bridge.yml +++ b/.github/workflows/build-and-test-bridge.yml @@ -29,7 +29,7 @@ jobs: timeout-minutes: 30 runs-on: ${{ matrix.os }} container: - image: ghcr.io/anoma/namada:wasm-0.6.1 + image: ghcr.io/anoma/namada:wasm-0.11.0 strategy: fail-fast: false matrix: @@ -108,7 +108,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - nightly_version: [nightly-2022-05-20] + nightly_version: [nightly-2022-11-03] mold_version: [1.6.0] make: - name: ABCI diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 6ee13b06f3..1c38e5d603 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -31,7 +31,7 @@ jobs: timeout-minutes: 30 runs-on: ${{ matrix.os }} container: - image: ghcr.io/anoma/namada:wasm-0.8.0 + image: ghcr.io/anoma/namada:wasm-0.11.0 strategy: fail-fast: false matrix: @@ -110,7 +110,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - nightly_version: [nightly-2022-05-20] + nightly_version: [nightly-2022-11-03] mold_version: [1.6.0] make: - name: ABCI diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 22792c8d9b..7364a477fa 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -27,7 +27,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - nightly_version: [nightly-2022-05-20] + nightly_version: [nightly-2022-11-03] make: - name: Clippy command: clippy diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 51e19208e3..260b0de4c6 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -20,7 +20,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - nightly_version: [nightly-2022-05-20] + nightly_version: [nightly-2022-11-03] make: - name: Audit command: audit diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5304af902e..a4d3144dba 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - nightly_version: [nightly-2022-05-20] + nightly_version: [nightly-2022-11-03] mdbook_version: [rust-lang/mdbook@v0.4.18] mdbook_mermaid: [badboy/mdbook-mermaid@v0.11.1] mdbook_linkcheck: [Michael-F-Bryan/mdbook-linkcheck@v0.7.6]