-
Notifications
You must be signed in to change notification settings - Fork 0
/
seth.toml
236 lines (198 loc) · 8.96 KB
/
seth.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# if there are no ABIs Seth will fail to initialise with Contract Store
abi_dir = "contracts/abi"
# contract bytecodes are optional, but necessary if we want to deploy them via Contract Store
bin_dir = "contracts/bin"
# Seth will walk through all the files in the directories and load ABIs from them, if they are valid Geth wrappers
# Files that are not geth wrappers will be ignored. Invalid or empty ABIs will cause Seth to fail to initialise
# geth_wrappers_dirs = ["contracts/bind"]
# Uncomment if you want to load (address -> ABI_name) mapping from a file
# It will also save any new contract deployment (address -> ABI_name) mapping there.
# This functionality is not used for simulated networks.
#contract_map_file = "deployed_contracts_mumbai.toml"
# controls which transactions are decoded/traced. Supported values are: none, all, reverted (default).
# if transaction level doesn't match, then calling Decode() does nothing. It's advised to keep it set
# to 'reverted' to limit noise. If you combine it with 'trace_to_json' it will save all possible data
# in JSON files for reverted transactions.
tracing_level = "reverted"
# saves each decoding/tracing results to JSON files; what exactly is saved depends on what we
# were able te decode, we try to save maximum information possible. It can either be:
# just tx hash, decoded transaction or call trace. Which transactions traces are saved depends
# on 'tracing_level'.
# following outputs are possible: dot, json, console
# dot creates DOT graphs for each transaction, json saves decoded transactions and traces to JSON files
trace_outputs = ["console"]
# where to place all artifacts that are generated by Seth, like transaction traces (assuming tracing is enabled and set to files)
artifacts_dir = "artifacts"
# number of addresses to be generated and runtime, if set to 0, no addresses will be generated
# each generated address will receive a proportion of native tokens from root private key's balance
# with the value equal to (root_balance / ephemeral_addresses_number) - transfer_fee * ephemeral_addresses_number
ephemeral_addresses_number = 0
# If enabled we will panic when getting transaction options if current key/address has a pending transaction
# That's because the one we are about to send would get queued, possibly for a very long time. It's best to disable
# it when running load tests.
pending_nonce_protection_enabled = false
# When pending_nonce_protection_enabled is set to true, this value will be used to determine how long we should wait
# for all pending transactions to be mined (so that pending nonce and last nonce are equal).
# pending_nonce_protection_timeout = "10s"
# Amount to be left on root key/address, when we are using ephemeral addresses. It's the amount that will not
# be divided into ephemeral keys.
root_key_funds_buffer = 10 # 10 ether
# feature-flagged expriments; first one sets funds return priority to 'slow' (core only!), second one
# sets the tip/base fee to the higher value in case there's 3+ orders of magnitude difference between them
experiments_enabled = ["slow_funds_return", "eip_1559_fee_equalizer"]
# when enabled when creating a new Seth client we will send 10k wei from root address to root address
# to make sure transaction can be submitted and mined
check_rpc_health_on_start = false
[gas_bumps]
# when > 0 then we will bump gas price for transactions that are stuck in the mempool
# by default the bump step is controlled by gas_price_estimation_tx_priority (check readme.md for more details)
# we bump both contract deployment transactions and any other transaction as long as it's passed to Decode() function
retries = 0
# when > 0 then this will cap the gas price for bumped transactions. Once the cap is reached Seth will stop bumping
# the gas price and will wait for the transaction to be mined.
max_gas_price = 0
[nonce_manager]
key_sync_rate_limit_per_sec = 10
key_sync_timeout = "20s"
key_sync_retry_delay = "1s"
key_sync_retries = 10
[[networks]]
name = "Anvil"
dial_timeout="1m"
transaction_timeout = "30s"
urls_secret = ["ws://localhost:8545"]
transfer_gas_fee = 21_000
gas_limit = 10_000_000
# legacy transactions
gas_price = 1_000_000_000
# EIP-1559 transactions
#eip_1559_dynamic_fees = true
gas_fee_cap = 1_000_000_000
gas_tip_cap = 1_000_000_000
[[networks]]
name = "Geth"
dial_timeout="1m"
transaction_timeout = "30s"
urls_secret = ["ws://localhost:8546"]
transfer_gas_fee = 21_000
gas_limit = 8_000_000
# legacy transactions
gas_price = 1_000_000_000
# EIP-1559 transactions
#eip_1559_dynamic_fees = true
gas_fee_cap = 10_000_000_000
gas_tip_cap = 3_000_000_000
[[networks]]
name = "Default"
dial_timeout="1m"
transaction_timeout = "30s"
# enable EIP-1559 transactions, because Seth will disable them if they are not supported
eip_1559_dynamic_fees = true
# enable automated gas estimation, because Seth will auto-disable it if any of the required JSON RPC methods are missing
gas_price_estimation_enabled = true
gas_price_estimation_blocks = 100
gas_price_estimation_tx_priority = "standard"
# fallback values
transfer_gas_fee = 21_000
gas_price = 150_000_000_000 #150 gwei
gas_fee_cap = 150_000_000_000 #150 gwei
gas_tip_cap = 50_000_000_000 #50 gwei
[[networks]]
name = "Fuji"
dial_timeout="1m"
transaction_timeout = "30s"
eip_1559_dynamic_fees = true
# automated gas estimation
#gas_price_estimation_enabled = true
#gas_price_estimation_blocks = 100
#gas_price_estimation_tx_priority = "standard"
# gas limits
#transfer_gas_fee = 21_000
# gas limit should be explicitly set only if you are connecting to a node that's incapable of estimating gas limit itself (should only happen for very old versions)
# gas_limit = 8_000_000
# manual settings, used when gas_price_estimation_enabled is false or when it fails
# legacy transactions
#gas_price = 30_000_000_000
# EIP-1559 transactions
#gas_fee_cap = 30_000_000_000
#gas_tip_cap = 1_800_000_000
[[networks]]
name = "Sepolia"
dial_timeout="1m"
transaction_timeout = "30s"
eip_1559_dynamic_fees = true
# automated gas estimation
gas_price_estimation_enabled = true
gas_price_estimation_blocks = 100
gas_price_estimation_tx_priority = "standard"
# gas limits
transfer_gas_fee = 21_000
# gas limit should be explicitly set only if you are connecting to a node that's incapable of estimating gas limit itself (should only happen for very old versions)
# gas_limit = 14_000_000
# manual settings, used when gas_price_estimation_enabled is false or when it fails
# legacy transactions
gas_price = 1_000_000_000
# EIP-1559 transactions
gas_fee_cap = 25_000_000_000
gas_tip_cap = 5_000_000_000
[[networks]]
name = "Mumbai"
dial_timeout="1m"
transaction_timeout = "30s"
eip_1559_dynamic_fees = true
# automated gas estimation for live networks
# if set to true we will dynamically estimate gas for every transaction (based on suggested values, priority and congestion rate for last X blocks)
gas_price_estimation_enabled = true
# number of blocks to use for congestion rate estimation (it will determine buffer added on top of suggested values)
gas_price_estimation_blocks = 100
# transaction priority, which determines adjustment factor multiplier applied to suggested values (fast - 1.2x, standard - 1x, slow - 0.8x)
gas_price_estimation_tx_priority = "standard"
# gas limits
transfer_gas_fee = 21_000
# gas limit should be explicitly set only if you are connecting to a node that's incapable of estimating gas limit itself (should only happen for very old versions)
# gas_limit = 7_000_000
# manual settings, used when gas_price_estimation_enabled is false or when it fails
# # legacy transactions
gas_price = 30460480821
# # EIP-1559 transactions
gas_fee_cap = 1_800_000_000
gas_tip_cap = 30460480806
[[networks]]
name = "zkEVM"
dial_timeout="1m"
transaction_timeout = "30s"
eip_1559_dynamic_fees = false
# automated gas estimation
gas_price_estimation_enabled = true
gas_price_estimation_blocks = 100
gas_price_estimation_tx_priority = "standard"
# gas limits
transfer_gas_fee = 21_000
# gas limit should be explicitly set only if you are connecting to a node that's incapable of estimating gas limit itself (should only happen for very old versions)
# gas_limit = 3_000_000
# manual settings, used when gas_price_estimation_enabled is false or when it fails
# legacy transactions
gas_price = 50_000_000
# EIP-1559 transactions
gas_fee_cap = 1_800_000_000
gas_tip_cap = 1_800_000_000
[[networks]]
name = "ARBITRUM_SEPOLIA"
dial_timeout="1m"
transaction_timeout = "10m"
transfer_gas_fee = 50_000
# gas_limit = 15_000_000
# legacy transactions
gas_price = 200_000_000
# EIP-1559 transactions
eip_1559_dynamic_fees = true
gas_fee_cap = 1009_694
gas_tip_cap = 300_000
# if set to true we will estimate gas for every transaction
gas_price_estimation_enabled = true
# how many last blocks to use, when estimating gas for a transaction
gas_price_estimation_blocks = 100
# priority of the transaction, can be "fast", "standard" or "slow" (the higher the priority, the higher adjustment factor will be used for gas estimation) [default: "standard"]
gas_price_estimation_tx_priority = "standard"
[block_stats]
rpc_requests_per_second_limit = 15