Skip to content

Commit 391f37f

Browse files
authored
fix(cast): use all providers if local artifacts used (#11090)
* fix(cast): use all providers if local artifacts used * Fix
1 parent e5519c6 commit 391f37f

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

crates/cast/src/cmd/call.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use foundry_compilers::artifacts::EvmVersion;
2121
use foundry_config::{
2222
Config,
2323
figment::{
24-
self, Figment, Metadata, Profile,
24+
self, Metadata, Profile,
2525
value::{Dict, Map},
2626
},
2727
};
@@ -191,7 +191,7 @@ pub enum CallSubcommands {
191191

192192
impl CallArgs {
193193
pub async fn run(self) -> Result<()> {
194-
let figment = Into::<Figment>::into(&self.eth).merge(&self);
194+
let figment = self.eth.rpc.clone().into_figment(self.with_local_artifacts).merge(&self);
195195
let evm_opts = figment.extract::<EvmOpts>()?;
196196
let mut config = Config::from_provider(figment)?.sanitized();
197197
let state_overrides = self.get_state_overrides()?;

crates/cast/src/cmd/run.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use foundry_compilers::artifacts::EvmVersion;
1717
use foundry_config::{
1818
Config,
1919
figment::{
20-
self, Figment, Metadata, Profile,
20+
self, Metadata, Profile,
2121
value::{Dict, Map},
2222
},
2323
};
@@ -114,10 +114,15 @@ impl RunArgs {
114114
///
115115
/// Note: This executes the transaction(s) as is: Cheatcodes are disabled
116116
pub async fn run(self) -> Result<()> {
117-
let figment = Into::<Figment>::into(&self.rpc).merge(&self);
117+
let figment = self.rpc.clone().into_figment(self.with_local_artifacts).merge(&self);
118118
let evm_opts = figment.extract::<EvmOpts>()?;
119119
let mut config = Config::from_provider(figment)?.sanitized();
120120

121+
let label = self.label;
122+
let with_local_artifacts = self.with_local_artifacts;
123+
let debug = self.debug;
124+
let decode_internal = self.decode_internal;
125+
let disable_labels = self.disable_labels;
121126
let compute_units_per_second =
122127
if self.no_rate_limit { Some(u64::MAX) } else { self.compute_units_per_second };
123128

@@ -291,11 +296,11 @@ impl RunArgs {
291296
&config,
292297
chain,
293298
&contracts_bytecode,
294-
self.label,
295-
self.with_local_artifacts,
296-
self.debug,
297-
self.decode_internal,
298-
self.disable_labels,
299+
label,
300+
with_local_artifacts,
301+
debug,
302+
decode_internal,
303+
disable_labels,
299304
)
300305
.await?;
301306

crates/cli/src/opts/rpc.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ use clap::Parser;
44
use eyre::Result;
55
use foundry_block_explorers::EtherscanApiVersion;
66
use foundry_config::{
7-
Chain, Config,
7+
Chain, Config, FigmentProviders,
88
figment::{
9-
self, Metadata, Profile,
9+
self, Figment, Metadata, Profile,
1010
value::{Dict, Map},
1111
},
12-
impl_figment_convert_cast,
12+
find_project_root, impl_figment_convert_cast,
1313
};
1414
use foundry_wallets::WalletOpts;
1515
use serde::Serialize;
@@ -116,6 +116,13 @@ impl RpcOpts {
116116
}
117117
dict
118118
}
119+
120+
pub fn into_figment(self, all: bool) -> Figment {
121+
let root = find_project_root(None).expect("could not determine project root");
122+
Config::with_root(&root)
123+
.to_figment(if all { FigmentProviders::All } else { FigmentProviders::Cast })
124+
.merge(self)
125+
}
119126
}
120127

121128
#[derive(Clone, Debug, Default, Serialize, Parser)]

0 commit comments

Comments
 (0)