255 lines
8.0 KiB
TypeScript
255 lines
8.0 KiB
TypeScript
import { BigNumber } from 'ethers'
|
|
import { parseEther } from 'ethers/lib/utils'
|
|
|
|
export const CHAIN_IDS: any = {
|
|
ETHEREUM: {
|
|
MAINNET: BigNumber.from('1'),
|
|
RINKEBY: BigNumber.from('4'),
|
|
GOERLI: BigNumber.from('5'),
|
|
KOVAN: BigNumber.from('42'),
|
|
LOCAL: BigNumber.from('31337')
|
|
},
|
|
OPTIMISM: {
|
|
OPTIMISM_TESTNET: BigNumber.from('69'),
|
|
OPTIMISM_MAINNET: BigNumber.from('10'),
|
|
LOCAL: BigNumber.from('17')
|
|
},
|
|
ARBITRUM: {
|
|
ARBITRUM_TESTNET: BigNumber.from('421611'),
|
|
ARBITRUM_MAINNET: BigNumber.from('42161'),
|
|
TESTNET_4: BigNumber.from('421611')
|
|
},
|
|
XDAI: {
|
|
XDAI: BigNumber.from('100'),
|
|
SOKOL: BigNumber.from('77')
|
|
},
|
|
POLYGON: {
|
|
POLYGON: BigNumber.from('137'),
|
|
MUMBAI: BigNumber.from('80001')
|
|
}
|
|
}
|
|
|
|
const CHAIN_IDS_TO_ACTIVATE: any = {
|
|
ETHEREUM: {
|
|
MAINNET: BigNumber.from('1')
|
|
},
|
|
XDAI: {
|
|
XDAI: BigNumber.from('100')
|
|
},
|
|
POLYGON: {
|
|
POLYGON: BigNumber.from('137')
|
|
},
|
|
OPTIMISM: {
|
|
OPTIMISM_MAINNET: BigNumber.from('10')
|
|
},
|
|
ARBITRUM: {
|
|
ARBITRUM_MAINNET: BigNumber.from('42161')
|
|
}
|
|
}
|
|
|
|
export const ALL_SUPPORTED_CHAIN_IDS: string[] = (Object.values(
|
|
CHAIN_IDS
|
|
) as any[]).reduce((a: any[], b: any) => [...a, ...Object.values(b)], [])
|
|
|
|
export const ZERO_ADDRESS: string = '0x0000000000000000000000000000000000000000'
|
|
export const ONE_ADDRESS: string = '0x0000000000000000000000000000000000000001'
|
|
export const DEAD_ADDRESS: string = '0x000000000000000000000000000000000000dEaD'
|
|
export const ARBITRARY_ROOT_HASH: string =
|
|
'0x7465737400000000000000000000000000000000000000000000000000000000'
|
|
export const ARBITRARY_TRANSFER_NONCE: string =
|
|
'0x7465737400000000000000000000000000000000000000000000000000000000'
|
|
export const MAX_APPROVAL: BigNumber = BigNumber.from(
|
|
'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
|
|
)
|
|
|
|
export const DEFAULT_L2_BRIDGE_GAS_LIMIT: number = 500000
|
|
export const DEFAULT_MESSENGER_WRAPPER_GAS_LIMIT: number = 8000000
|
|
export const DEFAULT_MESSENGER_WRAPPER_GAS_PRICE: number = 0
|
|
export const DEFAULT_MESSENGER_WRAPPER_CALL_VALUE: number = 0
|
|
|
|
export const DEFAULT_AMOUNT_OUT_MIN: number = 0
|
|
export const DEFAULT_DEADLINE: BigNumber = BigNumber.from('9999999999')
|
|
|
|
export const MAX_NUM_SENDS_BEFORE_COMMIT: number = 100
|
|
|
|
export const USER_INITIAL_BALANCE: BigNumber = BigNumber.from(parseEther('10'))
|
|
export const LIQUIDITY_PROVIDER_INITIAL_BALANCE: BigNumber = BigNumber.from(
|
|
parseEther('1000')
|
|
)
|
|
export const LIQUIDITY_PROVIDER_AMM_AMOUNT: BigNumber = LIQUIDITY_PROVIDER_INITIAL_BALANCE.div(
|
|
2
|
|
)
|
|
|
|
export const BONDER_INITIAL_BALANCE: BigNumber = BigNumber.from(
|
|
parseEther('10000')
|
|
)
|
|
export const INITIAL_BONDED_AMOUNT: BigNumber = BONDER_INITIAL_BALANCE.div(5)
|
|
export const CHALLENGER_INITIAL_BALANCE: BigNumber = BigNumber.from(
|
|
parseEther('1')
|
|
)
|
|
export const RELAYER_INITIAL_BALANCE: BigNumber = BigNumber.from(
|
|
parseEther('10')
|
|
)
|
|
|
|
export const TRANSFER_AMOUNT: BigNumber = BigNumber.from(parseEther('5'))
|
|
export const DEFAULT_BONDER_FEE: BigNumber = BigNumber.from(parseEther('1'))
|
|
export const DEFAULT_RELAYER_FEE: BigNumber = BigNumber.from(parseEther('0'))
|
|
|
|
export const AMM_LP_MINIMUM_LIQUIDITY: BigNumber = BigNumber.from('1000')
|
|
|
|
export const DEFAULT_H_BRIDGE_TOKEN_NAME = 'DAI Hop Token'
|
|
export const DEFAULT_H_BRIDGE_TOKEN_SYMBOL = 'hDAI'
|
|
export const DEFAULT_H_BRIDGE_TOKEN_DECIMALS = 18
|
|
|
|
export const SECONDS_IN_A_MINUTE: number = 60
|
|
export const SECONDS_IN_AN_HOUR: number = 60 * SECONDS_IN_A_MINUTE
|
|
export const SECONDS_IN_A_DAY: number = 24 * SECONDS_IN_AN_HOUR
|
|
export const SECONDS_IN_A_WEEK: number = 7 * SECONDS_IN_A_DAY
|
|
export const DEFAULT_TIME_TO_WAIT: number = 0
|
|
export const TIMESTAMP_VARIANCE: number = 1000000
|
|
|
|
interface Overrides {
|
|
gasLimit: number
|
|
gasPrice: number
|
|
}
|
|
export const DEFAULT_ETHERS_OVERRIDES: Overrides = {
|
|
gasLimit: 4500000,
|
|
gasPrice: 10000000000
|
|
}
|
|
|
|
export const C_TO_H_SWAP_INDICES: string[] = ['1', '0']
|
|
export const H_TO_C_SWAP_INDICES: string[] = ['0', '1']
|
|
|
|
export const DEFAULT_SWAP_DECIMALS: string[] = ['18', '18']
|
|
export const DEFAULT_SWAP_LP_TOKEN_NAME: string = 'Hop DAI LP Token'
|
|
export const DEFAULT_SWAP_LP_TOKEN_SYMBOL: string = 'HOP-LP-DAI'
|
|
export const DEFAULT_SWAP_A: string = '200'
|
|
export const DEFAULT_SWAP_FEE: string = '4000000'
|
|
export const DEFAULT_SWAP_ADMIN_FEE: string = '0'
|
|
export const DEFAULT_SWAP_WITHDRAWAL_FEE: string = '0'
|
|
|
|
export const POLYGON_RPC_ENDPOINTS: any = {
|
|
MAINNET: 'https://polygon.rpc.hop.exchange',
|
|
GOERLI: 'https://mumbai.rpc.hop.exchange'
|
|
}
|
|
|
|
export const FX_ROOT_ADDRESSES: any = {
|
|
MAINNET: '0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2',
|
|
GOERLI: '0x3d1d3E34f7fB6D26245E6640E1c50710eFFf15bA'
|
|
}
|
|
|
|
export const FX_CHILD_ADDRESSES: any = {
|
|
MAINNET: '0x8397259c983751DAf40400790063935a11afa28a',
|
|
GOERLI: '0xCf73231F28B7331BBe3124B907840A94851f9f11'
|
|
}
|
|
|
|
export const CHECKPOINT_MANAGER_ADDRESSES: any = {
|
|
MAINNET: '0x86e4dc95c7fbdbf52e33d563bbdb00823894c287',
|
|
GOERLI: '0x2890bA17EfE978480615e330ecB65333b880928e'
|
|
}
|
|
|
|
export const ERC721_MINTABLE_PREDICATE_ADDRESSES: any = {
|
|
MAINNET: '0x932532aA4c0174b8453839A6E44eE09Cc615F2b7',
|
|
GOERLI: '0x56E14C4C1748a818a5564D33cF774c59EB3eDF59'
|
|
}
|
|
|
|
export const ERC1155_MINTABLE_PREDICATE_ADDRESSES: any = {
|
|
MAINNET: '0x2d641867411650cd05dB93B59964536b1ED5b1B7',
|
|
GOERLI: '0x72d6066F486bd0052eefB9114B66ae40e0A6031a'
|
|
}
|
|
|
|
export const AMB_PROXY_ADDRESSES: any = {
|
|
MAINNET: '0x4C36d2919e407f0Cc2Ee3c993ccF8ac26d9CE64e',
|
|
KOVAN: '0xFe446bEF1DbF7AFE24E81e05BC8B271C1BA9a560'
|
|
}
|
|
|
|
export const L1_CANONICAL_TOKEN_ADDRESSES: any = {
|
|
MAINNET: {
|
|
USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
|
|
MATIC: '0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0'
|
|
},
|
|
GOERLI: {
|
|
DAI: '0xC61bA16e864eFbd06a9fe30Aab39D18B8F63710a',
|
|
sETH: '0x5D13179c5fa40b87D53Ff67ca26245D3D5B2F872',
|
|
sBTC: '0x12a3a66720dD925fa93f7C895bC20Ca9560AdFe7',
|
|
USDC: '0x98339D8C260052B7ad81c28c16C0b98420f2B46a',
|
|
WBTC: '0xCB784a097f33231f2D3a1E22B236a9D2c878555d'
|
|
},
|
|
KOVAN: {
|
|
DAI: '0x436e3FfB93A4763575E5C0F6b3c97D5489E050da',
|
|
sETH: '0x7EE6109672c07Dcf97435C8238835EFF5D6E89FD',
|
|
sBTC: '0x7a4f56B0Dd21d730604A266245a0067b97605DAE',
|
|
USDC: '0xA46d09fd4B7961aE16D33122660f43726cB1Ff36',
|
|
WBTC: '0x1E1a556D2166A006e662864D376e8DD249087150'
|
|
},
|
|
LOCAL: {
|
|
USDC: '0x4ed7c70F96B99c776995fB64377f0d4aB3B0e1C1'
|
|
}
|
|
}
|
|
|
|
export const L2_CANONICAL_TOKEN_ADDRESSES: any = {
|
|
POLYGON: {
|
|
USDC: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
USDT: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
|
|
MATIC: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270'
|
|
},
|
|
MUMBAI: {
|
|
DAI: '0xb224913CE3851b0a0d7C0FB461eEF40f2e31ddb8',
|
|
sETH: '0x61F00BD6995A087F84BCcA62dCC835905f2a9207',
|
|
sBTC: '0xe5BEd2355E575b32B0e151EA6577Dfe05FaE5484',
|
|
USDC: '0x6D4dd09982853F08d9966aC3cA4Eb5885F16f2b2',
|
|
WBTC: '0x90ac599445B07c8aa0FC82248f51f6558136203D'
|
|
},
|
|
XDAI: {
|
|
USDC: '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',
|
|
USDT: '0x4ECaBa5870353805a9F068101A40E0f32ed605C6',
|
|
MATIC: '0x7122d7661c4564b7C6Cd4878B06766489a6028A2'
|
|
},
|
|
SOKOL: {
|
|
DAI: '0x1085e25E7085a8c96aa61DFf368A0e363E7432E6',
|
|
sETH: '0xeC3B005D2BF47f505F1A0cD68eEb7Ea439D6daF6',
|
|
sBTC: '0x696ED254EC9bD27328d5ef81905042913260eccd',
|
|
USDC: '0x3b0977b9e563F63F219019616BBD12cB1cdFF527',
|
|
WBTC: '0x94490EF228D4aBD189694f86D1684D972431380b'
|
|
},
|
|
OPTIMISM_MAINNET: {
|
|
USDC: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607',
|
|
USDT: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58',
|
|
MATIC: 'TODO'
|
|
},
|
|
OPTIMISM_TESTNET: {
|
|
KOVAN: {
|
|
DAI: '0xFB6528eFbEe8B900CeBf2c4Cf709b1EF36D46A60',
|
|
sETH: 'TODO',
|
|
sBTC: 'TODO',
|
|
USDC: '0x3b8e53B3aB8E01Fb57D0c9E893bC4d655AA67d84',
|
|
WBTC: 'TODO'
|
|
},
|
|
GOERLI: {
|
|
// TODO
|
|
}
|
|
},
|
|
ARBITRUM: {
|
|
DAI: '0xFa226E8B73Acaafeb29fEcd601afBEC8b1208986'
|
|
},
|
|
OP_LOCAL:{
|
|
USDC: '0x5FbDB2315678afecb367f032d93F642f64180aa3'
|
|
}
|
|
}
|
|
|
|
export const COMMON_SYMBOLS: { [key: string]: string } = {
|
|
DAI: 'DAI',
|
|
USDT: 'USDT',
|
|
sETH: 'sETH',
|
|
sBTC: 'sBTC',
|
|
USDC: 'USDC',
|
|
WBTC: 'WBTC',
|
|
TST: 'TST'
|
|
}
|
|
|
|
export const GAS_PRICE_MULTIPLIERS: { [key: string]: number } = {
|
|
MAINNET: 1.5,
|
|
TESTNET: 10
|
|
}
|