Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .clippy.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ path = "std::collections::HashSet"
reason = """the standard library hasher is secure by default, but not very fast.
use ahash::HashSet instead."""

[[disallowed-types]]
path = "ahash::AHashMap"
reason = """use ahash::HashMap instead."""

[[disallowed-types]]
path = "ahash::AHashSet"
reason = """use ahash::HashSet instead."""

# Banned in #2600, presumably so that poisoning won't need to be user-handled
[[disallowed-types]]
path = "std::sync::RwLock"
Expand Down
4 changes: 2 additions & 2 deletions src/chain/store/base_fee.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

use crate::blocks::Tipset;
use crate::message::MessageReadWrite;
use crate::prelude::*;
use crate::shim::clock::ChainEpoch;
use crate::shim::econ::{BLOCK_GAS_LIMIT, TokenAmount};
use ahash::{HashSet, HashSetExt};
use fvm_ipld_blockstore::Blockstore;
use ahash::HashSet;

use super::weighted_quick_select::weighted_quick_select;

Expand Down
2 changes: 1 addition & 1 deletion src/db/blockstore_with_write_buffer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0, MIT

use crate::prelude::*;
use ahash::{HashMap, HashMapExt};
use ahash::HashMap;
use parking_lot::RwLock;

pub struct BlockstoreWithWriteBuffer<DB: Blockstore> {
Expand Down
4 changes: 1 addition & 3 deletions src/interpreter/vm.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// Copyright 2019-2026 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0, MIT

use std::sync::Arc;

use crate::blocks::Tipset;
use crate::chain::block_messages;
use crate::chain::index::ChainIndex;
Expand All @@ -24,7 +22,7 @@ use crate::shim::{
state_tree::ActorState,
version::NetworkVersion,
};
use ahash::{HashMap, HashMapExt, HashSet};
use ahash::{HashMap, HashSet};
use anyhow::bail;
use fvm_ipld_encoding::{RawBytes, to_vec};
use fvm_shared2::clock::ChainEpoch;
Expand Down
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ mod prelude {
db::Blockstore,
utils::{ShallowClone, get_size::CidWrapper},
};
pub use ahash::{HashMapExt as _, HashSetExt as _};
pub use anyhow::Context as _;
pub use cid::Cid;
pub use itertools::Itertools as _;
Expand Down
7 changes: 2 additions & 5 deletions src/libp2p_bitswap/request_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,11 @@
//! Request manager implementation that is optimized for `filecoin` network
//! usage

use std::{
sync::Arc,
time::{Duration, Instant},
};
use std::time::{Duration, Instant};

use crate::cid_collections::CidHashMap;
use crate::prelude::*;
use ahash::{HashSet, HashSetExt};
use ahash::HashSet;
use flume::TryRecvError;
use futures::StreamExt;
use libp2p::PeerId;
Expand Down
5 changes: 2 additions & 3 deletions src/message_pool/msgpool/republish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@ use crate::message_pool::{
provider::Provider,
utils::get_base_fee_lower_bound,
};
use crate::prelude::ShallowClone;
use crate::prelude::*;
use crate::shim::address::Address;
use ahash::{HashMap, HashMapExt, HashSet};
use cid::Cid;
use ahash::{HashMap, HashSet};
use parking_lot::RwLock as SyncRwLock;

const REPUB_TRIGGER_CAPACITY: usize = 1;
Expand Down
2 changes: 1 addition & 1 deletion src/message_pool/msgpool/selection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ use crate::shim::crypto::{Signature, SignatureType};
use crate::shim::{address::Address, econ::TokenAmount};
use crate::state_manager::IdToAddressCache;
use crate::utils::cache::SizeTrackingCache;
use ahash::{HashMap, HashMapExt};
use ahash::HashMap;
use anyhow::{bail, ensure};
use rand::prelude::SliceRandom;
use tracing::{debug, error, warn};
Expand Down
2 changes: 1 addition & 1 deletion src/rpc/auth_layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::auth::{JWT_IDENTIFIER, verify_token};
use crate::key_management::KeyStore;
use crate::prelude::*;
use crate::rpc::{CANCEL_METHOD_NAME, Permission, RpcMethod as _, chain};
use ahash::{HashMap, HashMapExt as _};
use ahash::HashMap;
use futures::future::Either;
use http::{
HeaderMap,
Expand Down
4 changes: 1 addition & 3 deletions src/rpc/methods/eth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ use crate::utils::encoding::from_slice_with_fallback;
use crate::utils::get_size::big_int_heap_size_helper;
use crate::utils::misc::env::env_or_default;
use crate::utils::multihash::prelude::*;
use ahash::HashSet;
use ahash::{HashMap, HashSet};
use anyhow::{Error, Result, anyhow, bail, ensure};
use enumflags2::{BitFlags, make_bitflags};
use filter::{ParsedFilter, ParsedFilterTipsets};
Expand Down Expand Up @@ -3168,8 +3168,6 @@ fn eth_filter_logs_from_events(
ctx: &Ctx,
events: &[CollectedEvent],
) -> anyhow::Result<Vec<EthLog>> {
use ahash::AHashMap as HashMap;

let chain_id = ctx.state_manager.chain_config().eth_chain_id;
let mut tx_hash_by_msg: HashMap<Cid, EthHash> = HashMap::new();
let mut block_hash_by_tipset: HashMap<TipsetKey, EthHash> = HashMap::new();
Expand Down
7 changes: 3 additions & 4 deletions src/rpc/methods/eth/filter/event.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
// Copyright 2019-2026 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0, MIT

use crate::rpc::Arc;
use crate::prelude::*;
use crate::rpc::eth::filter::{ActorEventBlock, ParsedFilter, ParsedFilterTipsets};
use crate::rpc::eth::{CollectedEvent, FilterID, filter::Filter};
use crate::shim::address::Address;
use ahash::AHashMap as HashMap;
use anyhow::{Context, Result};
use ahash::HashMap;
use anyhow::Result;
use parking_lot::RwLock;
use std::any::Any;

#[allow(dead_code)]
#[derive(Debug, PartialEq)]
pub struct EventFilter {
// Unique id used to identify the filter
Expand Down
6 changes: 3 additions & 3 deletions src/rpc/methods/eth/filter/mempool.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Copyright 2019-2026 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0, MIT

use crate::rpc::Arc;
use crate::prelude::*;
use crate::rpc::eth::{FilterID, filter::Filter, filter::FilterManager};
use crate::shim::fvm_shared_latest::clock::ChainEpoch;
use ahash::AHashMap as HashMap;
use anyhow::{Context, Result};
use ahash::HashMap;
use anyhow::Result;
use parking_lot::RwLock;
use std::any::Any;

Expand Down
44 changes: 21 additions & 23 deletions src/rpc/methods/eth/filter/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ use crate::state_manager::StateManager;
use crate::state_manager::{ExecutedMessage, ExecutedTipset};
use crate::utils::misc::env::env_or_default;
use crate::utils::task::AbortHandles;
use ahash::AHashMap as HashMap;
use ahash::HashMap;
use anyhow::{Error, anyhow, bail, ensure};
use futures::{TryStreamExt as _, stream::FuturesOrdered};
use fvm_ipld_encoding::IPLD_RAW;
Expand Down Expand Up @@ -538,7 +538,7 @@ impl EthFilterSpec {
ParsedFilterTipsets::Range(RangeInclusive::new(min, max))
};

let addresses: Vec<_> = if let Some(ref address_list) = self.address {
let addresses = if let Some(ref address_list) = self.address {
address_list
.iter()
.map(|ea| {
Expand All @@ -547,13 +547,13 @@ impl EthFilterSpec {
})
.collect::<Result<Vec<_>, _>>()?
} else {
vec![]
Default::default()
};

let keys = if let Some(topics) = &self.topics {
keys_to_keys_with_codec(parse_eth_topics(topics)?)
} else {
HashMap::new()
Default::default()
};

Ok(ParsedFilter {
Expand Down Expand Up @@ -751,17 +751,17 @@ impl ParsedFilter {
pub fn new_with_tipset(tipsets: ParsedFilterTipsets) -> Self {
ParsedFilter {
tipsets,
addresses: vec![],
keys: HashMap::new(),
addresses: Default::default(),
keys: Default::default(),
msg_cid: None,
}
}

pub fn new_with_tipset_and_msg(tipsets: ParsedFilterTipsets, msg_cid: Option<Cid>) -> Self {
ParsedFilter {
tipsets,
addresses: vec![],
keys: HashMap::new(),
addresses: Default::default(),
keys: Default::default(),
msg_cid,
}
}
Expand All @@ -782,7 +782,7 @@ impl ParsedFilter {
ParsedFilterTipsets::Range(RangeInclusive::new(min, max))
};

let addresses: Vec<_> = filter.addresses.iter().map(|addr| addr.0).collect();
let addresses = filter.addresses.iter().map(|addr| addr.0).collect_vec();

let mut keys: HashMap<String, Vec<ActorEventBlock>> = Default::default();
for (k, v) in filter.fields.into_iter() {
Expand Down Expand Up @@ -854,13 +854,11 @@ impl Matcher for EventFilter {

#[cfg(test)]
mod tests {
use ahash::AHashMap;
use super::*;
use crate::rpc::eth::{EthAddress, EthFilterSpec, EthTopicSpec};
use base64::{Engine, prelude::BASE64_STANDARD};
use fvm_ipld_encoding::DAG_CBOR;
use fvm_shared4::event::Flags;

use super::*;
use crate::rpc::eth::{EthAddress, EthFilterSpec, EthTopicSpec};
use std::str::FromStr;

#[test]
Expand Down Expand Up @@ -1546,7 +1544,7 @@ mod tests {

let empty_filter = ParsedFilter {
tipsets: ParsedFilterTipsets::Range(0..=0),
addresses: vec![],
addresses: Default::default(),
keys: Default::default(),
msg_cid: None,
};
Expand Down Expand Up @@ -1648,14 +1646,14 @@ mod tests {

let empty_filter = ParsedFilter {
tipsets: ParsedFilterTipsets::Range(0..=0),
addresses: vec![],
addresses: Default::default(),
keys: Default::default(),
msg_cid: None,
};

assert!(empty_filter.matches(&addr0, &entries0).unwrap());

let mut keys: AHashMap<String, Vec<ActorEventBlock>> = Default::default();
let mut keys: HashMap<String, Vec<ActorEventBlock>> = Default::default();
keys.insert(
"t1".into(),
vec![ActorEventBlock {
Expand All @@ -1668,14 +1666,14 @@ mod tests {

let filter1 = ParsedFilter {
tipsets: ParsedFilterTipsets::Range(0..=0),
addresses: vec![],
addresses: Default::default(),
keys,
msg_cid: None,
};

assert!(filter1.matches(&addr0, &entries0).unwrap());

let mut keys: AHashMap<String, Vec<ActorEventBlock>> = Default::default();
let mut keys: HashMap<String, Vec<ActorEventBlock>> = Default::default();
keys.insert(
"t1".into(),
vec![ActorEventBlock {
Expand All @@ -1688,14 +1686,14 @@ mod tests {

let filter2 = ParsedFilter {
tipsets: ParsedFilterTipsets::Range(0..=0),
addresses: vec![],
addresses: Default::default(),
keys,
msg_cid: None,
};

assert!(!filter2.matches(&addr0, &entries0).unwrap());

let mut keys: AHashMap<String, Vec<ActorEventBlock>> = Default::default();
let mut keys: HashMap<String, Vec<ActorEventBlock>> = Default::default();
keys.insert(
"t1".into(),
vec![ActorEventBlock {
Expand All @@ -1708,14 +1706,14 @@ mod tests {

let filter2 = ParsedFilter {
tipsets: ParsedFilterTipsets::Range(0..=0),
addresses: vec![],
addresses: Default::default(),
keys,
msg_cid: None,
};

assert!(!filter2.matches(&addr0, &entries0).unwrap());

let mut keys: AHashMap<String, Vec<ActorEventBlock>> = Default::default();
let mut keys: HashMap<String, Vec<ActorEventBlock>> = Default::default();
keys.insert(
"t1".into(),
vec![ActorEventBlock {
Expand All @@ -1737,7 +1735,7 @@ mod tests {

let filter3 = ParsedFilter {
tipsets: ParsedFilterTipsets::Range(0..=0),
addresses: vec![],
addresses: Default::default(),
keys,
msg_cid: None,
};
Expand Down
4 changes: 2 additions & 2 deletions src/rpc/methods/eth/filter/store.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Copyright 2019-2026 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0, MIT

use crate::rpc::Arc;
use crate::prelude::*;
use crate::rpc::eth::FilterID;
use ahash::AHashMap as HashMap;
use ahash::HashMap;
use anyhow::Result;
use anyhow::anyhow;
use parking_lot::RwLock;
Expand Down
6 changes: 3 additions & 3 deletions src/rpc/methods/eth/filter/tipset.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Copyright 2019-2026 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0, MIT

use crate::rpc::Arc;
use crate::prelude::*;
use crate::rpc::eth::{FilterID, filter::Filter, filter::FilterManager};
use crate::shim::fvm_shared_latest::clock::ChainEpoch;
use ahash::AHashMap as HashMap;
use anyhow::{Context, Result};
use ahash::HashMap;
use anyhow::Result;
use parking_lot::RwLock;
use std::any::Any;

Expand Down
3 changes: 1 addition & 2 deletions src/rpc/methods/eth/trace/geth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ use super::types::{
};
use super::utils::{ZERO_HASH, trace_to_address, u256_to_eth_hash};
use crate::eth::EAMMethod;
use crate::prelude::*;
use crate::rpc::state::ExecutionTrace;
use crate::shim::actors::is_evm_actor;
use crate::shim::address::Address;
use crate::shim::state_tree::{ActorState, StateTree};
use ahash::{HashMap, HashSet};
use fil_actor_evm_state::evm_shared::v17::uints::U256;
use fvm_ipld_blockstore::Blockstore;
use num::FromPrimitive as _;
use std::collections::BTreeMap;

Expand Down Expand Up @@ -267,7 +267,6 @@ mod tests {
use super::super::types::{PreStateConfig, PreStateFrame};
use super::*;
use crate::rpc::eth::{EthBigInt, EthUint64};
use ahash::HashSetExt as _;
use num::BigInt;

#[test]
Expand Down
Loading
Loading