Skip to content

Commit

Permalink
feat(forge): label cheatcode (gakonst#629)
Browse files Browse the repository at this point in the history
* label cheatcode

* no direct print (construct string) and label inputs/returns
  • Loading branch information
brockelmore authored Jan 30, 2022
1 parent dd76c0f commit fee6b51
Show file tree
Hide file tree
Showing 9 changed files with 238 additions and 80 deletions.
28 changes: 23 additions & 5 deletions cli/src/cmd/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ impl Cmd for RunArgs {
let bytecode = bin.into_bytes().unwrap();
let needs_setup = abi.functions().any(|func| func.name == "setUp");

let cfg = crate::utils::sputnik_cfg(&evm_version);
let mut cfg = crate::utils::sputnik_cfg(&evm_version);
cfg.create_contract_limit = None;
let vicinity = evm_opts.vicinity()?;
let backend = evm_opts.backend(&vicinity)?;

Expand Down Expand Up @@ -171,22 +172,39 @@ impl Cmd for RunArgs {
let mut ident = identified_contracts.clone();
let (funcs, events, errors) =
foundry_utils::flatten_known_contracts(&known_contracts);
let mut exec_info =
ExecutionInfo::new(&known_contracts, &mut ident, &funcs, &events, &errors);
let mut exec_info = ExecutionInfo::new(
&known_contracts,
&mut ident,
&result.labeled_addresses,
&funcs,
&events,
&errors,
);
let vm = vm();
let mut trace_string = "".to_string();
if evm_opts.verbosity > 4 || !result.success {
// print setup calls as well
traces.iter().for_each(|trace| {
trace.pretty_print(0, &mut exec_info, &vm, "");
trace.construct_trace_string(
0,
&mut exec_info,
&vm,
"",
&mut trace_string,
);
});
} else if !traces.is_empty() {
traces.last().expect("no last but not empty").pretty_print(
traces.last().expect("no last but not empty").construct_trace_string(
0,
&mut exec_info,
&vm,
"",
&mut trace_string,
);
}
if !trace_string.is_empty() {
println!("{}", trace_string);
}
}
println!();
}
Expand Down
29 changes: 22 additions & 7 deletions cli/src/cmd/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -305,28 +305,43 @@ fn test<A: ArtifactOutput + 'static>(
let mut exec_info = ExecutionInfo::new(
&runner.known_contracts,
&mut ident,
&result.labeled_addresses,
&funcs,
&events,
&errors,
);
let vm = vm();
let mut trace_string = "".to_string();
if verbosity > 4 || !result.success {
add_newline = true;
println!("Traces:");

// print setup calls as well
traces.iter().for_each(|trace| {
trace.pretty_print(0, &mut exec_info, &vm, " ");
trace.construct_trace_string(
0,
&mut exec_info,
&vm,
" ",
&mut trace_string,
);
});
} else if !traces.is_empty() {
add_newline = true;
println!("Traces:");
traces.last().expect("no last but not empty").pretty_print(
0,
&mut exec_info,
&vm,
" ",
);
traces
.last()
.expect("no last but not empty")
.construct_trace_string(
0,
&mut exec_info,
&vm,
" ",
&mut trace_string,
);
}
if !trace_string.is_empty() {
println!("{}", trace_string);
}
}
}
Expand Down
Loading

0 comments on commit fee6b51

Please sign in to comment.