openzeppelin_relayer/constants/
evm_transaction.rs

1use crate::models::evm::Speed;
2
3pub const DEFAULT_TX_VALID_TIMESPAN: i64 = 8 * 60 * 60 * 1000; // 8 hours in milliseconds
4
5pub const DEFAULT_TRANSACTION_SPEED: Speed = Speed::Fast;
6
7pub const DEFAULT_GAS_LIMIT: u64 = 21000;
8pub const ERC20_TRANSFER_GAS_LIMIT: u64 = 65_000;
9pub const ERC721_TRANSFER_GAS_LIMIT: u64 = 80_000;
10pub const COMPLEX_GAS_LIMIT: u64 = 200_000;
11pub const GAS_TX_CREATE_CONTRACT: u64 = 53000;
12
13pub const GAS_TX_DATA_ZERO: u64 = 4; // Cost per zero byte in data
14pub const GAS_TX_DATA_NONZERO: u64 = 16; // Cost per non-zero byte in data
15
16/// Gas limit buffer multiplier for automatic gas limit estimation, 10% increase
17pub const GAS_LIMIT_BUFFER_MULTIPLIER: u64 = 110;
18
19/// Minimum gas price bump factor for transaction replacements (10% increase)
20pub const MIN_BUMP_FACTOR: f64 = 1.1;
21
22// Maximum number of transaction attempts before considering a NOOP
23pub const MAXIMUM_TX_ATTEMPTS: usize = 50;
24// Maximum number of NOOP transactions to attempt
25pub const MAXIMUM_NOOP_RETRY_ATTEMPTS: u32 = 50;
26
27/// Time to resubmit for Arbitrum networks
28pub const ARBITRUM_TIME_TO_RESUBMIT: i64 = 20_000;
29
30// Gas limit for Arbitrum networks (mainly used for NOOP transactions (with no data), covers L1 + L2 costs)
31pub const ARBITRUM_GAS_LIMIT: u64 = 50_000;