22
33use crate :: blockchains:: chains:: Chain ;
44use crate :: constants:: {
5- BASE_MAINNET_CONTRACT_CREATION_BLOCK , BASE_MAINNET_FULL_IDENTIFIER ,
6- BASE_SEPOLIA_CONTRACT_CREATION_BLOCK , BASE_SEPOLIA_FULL_IDENTIFIER , DEV_CHAIN_FULL_IDENTIFIER ,
7- ETH_MAINNET_CONTRACT_CREATION_BLOCK , ETH_MAINNET_FULL_IDENTIFIER ,
5+ BASE_GAS_PRICE_CEILING_WEI , BASE_MAINNET_CHAIN_ID , BASE_MAINNET_CONTRACT_CREATION_BLOCK ,
6+ BASE_MAINNET_FULL_IDENTIFIER , BASE_SEPOLIA_CHAIN_ID , BASE_SEPOLIA_CONTRACT_CREATION_BLOCK ,
7+ BASE_SEPOLIA_FULL_IDENTIFIER , DEV_CHAIN_FULL_IDENTIFIER , DEV_CHAIN_ID ,
8+ DEV_GAS_PRICE_CEILING_WEI , ETH_GAS_PRICE_CEILING_WEI , ETH_MAINNET_CHAIN_ID ,
9+ ETH_MAINNET_CONTRACT_CREATION_BLOCK , ETH_MAINNET_FULL_IDENTIFIER , ETH_ROPSTEN_CHAIN_ID ,
810 ETH_ROPSTEN_CONTRACT_CREATION_BLOCK , ETH_ROPSTEN_FULL_IDENTIFIER ,
9- MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK , POLYGON_AMOY_CONTRACT_CREATION_BLOCK ,
10- POLYGON_AMOY_FULL_IDENTIFIER , POLYGON_MAINNET_CONTRACT_CREATION_BLOCK ,
11- POLYGON_MAINNET_FULL_IDENTIFIER ,
11+ MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK , POLYGON_AMOY_CHAIN_ID ,
12+ POLYGON_AMOY_CONTRACT_CREATION_BLOCK , POLYGON_AMOY_FULL_IDENTIFIER ,
13+ POLYGON_GAS_PRICE_CEILING_WEI , POLYGON_MAINNET_CHAIN_ID ,
14+ POLYGON_MAINNET_CONTRACT_CREATION_BLOCK , POLYGON_MAINNET_FULL_IDENTIFIER ,
1215} ;
1316use ethereum_types:: { Address , H160 } ;
1417
18+ // TODO these should probably be a static (it's a shame that we construct the data every time anew
19+ // when we ask for the chain specs), and dynamic initialization should be allowed as well
1520pub const CHAINS : [ BlockchainRecord ; 7 ] = [
1621 BlockchainRecord {
1722 self_id : Chain :: PolyMainnet ,
18- num_chain_id : 137 ,
23+ num_chain_id : POLYGON_MAINNET_CHAIN_ID ,
1924 literal_identifier : POLYGON_MAINNET_FULL_IDENTIFIER ,
25+ gas_price_safe_ceiling_minor : POLYGON_GAS_PRICE_CEILING_WEI ,
2026 contract : POLYGON_MAINNET_CONTRACT_ADDRESS ,
2127 contract_creation_block : POLYGON_MAINNET_CONTRACT_CREATION_BLOCK ,
2228 } ,
2329 BlockchainRecord {
2430 self_id : Chain :: EthMainnet ,
25- num_chain_id : 1 ,
31+ num_chain_id : ETH_MAINNET_CHAIN_ID ,
2632 literal_identifier : ETH_MAINNET_FULL_IDENTIFIER ,
33+ gas_price_safe_ceiling_minor : ETH_GAS_PRICE_CEILING_WEI ,
2734 contract : ETH_MAINNET_CONTRACT_ADDRESS ,
2835 contract_creation_block : ETH_MAINNET_CONTRACT_CREATION_BLOCK ,
2936 } ,
3037 BlockchainRecord {
3138 self_id : Chain :: BaseMainnet ,
32- num_chain_id : 8453 ,
39+ num_chain_id : BASE_MAINNET_CHAIN_ID ,
3340 literal_identifier : BASE_MAINNET_FULL_IDENTIFIER ,
41+ gas_price_safe_ceiling_minor : BASE_GAS_PRICE_CEILING_WEI ,
3442 contract : BASE_MAINNET_CONTRACT_ADDRESS ,
3543 contract_creation_block : BASE_MAINNET_CONTRACT_CREATION_BLOCK ,
3644 } ,
3745 BlockchainRecord {
3846 self_id : Chain :: BaseSepolia ,
39- num_chain_id : 84532 ,
47+ num_chain_id : BASE_SEPOLIA_CHAIN_ID ,
4048 literal_identifier : BASE_SEPOLIA_FULL_IDENTIFIER ,
49+ gas_price_safe_ceiling_minor : BASE_GAS_PRICE_CEILING_WEI ,
4150 contract : BASE_SEPOLIA_TESTNET_CONTRACT_ADDRESS ,
4251 contract_creation_block : BASE_SEPOLIA_CONTRACT_CREATION_BLOCK ,
4352 } ,
4453 BlockchainRecord {
4554 self_id : Chain :: PolyAmoy ,
46- num_chain_id : 80002 ,
55+ num_chain_id : POLYGON_AMOY_CHAIN_ID ,
4756 literal_identifier : POLYGON_AMOY_FULL_IDENTIFIER ,
57+ gas_price_safe_ceiling_minor : POLYGON_GAS_PRICE_CEILING_WEI ,
4858 contract : POLYGON_AMOY_TESTNET_CONTRACT_ADDRESS ,
4959 contract_creation_block : POLYGON_AMOY_CONTRACT_CREATION_BLOCK ,
5060 } ,
5161 BlockchainRecord {
5262 self_id : Chain :: EthRopsten ,
53- num_chain_id : 3 ,
63+ num_chain_id : ETH_ROPSTEN_CHAIN_ID ,
5464 literal_identifier : ETH_ROPSTEN_FULL_IDENTIFIER ,
65+ gas_price_safe_ceiling_minor : ETH_GAS_PRICE_CEILING_WEI ,
5566 contract : ETH_ROPSTEN_TESTNET_CONTRACT_ADDRESS ,
5667 contract_creation_block : ETH_ROPSTEN_CONTRACT_CREATION_BLOCK ,
5768 } ,
5869 BlockchainRecord {
5970 self_id : Chain :: Dev ,
60- num_chain_id : 2 ,
71+ num_chain_id : DEV_CHAIN_ID ,
6172 literal_identifier : DEV_CHAIN_FULL_IDENTIFIER ,
73+ gas_price_safe_ceiling_minor : DEV_GAS_PRICE_CEILING_WEI ,
6274 contract : MULTINODE_TESTNET_CONTRACT_ADDRESS ,
6375 contract_creation_block : MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK ,
6476 } ,
@@ -69,6 +81,7 @@ pub struct BlockchainRecord {
6981 pub self_id : Chain ,
7082 pub num_chain_id : u64 ,
7183 pub literal_identifier : & ' static str ,
84+ pub gas_price_safe_ceiling_minor : u128 ,
7285 pub contract : Address ,
7386 pub contract_creation_block : u64 ,
7487}
@@ -115,7 +128,7 @@ const POLYGON_MAINNET_CONTRACT_ADDRESS: Address = H160([
115128mod tests {
116129 use super :: * ;
117130 use crate :: blockchains:: chains:: chain_from_chain_identifier_opt;
118- use crate :: constants:: BASE_MAINNET_CONTRACT_CREATION_BLOCK ;
131+ use crate :: constants:: { BASE_MAINNET_CONTRACT_CREATION_BLOCK , WEIS_IN_GWEI } ;
119132 use std:: collections:: HashSet ;
120133 use std:: iter:: FromIterator ;
121134
@@ -195,6 +208,7 @@ mod tests {
195208 num_chain_id: 1 ,
196209 self_id: examined_chain,
197210 literal_identifier: "eth-mainnet" ,
211+ gas_price_safe_ceiling_minor: 100 * WEIS_IN_GWEI as u128 ,
198212 contract: ETH_MAINNET_CONTRACT_ADDRESS ,
199213 contract_creation_block: ETH_MAINNET_CONTRACT_CREATION_BLOCK ,
200214 }
@@ -211,6 +225,7 @@ mod tests {
211225 num_chain_id: 3 ,
212226 self_id: examined_chain,
213227 literal_identifier: "eth-ropsten" ,
228+ gas_price_safe_ceiling_minor: 100 * WEIS_IN_GWEI as u128 ,
214229 contract: ETH_ROPSTEN_TESTNET_CONTRACT_ADDRESS ,
215230 contract_creation_block: ETH_ROPSTEN_CONTRACT_CREATION_BLOCK ,
216231 }
@@ -227,6 +242,7 @@ mod tests {
227242 num_chain_id: 137 ,
228243 self_id: examined_chain,
229244 literal_identifier: "polygon-mainnet" ,
245+ gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128 ,
230246 contract: POLYGON_MAINNET_CONTRACT_ADDRESS ,
231247 contract_creation_block: POLYGON_MAINNET_CONTRACT_CREATION_BLOCK ,
232248 }
@@ -243,6 +259,7 @@ mod tests {
243259 num_chain_id: 80002 ,
244260 self_id: examined_chain,
245261 literal_identifier: "polygon-amoy" ,
262+ gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128 ,
246263 contract: POLYGON_AMOY_TESTNET_CONTRACT_ADDRESS ,
247264 contract_creation_block: POLYGON_AMOY_CONTRACT_CREATION_BLOCK ,
248265 }
@@ -259,6 +276,7 @@ mod tests {
259276 num_chain_id: 8453 ,
260277 self_id: examined_chain,
261278 literal_identifier: "base-mainnet" ,
279+ gas_price_safe_ceiling_minor: 50 * WEIS_IN_GWEI as u128 ,
262280 contract: BASE_MAINNET_CONTRACT_ADDRESS ,
263281 contract_creation_block: BASE_MAINNET_CONTRACT_CREATION_BLOCK ,
264282 }
@@ -275,6 +293,7 @@ mod tests {
275293 num_chain_id: 84532 ,
276294 self_id: examined_chain,
277295 literal_identifier: "base-sepolia" ,
296+ gas_price_safe_ceiling_minor: 50 * WEIS_IN_GWEI as u128 ,
278297 contract: BASE_SEPOLIA_TESTNET_CONTRACT_ADDRESS ,
279298 contract_creation_block: BASE_SEPOLIA_CONTRACT_CREATION_BLOCK ,
280299 }
@@ -291,6 +310,7 @@ mod tests {
291310 num_chain_id: 2 ,
292311 self_id: examined_chain,
293312 literal_identifier: "dev" ,
313+ gas_price_safe_ceiling_minor: 200 * WEIS_IN_GWEI as u128 ,
294314 contract: MULTINODE_TESTNET_CONTRACT_ADDRESS ,
295315 contract_creation_block: MULTINODE_TESTNET_CONTRACT_CREATION_BLOCK ,
296316 }
0 commit comments