hop/contracts/config/constants.ts
2022-12-09 18:15:16 +08:00

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
}