UNPKG

@candlelabs/sdk

Version:

đź›  An SDK for building applications on top of CandleDEX.

628 lines (512 loc) • 230 kB
import JSBI from 'jsbi'; export { default as JSBI } from 'jsbi'; import { BigNumber } from '@ethersproject/bignumber'; import invariant from 'tiny-invariant'; import { getAddress, getCreate2Address } from '@ethersproject/address'; import warning from 'tiny-warning'; import _Big from 'big.js'; import _Decimal from 'decimal.js-light'; import toFormat from 'toformat'; import { keccak256, pack } from '@ethersproject/solidity'; import { defaultAbiCoder } from '@ethersproject/abi'; import { SigningKey } from '@ethersproject/signing-key'; import { getMessage } from 'eip-712'; import { splitSignature } from '@ethersproject/bytes'; import { Contract } from '@ethersproject/contracts'; import fetch from 'isomorphic-unfetch'; var ChainId; (function (ChainId) { ChainId[ChainId["MAINNET"] = 1] = "MAINNET"; ChainId[ChainId["ROPSTEN"] = 3] = "ROPSTEN"; ChainId[ChainId["RINKEBY"] = 4] = "RINKEBY"; ChainId[ChainId["G\xD6RLI"] = 5] = "G\xD6RLI"; ChainId[ChainId["KOVAN"] = 42] = "KOVAN"; ChainId[ChainId["MATIC"] = 137] = "MATIC"; ChainId[ChainId["MATIC_TESTNET"] = 80001] = "MATIC_TESTNET"; ChainId[ChainId["FANTOM"] = 250] = "FANTOM"; ChainId[ChainId["FANTOM_TESTNET"] = 4002] = "FANTOM_TESTNET"; ChainId[ChainId["XDAI"] = 100] = "XDAI"; ChainId[ChainId["BSC"] = 56] = "BSC"; ChainId[ChainId["BSC_TESTNET"] = 97] = "BSC_TESTNET"; ChainId[ChainId["ARBITRUM"] = 42161] = "ARBITRUM"; ChainId[ChainId["ARBITRUM_TESTNET"] = 79377087078960] = "ARBITRUM_TESTNET"; ChainId[ChainId["MOONBEAM_TESTNET"] = 1287] = "MOONBEAM_TESTNET"; ChainId[ChainId["AVALANCHE"] = 43114] = "AVALANCHE"; ChainId[ChainId["AVALANCHE_TESTNET"] = 43113] = "AVALANCHE_TESTNET"; ChainId[ChainId["HECO"] = 128] = "HECO"; ChainId[ChainId["HECO_TESTNET"] = 256] = "HECO_TESTNET"; ChainId[ChainId["HARMONY"] = 1666600000] = "HARMONY"; ChainId[ChainId["HARMONY_TESTNET"] = 1666700000] = "HARMONY_TESTNET"; ChainId[ChainId["OKEX"] = 66] = "OKEX"; ChainId[ChainId["OKEX_TESTNET"] = 65] = "OKEX_TESTNET"; ChainId[ChainId["CELO"] = 42220] = "CELO"; ChainId[ChainId["PALM"] = 11297108109] = "PALM"; ChainId[ChainId["PALM_TESTNET"] = 11297108099] = "PALM_TESTNET"; ChainId[ChainId["MOONRIVER"] = 1285] = "MOONRIVER"; ChainId[ChainId["FUSE"] = 122] = "FUSE"; ChainId[ChainId["TELOS"] = 40] = "TELOS"; })(ChainId || (ChainId = {})); var Rounding; (function (Rounding) { Rounding[Rounding["ROUND_DOWN"] = 0] = "ROUND_DOWN"; Rounding[Rounding["ROUND_HALF_UP"] = 1] = "ROUND_HALF_UP"; Rounding[Rounding["ROUND_UP"] = 2] = "ROUND_UP"; })(Rounding || (Rounding = {})); var TradeType; (function (TradeType) { TradeType[TradeType["EXACT_INPUT"] = 0] = "EXACT_INPUT"; TradeType[TradeType["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT"; })(TradeType || (TradeType = {})); var KashiAction; (function (KashiAction) { KashiAction[KashiAction["ADD_ASSET"] = 1] = "ADD_ASSET"; KashiAction[KashiAction["REPAY"] = 2] = "REPAY"; KashiAction[KashiAction["REMOVE_ASSET"] = 3] = "REMOVE_ASSET"; KashiAction[KashiAction["REMOVE_COLLATERAL"] = 4] = "REMOVE_COLLATERAL"; KashiAction[KashiAction["BORROW"] = 5] = "BORROW"; KashiAction[KashiAction["GET_REPAY_SHARE"] = 6] = "GET_REPAY_SHARE"; KashiAction[KashiAction["GET_REPAY_PART"] = 7] = "GET_REPAY_PART"; KashiAction[KashiAction["ACCRUE"] = 8] = "ACCRUE"; // Functions that don't need accrue to be called KashiAction[KashiAction["ADD_COLLATERAL"] = 10] = "ADD_COLLATERAL"; KashiAction[KashiAction["UPDATE_EXCHANGE_RATE"] = 11] = "UPDATE_EXCHANGE_RATE"; // Function on BentoBox KashiAction[KashiAction["BENTO_DEPOSIT"] = 20] = "BENTO_DEPOSIT"; KashiAction[KashiAction["BENTO_WITHDRAW"] = 21] = "BENTO_WITHDRAW"; KashiAction[KashiAction["BENTO_TRANSFER"] = 22] = "BENTO_TRANSFER"; KashiAction[KashiAction["BENTO_TRANSFER_MULTIPLE"] = 23] = "BENTO_TRANSFER_MULTIPLE"; KashiAction[KashiAction["BENTO_SETAPPROVAL"] = 24] = "BENTO_SETAPPROVAL"; // Any external call (except to BentoBox) KashiAction[KashiAction["CALL"] = 30] = "CALL"; })(KashiAction || (KashiAction = {})); // Fee - Tiers TBD var Fee; (function (Fee) { Fee[Fee["DEFAULT"] = 30] = "DEFAULT"; })(Fee || (Fee = {})); var OrderStatus; (function (OrderStatus) { OrderStatus["FILLED"] = "FILLED"; OrderStatus["CANCELLED"] = "CANCELLED"; OrderStatus["EXPIRED"] = "EXPIRED"; OrderStatus["PENDING"] = "PENDING"; })(OrderStatus || (OrderStatus = {})); var _USDC_ADDRESS, _USD_ADDRESS, _FACTORY_ADDRESS, _ROUTER_ADDRESS, _CANDLE_ADDRESS, _MASTERCHEF_ADDRESS, _BAR_ADDRESS, _MAKER_ADDRESS, _TIMELOCK_ADDRESS, _BENTOBOX_ADDRESS, _KASHI_ADDRESS, _SUSHISWAP_SWAPPER_AD, _SUSHISWAP_MULTISWAPP, _SUSHISWAP_MULTI_EXAC, _CHAINLINK_ORACLE_ADD, _BORING_HELPER_ADDRES, _STOP_LIMIT_ORDER_ADD, _ARCHER_ROUTER_ADDRES, _MINICHEF_ADDRESS, _OLD_FARMS, _WETH9_ADDRESS, _WNATIVE_ADDRESS, _MASTERCHEF_V2_ADDRES, _ENS_REGISTRAR_ADDRES, _ZAPPER_ADDRESS, _MERKLE_DISTRIBUTOR_A, _MULTICALL2_ADDRESS; var USDC_ADDRESS = (_USDC_ADDRESS = {}, _USDC_ADDRESS[ChainId.MAINNET] = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', _USDC_ADDRESS[ChainId.ROPSTEN] = '0x0D9C8723B343A8368BebE0B5E89273fF8D712e3C', _USDC_ADDRESS[ChainId.KOVAN] = '0xb7a4F3E9097C08dA09517b5aB877F7a917224ede', _USDC_ADDRESS[ChainId.MATIC] = '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', _USDC_ADDRESS[ChainId.FANTOM] = '0x04068DA6C83AFCFA0e13ba15A6696662335D5B75', _USDC_ADDRESS[ChainId.BSC] = '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', _USDC_ADDRESS[ChainId.HARMONY] = '0x985458E523dB3d53125813eD68c274899e9DfAb4', _USDC_ADDRESS[ChainId.HECO] = '0x9362Bbef4B8313A8Aa9f0c9808B80577Aa26B73B', _USDC_ADDRESS[ChainId.OKEX] = '0xc946DAf81b08146B1C7A8Da2A851Ddf2B3EAaf85', _USDC_ADDRESS[ChainId.XDAI] = '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83', _USDC_ADDRESS[ChainId.ARBITRUM] = '0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8', _USDC_ADDRESS[ChainId.AVALANCHE] = '0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664', _USDC_ADDRESS[ChainId.MOONRIVER] = '0xE3F5a90F9cb311505cd691a46596599aA1A0AD7D', _USDC_ADDRESS[ChainId.FUSE] = '0x620fd5fa44BE6af63715Ef4E65DDFA0387aD13F5', _USDC_ADDRESS); var USD_ADDRESS = (_USD_ADDRESS = {}, _USD_ADDRESS[ChainId.MAINNET] = USDC_ADDRESS[ChainId.MAINNET], _USD_ADDRESS[ChainId.ROPSTEN] = USDC_ADDRESS[ChainId.ROPSTEN], _USD_ADDRESS[ChainId.KOVAN] = USDC_ADDRESS[ChainId.KOVAN], _USD_ADDRESS[ChainId.MATIC] = USDC_ADDRESS[ChainId.MATIC], _USD_ADDRESS[ChainId.FANTOM] = USDC_ADDRESS[ChainId.FANTOM], _USD_ADDRESS[ChainId.BSC] = USDC_ADDRESS[ChainId.BSC], _USD_ADDRESS[ChainId.HARMONY] = USDC_ADDRESS[ChainId.HARMONY], _USD_ADDRESS[ChainId.HECO] = USDC_ADDRESS[ChainId.HECO], _USD_ADDRESS[ChainId.OKEX] = USDC_ADDRESS[ChainId.OKEX], _USD_ADDRESS[ChainId.XDAI] = USDC_ADDRESS[ChainId.XDAI], _USD_ADDRESS[ChainId.ARBITRUM] = USDC_ADDRESS[ChainId.ARBITRUM], _USD_ADDRESS[ChainId.AVALANCHE] = USDC_ADDRESS[ChainId.AVALANCHE], _USD_ADDRESS[ChainId.MOONRIVER] = USDC_ADDRESS[ChainId.MOONRIVER], _USD_ADDRESS[ChainId.CELO] = '0x765DE816845861e75A25fCA122bb6898B8B1282a', _USD_ADDRESS[ChainId.FUSE] = USDC_ADDRESS[ChainId.FUSE], _USD_ADDRESS); var FACTORY_ADDRESS = (_FACTORY_ADDRESS = {}, _FACTORY_ADDRESS[ChainId.MAINNET] = '0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac', _FACTORY_ADDRESS[ChainId.ROPSTEN] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.RINKEBY] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.GĂ–RLI] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.KOVAN] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.FANTOM] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.FANTOM_TESTNET] = '', _FACTORY_ADDRESS[ChainId.MATIC] = '0x8397CAe4863825880E1b0000461FfbeCD6686a7e', _FACTORY_ADDRESS[ChainId.MATIC_TESTNET] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.XDAI] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.BSC] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.BSC_TESTNET] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.ARBITRUM] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.ARBITRUM_TESTNET] = '', _FACTORY_ADDRESS[ChainId.MOONBEAM_TESTNET] = '0x2Ce3F07dD4c62b56a502E223A7cBE38b1d77A1b5', _FACTORY_ADDRESS[ChainId.AVALANCHE] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.AVALANCHE_TESTNET] = '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', _FACTORY_ADDRESS[ChainId.HECO] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.HECO_TESTNET] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.HARMONY] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.HARMONY_TESTNET] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.OKEX] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.OKEX_TESTNET] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.CELO] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.PALM] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.PALM_TESTNET] = '', _FACTORY_ADDRESS[ChainId.MOONRIVER] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS[ChainId.FUSE] = '0x43eA90e2b786728520e4f930d2A71a477BF2737C', _FACTORY_ADDRESS[ChainId.TELOS] = '0xc35DADB65012eC5796536bD9864eD8773aBc74C4', _FACTORY_ADDRESS); var ROUTER_ADDRESS = (_ROUTER_ADDRESS = {}, _ROUTER_ADDRESS[ChainId.MAINNET] = '0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F', _ROUTER_ADDRESS[ChainId.RINKEBY] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.ROPSTEN] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.GĂ–RLI] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.KOVAN] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.FANTOM] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.FANTOM_TESTNET] = '', _ROUTER_ADDRESS[ChainId.MATIC] = '0xE7FB19Ac07B1647aAacfb78dd38eF1e79e701D3c', _ROUTER_ADDRESS[ChainId.MATIC_TESTNET] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.XDAI] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.BSC] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.BSC_TESTNET] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.ARBITRUM] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.ARBITRUM_TESTNET] = '', _ROUTER_ADDRESS[ChainId.MOONBEAM_TESTNET] = '0xeB5c2BB5E83B51d83F3534Ae21E84336B8B376ef', _ROUTER_ADDRESS[ChainId.AVALANCHE] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.AVALANCHE_TESTNET] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.HECO] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.HECO_TESTNET] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.HARMONY] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.HARMONY_TESTNET] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.OKEX] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.OKEX_TESTNET] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.CELO] = '0x1421bDe4B10e8dd459b3BCb598810B1337D56842', _ROUTER_ADDRESS[ChainId.PALM] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.PALM_TESTNET] = '', _ROUTER_ADDRESS[ChainId.MOONRIVER] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS[ChainId.FUSE] = '0xF4d73326C13a4Fc5FD7A064217e12780e9Bd62c3', _ROUTER_ADDRESS[ChainId.TELOS] = '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506', _ROUTER_ADDRESS); var CANDLE_ADDRESS = (_CANDLE_ADDRESS = {}, _CANDLE_ADDRESS[ChainId.ROPSTEN] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _CANDLE_ADDRESS[ChainId.RINKEBY] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _CANDLE_ADDRESS[ChainId.GĂ–RLI] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _CANDLE_ADDRESS[ChainId.KOVAN] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _CANDLE_ADDRESS[ChainId.FANTOM] = '0xae75A438b2E0cB8Bb01Ec1E1e376De11D44477CC', _CANDLE_ADDRESS[ChainId.MATIC] = '0x5423063af146f5abf88eb490486e6b53fa135ec9', _CANDLE_ADDRESS[ChainId.XDAI] = '0x831C475a2933692C977A6223A4DF7542C9DF4E55', _CANDLE_ADDRESS[ChainId.BSC] = '0xdaBcdBc8eCEbE3b2f59ee7B5FC1a46FEEF50dB5A', _CANDLE_ADDRESS[ChainId.ARBITRUM] = '0xd4d42F0b6DEF4CE0383636770eF773390d85c61A', _CANDLE_ADDRESS[ChainId.AVALANCHE] = '0x37B608519F91f70F2EeB0e5Ed9AF4061722e4F76', _CANDLE_ADDRESS[ChainId.HECO] = '0x52E00B2dA5Bd7940fFe26B609A42F957f31118D5', _CANDLE_ADDRESS[ChainId.HARMONY] = '0xBEC775Cb42AbFa4288dE81F387a9b1A3c4Bc552A', _CANDLE_ADDRESS[ChainId.OKEX] = '0x2218E0D5E0173769F5b4939a3aE423f7e5E4EAB7', _CANDLE_ADDRESS[ChainId.OKEX_TESTNET] = '', _CANDLE_ADDRESS[ChainId.PALM] = '', _CANDLE_ADDRESS[ChainId.PALM_TESTNET] = '', _CANDLE_ADDRESS[ChainId.MOONRIVER] = '0xf390830DF829cf22c53c8840554B98eafC5dCBc2', _CANDLE_ADDRESS[ChainId.CELO] = '0x29dFce9c22003A4999930382Fd00f9Fd6133Acd1', _CANDLE_ADDRESS[ChainId.TELOS] = '0x922D641a426DcFFaeF11680e5358F34d97d112E1', _CANDLE_ADDRESS[ChainId.FUSE] = '0x90708b20ccC1eb95a4FA7C8b18Fd2C22a0Ff9E78', _CANDLE_ADDRESS); var MASTERCHEF_ADDRESS = (_MASTERCHEF_ADDRESS = {}, _MASTERCHEF_ADDRESS[ChainId.MAINNET] = '0xc2EdaD668740f1aA35E4D8f227fB8E17dcA888Cd', _MASTERCHEF_ADDRESS[ChainId.ROPSTEN] = '0x80C7DD17B01855a6D2347444a0FCC36136a314de', _MASTERCHEF_ADDRESS[ChainId.RINKEBY] = '0x80C7DD17B01855a6D2347444a0FCC36136a314de', _MASTERCHEF_ADDRESS[ChainId.GĂ–RLI] = '0x80C7DD17B01855a6D2347444a0FCC36136a314de', _MASTERCHEF_ADDRESS[ChainId.KOVAN] = '0x80C7DD17B01855a6D2347444a0FCC36136a314de', _MASTERCHEF_ADDRESS); var BAR_ADDRESS = (_BAR_ADDRESS = {}, _BAR_ADDRESS[ChainId.MAINNET] = '0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272', _BAR_ADDRESS[ChainId.ROPSTEN] = '0x1be211D8DA40BC0ae8719c6663307Bfc987b1d6c', _BAR_ADDRESS[ChainId.RINKEBY] = '0x1be211D8DA40BC0ae8719c6663307Bfc987b1d6c', _BAR_ADDRESS[ChainId.GĂ–RLI] = '0x1be211D8DA40BC0ae8719c6663307Bfc987b1d6c', _BAR_ADDRESS[ChainId.KOVAN] = '0x1be211D8DA40BC0ae8719c6663307Bfc987b1d6c', _BAR_ADDRESS); var MAKER_ADDRESS = (_MAKER_ADDRESS = {}, _MAKER_ADDRESS[ChainId.MAINNET] = '0xE11fc0B43ab98Eb91e9836129d1ee7c3Bc95df50', _MAKER_ADDRESS[ChainId.ROPSTEN] = '0x1b9d177CcdeA3c79B6c8F40761fc8Dc9d0500EAa', _MAKER_ADDRESS[ChainId.RINKEBY] = '0x1b9d177CcdeA3c79B6c8F40761fc8Dc9d0500EAa', _MAKER_ADDRESS[ChainId.GĂ–RLI] = '0x1b9d177CcdeA3c79B6c8F40761fc8Dc9d0500EAa', _MAKER_ADDRESS[ChainId.KOVAN] = '0x1b9d177CcdeA3c79B6c8F40761fc8Dc9d0500EAa', _MAKER_ADDRESS); var TIMELOCK_ADDRESS = (_TIMELOCK_ADDRESS = {}, _TIMELOCK_ADDRESS[ChainId.MAINNET] = '0x9a8541Ddf3a932a9A922B607e9CF7301f1d47bD1', _TIMELOCK_ADDRESS); var BENTOBOX_ADDRESS = (_BENTOBOX_ADDRESS = {}, _BENTOBOX_ADDRESS[ChainId.MAINNET] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.ROPSTEN] = '0x6BdD85290001C8Aef74f35A7606065FA15aD5ACF', _BENTOBOX_ADDRESS[ChainId.RINKEBY] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.GĂ–RLI] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.KOVAN] = '0x9A0D9920D92c178a58D99B455898Df2df22A2eE4', _BENTOBOX_ADDRESS[ChainId.FANTOM] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.MATIC] = '0x1f19A0643732C48327f8d30e82bD37C9F365a1c2', _BENTOBOX_ADDRESS[ChainId.MATIC_TESTNET] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.XDAI] = '0xE2d7F5dd869Fc7c126D21b13a9080e75a4bDb324', _BENTOBOX_ADDRESS[ChainId.BSC] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.BSC_TESTNET] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.ARBITRUM] = '0x74c764D41B77DBbb4fe771daB1939B00b146894A', _BENTOBOX_ADDRESS[ChainId.AVALANCHE] = '0x0711B6026068f736bae6B213031fCE978D48E026', _BENTOBOX_ADDRESS[ChainId.HECO] = '0xF5BCE5077908a1b7370B9ae04AdC565EBd643966', _BENTOBOX_ADDRESS[ChainId.CELO] = '0x0711B6026068f736bae6B213031fCE978D48E026', _BENTOBOX_ADDRESS[ChainId.HARMONY] = '0xA28cfF72b04f83A7E3f912e6ad34d5537708a2C2', _BENTOBOX_ADDRESS); var KASHI_ADDRESS = (_KASHI_ADDRESS = {}, _KASHI_ADDRESS[ChainId.MAINNET] = '0x2cBA6Ab6574646Badc84F0544d05059e57a5dc42', _KASHI_ADDRESS[ChainId.KOVAN] = '0x2cBA6Ab6574646Badc84F0544d05059e57a5dc42', _KASHI_ADDRESS[ChainId.MATIC] = '0x7e0e948d36F8e69fC2Dd7a9b129Ff4a86787feD8', _KASHI_ADDRESS[ChainId.XDAI] = '0x7a6DA9903d0a481F40b8336c1463487BC8C0407e', _KASHI_ADDRESS[ChainId.BSC] = '0x2cBA6Ab6574646Badc84F0544d05059e57a5dc42', _KASHI_ADDRESS[ChainId.ARBITRUM] = '0xa010eE0226cd071BeBd8919A1F675cAE1f1f5D3e', _KASHI_ADDRESS[ChainId.AVALANCHE] = '0x513037395FA0C9c35E41f89189ceDfE3bD42fAdb', _KASHI_ADDRESS[ChainId.AVALANCHE_TESTNET] = '', _KASHI_ADDRESS[ChainId.HECO] = '0x2cBA6Ab6574646Badc84F0544d05059e57a5dc42', _KASHI_ADDRESS); var SUSHISWAP_SWAPPER_ADDRESS = (_SUSHISWAP_SWAPPER_AD = {}, _SUSHISWAP_SWAPPER_AD[ChainId.MAINNET] = '0x1766733112408b95239aD1951925567CB1203084', _SUSHISWAP_SWAPPER_AD[ChainId.MATIC] = '0x039f392401B07148b66869bD9C1A7c08b79fEBd0', _SUSHISWAP_SWAPPER_AD[ChainId.XDAI] = '0xE02BDb31C353CE95A1D74F81C93eEa70Bf7371B9', _SUSHISWAP_SWAPPER_AD[ChainId.BSC] = '0x1766733112408b95239aD1951925567CB1203084', _SUSHISWAP_SWAPPER_AD[ChainId.ARBITRUM] = '0x0bFcD5dD76218bF9e3BE8A1055f9e6D27E5745eb', _SUSHISWAP_SWAPPER_AD[ChainId.AVALANCHE] = '0x062eee8B38ab5E8ee3bc58CE505939db53E63785', _SUSHISWAP_SWAPPER_AD[ChainId.HECO] = '0x1766733112408b95239aD1951925567CB1203084', _SUSHISWAP_SWAPPER_AD); var SUSHISWAP_MULTISWAPPER_ADDRESS = (_SUSHISWAP_MULTISWAPP = {}, _SUSHISWAP_MULTISWAPP[ChainId.MAINNET] = '0x545820d5Cc05248da112419fEfb18522c63C8e12', _SUSHISWAP_MULTISWAPP[ChainId.KOVAN] = '0xc0c1649b2c67f1a9f5ff1dd618188165e2555bcf', _SUSHISWAP_MULTISWAPP[ChainId.MATIC] = '0x4850Ee9053b50Ec1b65b5082170cB4EB830403CA', _SUSHISWAP_MULTISWAPP[ChainId.XDAI] = '0x735f0FbEb3b6389986BcaAf073Af07D2F8be2b93', _SUSHISWAP_MULTISWAPP[ChainId.BSC] = '0x86c655cAc122e9A2fd9Ae1f79Df27b30E357968c', _SUSHISWAP_MULTISWAPP[ChainId.ARBITRUM] = '0xbe7D5968296843756109D42946D01195320922EF', _SUSHISWAP_MULTISWAPP[ChainId.AVALANCHE] = '0xB7C8b5BFcd7212f034Be42a2aAb08b8773B76920', _SUSHISWAP_MULTISWAPP); var SUSHISWAP_MULTI_EXACT_SWAPPER_ADDRESS = (_SUSHISWAP_MULTI_EXAC = {}, _SUSHISWAP_MULTI_EXAC[ChainId.MAINNET] = '0xB527C5295c4Bc348cBb3a2E96B2494fD292075a7', _SUSHISWAP_MULTI_EXAC[ChainId.KOVAN] = '0x75AE0Aa596D39b20addC921DeB5EE3c96279dABE', _SUSHISWAP_MULTI_EXAC[ChainId.MATIC] = '0xDB6C4EDd9545d3b815dA85E6429B699c418886f9', _SUSHISWAP_MULTI_EXAC[ChainId.XDAI] = '0x07b6e34EeCF38B02e83b6B4702699717e298967E', _SUSHISWAP_MULTI_EXAC[ChainId.BSC] = '0x1B16149Edaf1EFa6ADE6aEEF33e63C6e08c9bB1B', _SUSHISWAP_MULTI_EXAC[ChainId.ARBITRUM] = '0x860D841bfD1cfEf72A14B2b734005799F07dC7ED', _SUSHISWAP_MULTI_EXAC[ChainId.AVALANCHE] = '0x2c46217Fae90D302d1Fb5467ADA504bC2A84f448', _SUSHISWAP_MULTI_EXAC); var PEGGED_ORACLE_ADDRESS = '0x6cbfbB38498Df0E1e7A4506593cDB02db9001564'; var SUSHISWAP_TWAP_0_ORACLE_ADDRESS = '0x66F03B0d30838A3fee971928627ea6F59B236065'; var SUSHISWAP_TWAP_1_ORACLE_ADDRESS = '0x0D51b575591F8f74a2763Ade75D3CDCf6789266f'; var CHAINLINK_ORACLE_ADDRESS = (_CHAINLINK_ORACLE_ADD = {}, _CHAINLINK_ORACLE_ADD[ChainId.MAINNET] = '0x00632CFe43d8F9f8E6cD0d39Ffa3D4fa7ec73CFB', _CHAINLINK_ORACLE_ADD[ChainId.MATIC] = '0x00632CFe43d8F9f8E6cD0d39Ffa3D4fa7ec73CFB', _CHAINLINK_ORACLE_ADD[ChainId.XDAI] = '0x00632CFe43d8F9f8E6cD0d39Ffa3D4fa7ec73CFB', _CHAINLINK_ORACLE_ADD[ChainId.BSC] = '0x00632CFe43d8F9f8E6cD0d39Ffa3D4fa7ec73CFB', _CHAINLINK_ORACLE_ADD[ChainId.ARBITRUM] = '0xB2B5C26B6868be10fF77e4E233fD231ceB90162a', _CHAINLINK_ORACLE_ADD[ChainId.AVALANCHE] = '0x43198B6fA5d89B88D2E072fA4841724571De5A59', _CHAINLINK_ORACLE_ADD); var BORING_HELPER_ADDRESS = (_BORING_HELPER_ADDRES = {}, _BORING_HELPER_ADDRES[ChainId.MAINNET] = '0x11Ca5375AdAfd6205E41131A4409f182677996E6', _BORING_HELPER_ADDRES[ChainId.KOVAN] = '0x11Ca5375AdAfd6205E41131A4409f182677996E6', _BORING_HELPER_ADDRES[ChainId.MATIC] = '0x662E08371Aa21eAE6fBf4bBCD597D4C82644e930', _BORING_HELPER_ADDRES[ChainId.XDAI] = '0x97e4a0fb71243A83A6FbaEF7Cf73617594e4cF2F', _BORING_HELPER_ADDRES[ChainId.BSC] = '0x11Ca5375AdAfd6205E41131A4409f182677996E6', _BORING_HELPER_ADDRES[ChainId.ARBITRUM] = '0x9AF28d4f7Fa007686958c306BD4c8c52c2b615b8', _BORING_HELPER_ADDRES[ChainId.AVALANCHE] = '0xD18cA07a599bf5eBb9B7327871ad682F0b660748', _BORING_HELPER_ADDRES[ChainId.HECO] = '0x11Ca5375AdAfd6205E41131A4409f182677996E6', _BORING_HELPER_ADDRES); var STOP_LIMIT_ORDER_ADDRESS = (_STOP_LIMIT_ORDER_ADD = {}, _STOP_LIMIT_ORDER_ADD[ChainId.KOVAN] = '0xce9365dB1C99897f04B3923C03ba9a5f80E8DB87', _STOP_LIMIT_ORDER_ADD[ChainId.MATIC] = '0x1aDb3Bd86bb01797667eC382a0BC6A9854b4005f', _STOP_LIMIT_ORDER_ADD); var ARCHER_ROUTER_ADDRESS = (_ARCHER_ROUTER_ADDRES = {}, _ARCHER_ROUTER_ADDRES[ChainId.MAINNET] = '0x9917C083FF9FbD29Df1367FBF7F2388A9a202431', _ARCHER_ROUTER_ADDRES); var MINICHEF_ADDRESS = (_MINICHEF_ADDRESS = {}, _MINICHEF_ADDRESS[ChainId.MATIC] = '0x5610933D08f992F7c7d6Aa3f5aC7e356597e84ec', _MINICHEF_ADDRESS[ChainId.XDAI] = '0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3', _MINICHEF_ADDRESS[ChainId.HARMONY] = '0x67dA5f2FfaDDfF067AB9d5F025F8810634d84287', _MINICHEF_ADDRESS[ChainId.ARBITRUM] = '0xF4d73326C13a4Fc5FD7A064217e12780e9Bd62c3', _MINICHEF_ADDRESS[ChainId.CELO] = '0x8084936982D089130e001b470eDf58faCA445008', _MINICHEF_ADDRESS[ChainId.MOONRIVER] = '0x3dB01570D97631f69bbb0ba39796865456Cf89A5', _MINICHEF_ADDRESS[ChainId.FUSE] = '0x182CD0C6F1FaEc0aED2eA83cd0e160c8Bd4cb063', _MINICHEF_ADDRESS); var OLD_FARMS = (_OLD_FARMS = {}, _OLD_FARMS[ChainId.CELO] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _OLD_FARMS); var WETH9_ADDRESS = (_WETH9_ADDRESS = {}, _WETH9_ADDRESS[ChainId.MAINNET] = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', _WETH9_ADDRESS[ChainId.ROPSTEN] = '0xc778417E063141139Fce010982780140Aa0cD5Ab', _WETH9_ADDRESS[ChainId.RINKEBY] = '0xc778417E063141139Fce010982780140Aa0cD5Ab', _WETH9_ADDRESS[ChainId.GĂ–RLI] = '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', _WETH9_ADDRESS[ChainId.KOVAN] = '0xd0A1E359811322d97991E03f863a0C30C2cF029C', _WETH9_ADDRESS[ChainId.ARBITRUM] = '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', _WETH9_ADDRESS[ChainId.ARBITRUM_TESTNET] = '0xf8456e5e6A225C2C1D74D8C9a4cB2B1d5dc1153b', _WETH9_ADDRESS[ChainId.BSC] = '0x2170Ed0880ac9A755fd29B2688956BD959F933F8', _WETH9_ADDRESS[ChainId.FANTOM] = '0x74b23882a30290451A17c44f4F05243b6b58C76d', _WETH9_ADDRESS[ChainId.MATIC] = '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', _WETH9_ADDRESS[ChainId.OKEX] = '0x2170Ed0880ac9A755fd29B2688956BD959F933F8', _WETH9_ADDRESS[ChainId.HECO] = '0x64FF637fB478863B7468bc97D30a5bF3A428a1fD', _WETH9_ADDRESS[ChainId.HARMONY] = '0x6983D1E6DEf3690C4d616b13597A09e6193EA013', _WETH9_ADDRESS[ChainId.XDAI] = '0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1', _WETH9_ADDRESS[ChainId.AVALANCHE] = '0xf20d962a6c8f70c731bd838a3a388D7d48fA6e15', _WETH9_ADDRESS[ChainId.CELO] = '0x122013fd7dF1C6F636a5bb8f03108E876548b455', _WETH9_ADDRESS); var WNATIVE_ADDRESS = (_WNATIVE_ADDRESS = {}, _WNATIVE_ADDRESS[ChainId.MAINNET] = WETH9_ADDRESS[ChainId.MAINNET], _WNATIVE_ADDRESS[ChainId.ROPSTEN] = WETH9_ADDRESS[ChainId.ROPSTEN], _WNATIVE_ADDRESS[ChainId.RINKEBY] = WETH9_ADDRESS[ChainId.RINKEBY], _WNATIVE_ADDRESS[ChainId.GĂ–RLI] = WETH9_ADDRESS[ChainId.GĂ–RLI], _WNATIVE_ADDRESS[ChainId.KOVAN] = WETH9_ADDRESS[ChainId.KOVAN], _WNATIVE_ADDRESS[ChainId.ARBITRUM] = WETH9_ADDRESS[ChainId.ARBITRUM], _WNATIVE_ADDRESS[ChainId.ARBITRUM_TESTNET] = WETH9_ADDRESS[ChainId.ARBITRUM_TESTNET], _WNATIVE_ADDRESS[ChainId.FANTOM] = '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83', _WNATIVE_ADDRESS[ChainId.FANTOM_TESTNET] = '0xf1277d1Ed8AD466beddF92ef448A132661956621', _WNATIVE_ADDRESS[ChainId.MATIC] = '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', _WNATIVE_ADDRESS[ChainId.MATIC_TESTNET] = '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', _WNATIVE_ADDRESS[ChainId.XDAI] = '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d', _WNATIVE_ADDRESS[ChainId.BSC] = '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', _WNATIVE_ADDRESS[ChainId.BSC_TESTNET] = '0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd', _WNATIVE_ADDRESS[ChainId.MOONBEAM_TESTNET] = '0xe73763DB808ecCDC0E36bC8E32510ED126910394', _WNATIVE_ADDRESS[ChainId.AVALANCHE] = '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', _WNATIVE_ADDRESS[ChainId.AVALANCHE_TESTNET] = '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', _WNATIVE_ADDRESS[ChainId.HECO] = '0x5545153CCFcA01fbd7Dd11C0b23ba694D9509A6F', _WNATIVE_ADDRESS[ChainId.HECO_TESTNET] = '0x5B2DA6F42CA09C77D577a12BeaD0446148830687', _WNATIVE_ADDRESS[ChainId.HARMONY] = '0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a', _WNATIVE_ADDRESS[ChainId.HARMONY_TESTNET] = '0x7a2afac38517d512E55C0bCe3b6805c10a04D60F', _WNATIVE_ADDRESS[ChainId.OKEX] = '0x8F8526dbfd6E38E3D8307702cA8469Bae6C56C15', _WNATIVE_ADDRESS[ChainId.OKEX_TESTNET] = '0x2219845942d28716c0F7C605765fABDcA1a7d9E0', _WNATIVE_ADDRESS[ChainId.CELO] = '0x471EcE3750Da237f93B8E339c536989b8978a438', _WNATIVE_ADDRESS[ChainId.PALM] = '0xF98cABF0a963452C5536330408B2590567611a71', _WNATIVE_ADDRESS[ChainId.MOONRIVER] = '0xf50225a84382c74CbdeA10b0c176f71fc3DE0C4d', _WNATIVE_ADDRESS[ChainId.FUSE] = '0x0BE9e53fd7EDaC9F859882AfdDa116645287C629', _WNATIVE_ADDRESS[ChainId.TELOS] = '0xD102cE6A4dB07D247fcc28F366A623Df0938CA9E', _WNATIVE_ADDRESS); var MASTERCHEF_V2_ADDRESS = (_MASTERCHEF_V2_ADDRES = {}, _MASTERCHEF_V2_ADDRES[ChainId.MAINNET] = '0xEF0881eC094552b2e128Cf945EF17a6752B4Ec5d', _MASTERCHEF_V2_ADDRES); var ENS_REGISTRAR_ADDRESS = (_ENS_REGISTRAR_ADDRES = {}, _ENS_REGISTRAR_ADDRES[ChainId.MAINNET] = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', _ENS_REGISTRAR_ADDRES[ChainId.GĂ–RLI] = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', _ENS_REGISTRAR_ADDRES[ChainId.ROPSTEN] = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', _ENS_REGISTRAR_ADDRES[ChainId.RINKEBY] = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', _ENS_REGISTRAR_ADDRES); var ZAPPER_ADDRESS = (_ZAPPER_ADDRESS = {}, _ZAPPER_ADDRESS[ChainId.MAINNET] = '0xcff6eF0B9916682B37D80c19cFF8949bc1886bC2', _ZAPPER_ADDRESS[ChainId.ROPSTEN] = '0xcff6eF0B9916682B37D80c19cFF8949bc1886bC2', _ZAPPER_ADDRESS); var MERKLE_DISTRIBUTOR_ADDRESS = (_MERKLE_DISTRIBUTOR_A = {}, _MERKLE_DISTRIBUTOR_A[ChainId.MAINNET] = '0xcBE6B83e77cdc011Cc18F6f0Df8444E5783ed982', _MERKLE_DISTRIBUTOR_A[ChainId.ROPSTEN] = '0x84d1f7202e0e7dac211617017ca72a2cb5e2b955', _MERKLE_DISTRIBUTOR_A); var MULTICALL2_ADDRESS = (_MULTICALL2_ADDRESS = {}, _MULTICALL2_ADDRESS[ChainId.MAINNET] = '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', _MULTICALL2_ADDRESS[ChainId.ROPSTEN] = '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', _MULTICALL2_ADDRESS[ChainId.RINKEBY] = '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', _MULTICALL2_ADDRESS[ChainId.GĂ–RLI] = '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', _MULTICALL2_ADDRESS[ChainId.KOVAN] = '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', _MULTICALL2_ADDRESS[ChainId.ARBITRUM] = '0x80C7DD17B01855a6D2347444a0FCC36136a314de', _MULTICALL2_ADDRESS[ChainId.ARBITRUM_TESTNET] = '0xa501c031958F579dB7676fF1CE78AD305794d579', _MULTICALL2_ADDRESS[ChainId.CELO] = '0x9aac9048fC8139667D6a2597B902865bfdc225d3', _MULTICALL2_ADDRESS[ChainId.FANTOM] = '0x22D4cF72C45F8198CfbF4B568dBdB5A85e8DC0B5', _MULTICALL2_ADDRESS[ChainId.MATIC] = '0x474FceCBA1A86923630817754D0bc6E26D43aDB1', _MULTICALL2_ADDRESS[ChainId.MATIC_TESTNET] = '0xc1400d49baa8e307B4462cD46E0a20109D25F50f', _MULTICALL2_ADDRESS[ChainId.XDAI] = '0x67dA5f2FfaDDfF067AB9d5F025F8810634d84287', _MULTICALL2_ADDRESS[ChainId.BSC] = '0xa9193376D09C7f31283C54e56D013fCF370Cd9D9', _MULTICALL2_ADDRESS[ChainId.AVALANCHE] = '0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3', _MULTICALL2_ADDRESS[ChainId.HECO] = '0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3', _MULTICALL2_ADDRESS[ChainId.HARMONY] = '0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3', _MULTICALL2_ADDRESS[ChainId.OKEX] = '0xF4d73326C13a4Fc5FD7A064217e12780e9Bd62c3', _MULTICALL2_ADDRESS[ChainId.PALM] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _MULTICALL2_ADDRESS[ChainId.MOONRIVER] = '0x270f2F35bED92B7A59eA5F08F6B3fd34c8D9D9b5', _MULTICALL2_ADDRESS[ChainId.FUSE] = '0x0769fd68dFb93167989C6f7254cd0D766Fb2841F', _MULTICALL2_ADDRESS[ChainId.TELOS] = '0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3', _MULTICALL2_ADDRESS); var ACTION_ADD_ASSET = 1; var ACTION_REPAY = 2; var ACTION_REMOVE_ASSET = 3; var ACTION_REMOVE_COLLATERAL = 4; var ACTION_BORROW = 5; var ACTION_GET_REPAY_SHARE = 6; var ACTION_GET_REPAY_PART = 7; var ACTION_ACCRUE = 8; // Functions that don't need accrue to be called var ACTION_ADD_COLLATERAL = 10; var ACTION_UPDATE_EXCHANGE_RATE = 11; // Function on BentoBox var ACTION_BENTO_DEPOSIT = 20; var ACTION_BENTO_WITHDRAW = 21; var ACTION_BENTO_TRANSFER = 22; var ACTION_BENTO_TRANSFER_MULTIPLE = 23; var ACTION_BENTO_SETAPPROVAL = 24; // Any external call (except to BentoBox) var ACTION_CALL = 30; var MINIMUM_TARGET_UTILIZATION = /*#__PURE__*/BigNumber.from('700000000000000000'); // 70% var MAXIMUM_TARGET_UTILIZATION = /*#__PURE__*/BigNumber.from('800000000000000000'); // 80% var UTILIZATION_PRECISION = /*#__PURE__*/BigNumber.from('1000000000000000000'); var FULL_UTILIZATION = /*#__PURE__*/BigNumber.from('1000000000000000000'); var FULL_UTILIZATION_MINUS_MAX = /*#__PURE__*/FULL_UTILIZATION.sub(MAXIMUM_TARGET_UTILIZATION); var STARTING_INTEREST_PER_YEAR = /*#__PURE__*/BigNumber.from(317097920).mul(BigNumber.from(60)).mul(BigNumber.from(60)).mul(BigNumber.from(24)).mul( /*#__PURE__*/BigNumber.from(365)); // approx 1% APR var MINIMUM_INTEREST_PER_YEAR = /*#__PURE__*/BigNumber.from(79274480).mul(BigNumber.from(60)).mul(BigNumber.from(60)).mul(BigNumber.from(24)).mul( /*#__PURE__*/BigNumber.from(365)); // approx 0.25% APR var MAXIMUM_INTEREST_PER_YEAR = /*#__PURE__*/BigNumber.from(317097920000).mul(BigNumber.from(60)).mul(BigNumber.from(60)).mul(BigNumber.from(24)).mul( /*#__PURE__*/BigNumber.from(365)); // approx 1000% APR var INTEREST_ELASTICITY = /*#__PURE__*/BigNumber.from('28800000000000000000000000000000000000000'); // Half or double in 28800 seconds (8 hours) if linear var FACTOR_PRECISION = /*#__PURE__*/BigNumber.from('1000000000000000000'); var PROTOCOL_FEE = /*#__PURE__*/BigNumber.from('10000'); // 10% var PROTOCOL_FEE_DIVISOR = /*#__PURE__*/BigNumber.from('100000'); function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } /** * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies */ var AbstractCurrency = /*#__PURE__*/function () { /** * Constructs an instance of the base class `BaseCurrency`. * @param chainId the chain ID on which this currency resides * @param decimals decimals of the currency * @param symbol symbol of the currency * @param name of the currency */ function AbstractCurrency(chainId, decimals, symbol, name) { !Number.isSafeInteger(chainId) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CHAIN_ID') : invariant(false) : void 0; !(decimals >= 0 && decimals < 255 && Number.isInteger(decimals)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DECIMALS') : invariant(false) : void 0; this.chainId = chainId; this.decimals = decimals; this.symbol = symbol; this.name = name; } /** * Returns token address. Useful in cases where a dependency is needed to detect changes (e.g. useEffect). */ var _proto = AbstractCurrency.prototype; _proto.serialize = function serialize() { return this.wrapped.address; }; return AbstractCurrency; }(); /** * Represents the native currency of the chain on which it resides, e.g. */ var NativeCurrency = /*#__PURE__*/function (_AbstractCurrency) { _inheritsLoose(NativeCurrency, _AbstractCurrency); function NativeCurrency() { var _this; _this = _AbstractCurrency.apply(this, arguments) || this; _this.isNative = true; _this.isToken = false; return _this; } return NativeCurrency; }(AbstractCurrency); function validateAndParseAddress(address) { try { var checksummedAddress = getAddress(address); process.env.NODE_ENV !== "production" ? warning(address === checksummedAddress, address + " is not checksummed.") : void 0; return checksummedAddress; } catch (error) { process.env.NODE_ENV !== "production" ? invariant(false, address + " is not a valid address.") : invariant(false) ; } } /** * Represents an ERC20 token with a unique address and some metadata. */ var Token = /*#__PURE__*/function (_AbstractCurrency) { _inheritsLoose(Token, _AbstractCurrency); function Token(chainId, address, decimals, symbol, name) { var _this; _this = _AbstractCurrency.call(this, chainId, decimals, symbol, name) || this; _this.isNative = false; _this.isToken = true; _this.chainId = chainId; _this.address = validateAndParseAddress(address); return _this; } /** * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. * @param other other token to compare */ var _proto = Token.prototype; _proto.equals = function equals(other) { return other.isToken && this.chainId === other.chainId && this.address === other.address; } /** * Returns true if the address of this token sorts before the address of the other token * @param other other token to compare * @throws if the tokens have the same address * @throws if the tokens are on different chains */ ; _proto.sortsBefore = function sortsBefore(other) { !(this.chainId === other.chainId) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CHAIN_IDS') : invariant(false) : void 0; !(this.address !== other.address) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ADDRESSES') : invariant(false) : void 0; return this.address.toLowerCase() < other.address.toLowerCase(); } /** * Return this token, which does not need to be wrapped */ ; _createClass(Token, [{ key: "wrapped", get: function get() { return this; } }]); return Token; }(AbstractCurrency); /** * Compares two currencies for equality */ function currencyEquals(currencyA, currencyB) { if (currencyA instanceof Token && currencyB instanceof Token) { return currencyA.equals(currencyB); } else if (currencyA instanceof Token) { return false; } else if (currencyB instanceof Token) { return false; } else { return currencyA === currencyB; } } var _USDC, _extends2, _WETH, _WNATIVE; var USDC = (_USDC = {}, _USDC[ChainId.MAINNET] = /*#__PURE__*/new Token(ChainId.MAINNET, USDC_ADDRESS[ChainId.MAINNET], 6, 'USDC', 'USD Coin'), _USDC[ChainId.ROPSTEN] = /*#__PURE__*/new Token(ChainId.ROPSTEN, USDC_ADDRESS[ChainId.ROPSTEN], 6, 'USDC', 'USD Coin'), _USDC[ChainId.KOVAN] = /*#__PURE__*/new Token(ChainId.KOVAN, USDC_ADDRESS[ChainId.KOVAN], 6, 'USDC', 'USD Coin'), _USDC[ChainId.MATIC] = /*#__PURE__*/new Token(ChainId.MATIC, USDC_ADDRESS[ChainId.MATIC], 6, 'USDC', 'USD Coin'), _USDC[ChainId.FANTOM] = /*#__PURE__*/new Token(ChainId.FANTOM, USDC_ADDRESS[ChainId.FANTOM], 6, 'USDC', 'USD Coin'), _USDC[ChainId.BSC] = /*#__PURE__*/new Token(ChainId.BSC, USDC_ADDRESS[ChainId.BSC], 18, 'USDC', 'USD Coin'), _USDC[ChainId.HARMONY] = /*#__PURE__*/new Token(ChainId.HARMONY, USDC_ADDRESS[ChainId.HARMONY], 6, 'USDC', 'USD Coin'), _USDC[ChainId.HECO] = /*#__PURE__*/new Token(ChainId.HECO, USDC_ADDRESS[ChainId.HECO], 6, 'USDC', 'USD Coin'), _USDC[ChainId.OKEX] = /*#__PURE__*/new Token(ChainId.OKEX, USDC_ADDRESS[ChainId.OKEX], 18, 'USDC', 'USD Coin'), _USDC[ChainId.XDAI] = /*#__PURE__*/new Token(ChainId.XDAI, USDC_ADDRESS[ChainId.XDAI], 6, 'USDC', 'USD Coin'), _USDC[ChainId.ARBITRUM] = /*#__PURE__*/new Token(ChainId.ARBITRUM, USDC_ADDRESS[ChainId.ARBITRUM], 6, 'USDC', 'USD Coin'), _USDC[ChainId.MOONRIVER] = /*#__PURE__*/new Token(ChainId.MOONRIVER, USDC_ADDRESS[ChainId.MOONRIVER], 6, 'USDC', 'USD Coin'), _USDC[ChainId.FUSE] = /*#__PURE__*/new Token(ChainId.FUSE, USDC_ADDRESS[ChainId.FUSE], 6, 'USDC', 'USD Coin'), _USDC); var USD = /*#__PURE__*/_extends({}, USDC, (_extends2 = {}, _extends2[ChainId.CELO] = /*#__PURE__*/new Token(ChainId.CELO, USD_ADDRESS[ChainId.CELO], 18, 'cUSD', 'Celo Dollar'), _extends2)); var WETH9 = (_WETH = {}, _WETH[ChainId.MAINNET] = /*#__PURE__*/new Token(ChainId.MAINNET, WETH9_ADDRESS[ChainId.MAINNET], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.ROPSTEN] = /*#__PURE__*/new Token(ChainId.ROPSTEN, WETH9_ADDRESS[ChainId.ROPSTEN], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.RINKEBY] = /*#__PURE__*/new Token(ChainId.RINKEBY, WETH9_ADDRESS[ChainId.RINKEBY], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.GĂ–RLI] = /*#__PURE__*/new Token(ChainId.GĂ–RLI, WETH9_ADDRESS[ChainId.GĂ–RLI], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.KOVAN] = /*#__PURE__*/new Token(ChainId.KOVAN, WETH9_ADDRESS[ChainId.KOVAN], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.ARBITRUM] = /*#__PURE__*/new Token(ChainId.ARBITRUM, WETH9_ADDRESS[ChainId.ARBITRUM], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.ARBITRUM_TESTNET] = /*#__PURE__*/new Token(ChainId.ARBITRUM_TESTNET, WETH9_ADDRESS[ChainId.ARBITRUM_TESTNET], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.BSC] = /*#__PURE__*/new Token(ChainId.BSC, WETH9_ADDRESS[ChainId.BSC], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.FANTOM] = /*#__PURE__*/new Token(ChainId.FANTOM, WETH9_ADDRESS[ChainId.FANTOM], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.MATIC] = /*#__PURE__*/new Token(ChainId.MATIC, WETH9_ADDRESS[ChainId.MATIC], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.OKEX] = /*#__PURE__*/new Token(ChainId.OKEX, WETH9_ADDRESS[ChainId.OKEX], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.HECO] = /*#__PURE__*/new Token(ChainId.HECO, WETH9_ADDRESS[ChainId.HECO], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.HARMONY] = /*#__PURE__*/new Token(ChainId.HARMONY, WETH9_ADDRESS[ChainId.HARMONY], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.XDAI] = /*#__PURE__*/new Token(ChainId.XDAI, WETH9_ADDRESS[ChainId.XDAI], 18, 'WETH', 'Wrapped Ether'), _WETH[ChainId.AVALANCHE] = /*#__PURE__*/new Token(ChainId.AVALANCHE, WETH9_ADDRESS[ChainId.AVALANCHE], 18, 'WETH', 'Wrapped Ether'), _WETH); var WNATIVE = (_WNATIVE = {}, _WNATIVE[ChainId.MAINNET] = WETH9[ChainId.MAINNET], _WNATIVE[ChainId.ROPSTEN] = WETH9[ChainId.ROPSTEN], _WNATIVE[ChainId.RINKEBY] = WETH9[ChainId.RINKEBY], _WNATIVE[ChainId.GĂ–RLI] = WETH9[ChainId.GĂ–RLI], _WNATIVE[ChainId.KOVAN] = WETH9[ChainId.KOVAN], _WNATIVE[ChainId.FANTOM] = /*#__PURE__*/new Token(ChainId.FANTOM, WNATIVE_ADDRESS[ChainId.FANTOM], 18, 'WFTM', 'Wrapped FTM'), _WNATIVE[ChainId.FANTOM_TESTNET] = /*#__PURE__*/new Token(ChainId.FANTOM_TESTNET, WNATIVE_ADDRESS[ChainId.FANTOM_TESTNET], 18, 'FTM', 'Wrapped FTM'), _WNATIVE[ChainId.MATIC] = /*#__PURE__*/new Token(ChainId.MATIC, WNATIVE_ADDRESS[ChainId.MATIC], 18, 'WMATIC', 'Wrapped Matic'), _WNATIVE[ChainId.MATIC_TESTNET] = /*#__PURE__*/new Token(ChainId.MATIC_TESTNET, WNATIVE_ADDRESS[ChainId.MATIC_TESTNET], 18, 'WMATIC', 'Wrapped Matic'), _WNATIVE[ChainId.XDAI] = /*#__PURE__*/new Token(ChainId.XDAI, WNATIVE_ADDRESS[ChainId.XDAI], 18, 'WXDAI', 'Wrapped xDai'), _WNATIVE[ChainId.BSC] = /*#__PURE__*/new Token(ChainId.BSC, WNATIVE_ADDRESS[ChainId.BSC], 18, 'WBNB', 'Wrapped BNB'), _WNATIVE[ChainId.BSC_TESTNET] = /*#__PURE__*/new Token(ChainId.BSC_TESTNET, WNATIVE_ADDRESS[ChainId.BSC_TESTNET], 18, 'WBNB', 'Wrapped BNB'), _WNATIVE[ChainId.ARBITRUM] = WETH9[ChainId.ARBITRUM], _WNATIVE[ChainId.ARBITRUM_TESTNET] = WETH9[ChainId.ARBITRUM_TESTNET], _WNATIVE[ChainId.MOONBEAM_TESTNET] = /*#__PURE__*/new Token(ChainId.MOONBEAM_TESTNET, WNATIVE_ADDRESS[ChainId.MOONBEAM_TESTNET], 18, 'WETH', 'Wrapped Ether'), _WNATIVE[ChainId.AVALANCHE] = /*#__PURE__*/new Token(ChainId.AVALANCHE, WNATIVE_ADDRESS[ChainId.AVALANCHE], 18, 'WAVAX', 'Wrapped AVAX'), _WNATIVE[ChainId.AVALANCHE_TESTNET] = /*#__PURE__*/new Token(ChainId.AVALANCHE_TESTNET, WNATIVE_ADDRESS[ChainId.AVALANCHE_TESTNET], 18, 'WAVAX', 'Wrapped AVAX'), _WNATIVE[ChainId.HECO] = /*#__PURE__*/new Token(ChainId.HECO, WNATIVE_ADDRESS[ChainId.HECO], 18, 'WHT', 'Wrapped HT'), _WNATIVE[ChainId.HECO_TESTNET] = /*#__PURE__*/new Token(ChainId.HECO_TESTNET, WNATIVE_ADDRESS[ChainId.HECO_TESTNET], 18, 'WHT', 'Wrapped HT'), _WNATIVE[ChainId.HARMONY] = /*#__PURE__*/new Token(ChainId.HARMONY, WNATIVE_ADDRESS[ChainId.HARMONY], 18, 'WONE', 'Wrapped ONE'), _WNATIVE[ChainId.HARMONY_TESTNET] = /*#__PURE__*/new Token(ChainId.HARMONY_TESTNET, WNATIVE_ADDRESS[ChainId.HARMONY_TESTNET], 18, 'WONE', 'Wrapped ONE'), _WNATIVE[ChainId.OKEX] = /*#__PURE__*/new Token(ChainId.OKEX, WNATIVE_ADDRESS[ChainId.OKEX], 18, 'WOKT', 'Wrapped OKExChain'), _WNATIVE[ChainId.OKEX_TESTNET] = /*#__PURE__*/new Token(ChainId.OKEX_TESTNET, WNATIVE_ADDRESS[ChainId.OKEX_TESTNET], 18, 'WOKT', 'Wrapped OKExChain'), _WNATIVE[ChainId.CELO] = /*#__PURE__*/new Token(ChainId.CELO, WNATIVE_ADDRESS[ChainId.CELO], 18, 'CELO', 'Celo'), _WNATIVE[ChainId.PALM] = /*#__PURE__*/new Token(ChainId.PALM, WNATIVE_ADDRESS[ChainId.PALM], 18, 'WPALM', 'Wrapped Palm'), _WNATIVE[ChainId.MOONRIVER] = /*#__PURE__*/new Token(ChainId.MOONRIVER, WNATIVE_ADDRESS[ChainId.MOONRIVER], 18, 'WMOVR', 'Wrapped Moonriver'), _WNATIVE[ChainId.FUSE] = /*#__PURE__*/new Token(ChainId.FUSE, WNATIVE_ADDRESS[ChainId.FUSE], 18, 'WFUSE', 'Wrapped Fuse'), _WNATIVE[ChainId.TELOS] = /*#__PURE__*/new Token(ChainId.TELOS, WNATIVE_ADDRESS[ChainId.TELOS], 18, 'WTLOS', 'Wrapped Telos'), _WNATIVE); var Avalanche = /*#__PURE__*/function (_NativeCurrency) { _inheritsLoose(Avalanche, _NativeCurrency); function Avalanche(chainId) { return _NativeCurrency.call(this, chainId, 18, 'AVAX', 'Avalanche') || this; } Avalanche.onChain = function onChain(chainId) { var _this$_cache$chainId; return (_this$_cache$chainId = this._cache[chainId]) != null ? _this$_cache$chainId : this._cache[chainId] = new Avalanche(chainId); }; var _proto = Avalanche.prototype; _proto.equals = function equals(other) { return other.isNative && other.chainId === this.chainId; }; _createClass(Avalanche, [{ key: "wrapped", get: function get() { var wnative = WNATIVE[this.chainId]; !!!wnative ? process.env.NODE_ENV !== "production" ? invariant(false, 'WRAPPED') : invariant(false) : void 0; return wnative; } }]); return Avalanche; }(NativeCurrency); Avalanche._cache = {}; var Binance = /*#__PURE__*/function (_NativeCurrency) { _inheritsLoose(Binance, _NativeCurrency); function Binance(chainId) { return _NativeCurrency.call(this, chainId, 18, 'BNB', 'Binance Coin') || this; } Binance.onChain = function onChain(chainId) { var _this$_cache$chainId; return (_this$_cache$chainId = this._cache[chainId]) != null ? _this$_cache$chainId : this._cache[chainId] = new Binance(chainId); }; var _proto = Binance.prototype; _proto.equals = function equals(other) { return other.isNative && other.chainId === this.chainId; }; _createClass(Binance, [{ key: "wrapped", get: function get() { var wnative = WNATIVE[this.chainId]; !!!wnative ? process.env.NODE_ENV !== "production" ? invariant(false, 'WRAPPED') : invariant(false) : void 0; return wnative; } }]); return Binance; }(NativeCurrency); Binance._cache = {}; var Celo = /*#__PURE__*/function (_NativeCurrency) { _inheritsLoose(Celo, _NativeCurrency); function Celo(chainId) { return _NativeCurrency.call(this, chainId, 18, 'CELO', 'Celo') || this; } Celo.onChain = function onChain(chainId) { var _this$_cache$chainId; return (_this$_cache$chainId = this._cache[chainId]) != null ? _this$_cache$chainId : this._cache[chainId] = new Celo(chainId); }; var _proto = Celo.prototype; _proto.equals = function equals(other) { return other.isNative && other.chainId === this.chainId; }; _createClass(Celo, [{ key: "wrapped", get: function get() { var wcelo = WNATIVE[this.chainId]; !!!wcelo ? process.env.NODE_ENV !== "production" ? invariant(false, 'WRAPPED') : invariant(false) : void 0; return wcelo; } }]); return Celo; }(NativeCurrency); Celo._cache = {}; /** * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets */ var Ether = /*#