foundry_evm_abi/console/
ds.rs
1use super::{format_units_int, format_units_uint};
4use alloy_primitives::hex;
5use alloy_sol_types::sol;
6use derive_more::Display;
7use itertools::Itertools;
8
9sol! {
12#[sol(abi)]
13#[derive(Display)]
14interface Console {
15 #[display("{val}")]
16 event log(string val);
17
18 #[display("{}", hex::encode_prefixed(val))]
19 event logs(bytes val);
20
21 #[display("{val}")]
22 event log_address(address val);
23
24 #[display("{val}")]
25 event log_bytes32(bytes32 val);
26
27 #[display("{val}")]
28 event log_int(int val);
29
30 #[display("{val}")]
31 event log_uint(uint val);
32
33 #[display("{}", hex::encode_prefixed(val))]
34 event log_bytes(bytes val);
35
36 #[display("{val}")]
37 event log_string(string val);
38
39 #[display("[{}]", val.iter().format(", "))]
40 event log_array(uint256[] val);
41
42 #[display("[{}]", val.iter().format(", "))]
43 event log_array(int256[] val);
44
45 #[display("[{}]", val.iter().format(", "))]
46 event log_array(address[] val);
47
48 #[display("{key}: {val}")]
49 event log_named_address(string key, address val);
50
51 #[display("{key}: {val}")]
52 event log_named_bytes32(string key, bytes32 val);
53
54 #[display("{key}: {}", format_units_int(val, decimals))]
55 event log_named_decimal_int(string key, int val, uint decimals);
56
57 #[display("{key}: {}", format_units_uint(val, decimals))]
58 event log_named_decimal_uint(string key, uint val, uint decimals);
59
60 #[display("{key}: {val}")]
61 event log_named_int(string key, int val);
62
63 #[display("{key}: {val}")]
64 event log_named_uint(string key, uint val);
65
66 #[display("{key}: {}", hex::encode_prefixed(val))]
67 event log_named_bytes(string key, bytes val);
68
69 #[display("{key}: {val}")]
70 event log_named_string(string key, string val);
71
72 #[display("{key}: [{}]", val.iter().format(", "))]
73 event log_named_array(string key, uint256[] val);
74
75 #[display("{key}: [{}]", val.iter().format(", "))]
76 event log_named_array(string key, int256[] val);
77
78 #[display("{key}: [{}]", val.iter().format(", "))]
79 event log_named_array(string key, address[] val);
80}
81}
82
83pub use Console::*;