lotus-sdk-core
Version:
⚒️ An SDK for building applications on top of Lotus
868 lines (859 loc) • 62.3 kB
JavaScript
import JSBI from 'jsbi';
import invariant from 'tiny-invariant';
import _Decimal from 'decimal.js-light';
import _Big from 'big.js';
import toFormat from 'toformat';
import { BigNumber } from '@ethersproject/bignumber';
import { getAddress } from '@ethersproject/address';
import { concat, hexZeroPad } from '@ethersproject/bytes';
import { keccak256 } from '@ethersproject/keccak256';
import { toUtf8Bytes } from '@ethersproject/strings';
function _defineProperties(e, r) {
for (var t = 0; t < r.length; t++) {
var o = r[t];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
}
}
function _createClass(e, r, t) {
return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
writable: !1
}), e;
}
function _extends() {
return _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, _extends.apply(null, arguments);
}
function _inheritsLoose(t, o) {
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
}
function _setPrototypeOf(t, e) {
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
return t.__proto__ = e, t;
}, _setPrototypeOf(t, e);
}
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i = e.call(t, r || "default");
if ("object" != typeof i) return i;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
var ChainId;
(function (ChainId) {
ChainId[ChainId["MAINNET"] = 1] = "MAINNET";
ChainId[ChainId["GOERLI"] = 5] = "GOERLI";
ChainId[ChainId["SEPOLIA"] = 11155111] = "SEPOLIA";
ChainId[ChainId["OPTIMISM"] = 10] = "OPTIMISM";
ChainId[ChainId["OPTIMISM_GOERLI"] = 420] = "OPTIMISM_GOERLI";
ChainId[ChainId["OPTIMISM_SEPOLIA"] = 11155420] = "OPTIMISM_SEPOLIA";
ChainId[ChainId["ARBITRUM_ONE"] = 42161] = "ARBITRUM_ONE";
ChainId[ChainId["ARBITRUM_GOERLI"] = 421613] = "ARBITRUM_GOERLI";
ChainId[ChainId["ARBITRUM_SEPOLIA"] = 421614] = "ARBITRUM_SEPOLIA";
ChainId[ChainId["POLYGON"] = 137] = "POLYGON";
ChainId[ChainId["POLYGON_MUMBAI"] = 80001] = "POLYGON_MUMBAI";
ChainId[ChainId["CELO"] = 42220] = "CELO";
ChainId[ChainId["CELO_ALFAJORES"] = 44787] = "CELO_ALFAJORES";
ChainId[ChainId["GNOSIS"] = 100] = "GNOSIS";
ChainId[ChainId["MOONBEAM"] = 1284] = "MOONBEAM";
ChainId[ChainId["BNB"] = 56] = "BNB";
ChainId[ChainId["AVALANCHE"] = 43114] = "AVALANCHE";
ChainId[ChainId["BASE_GOERLI"] = 84531] = "BASE_GOERLI";
ChainId[ChainId["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA";
ChainId[ChainId["BASE"] = 8453] = "BASE";
ChainId[ChainId["ZORA"] = 7777777] = "ZORA";
ChainId[ChainId["ZORA_SEPOLIA"] = 999999999] = "ZORA_SEPOLIA";
ChainId[ChainId["ROOTSTOCK"] = 30] = "ROOTSTOCK";
ChainId[ChainId["BLAST"] = 81457] = "BLAST";
ChainId[ChainId["ZKSYNC"] = 324] = "ZKSYNC";
ChainId[ChainId["WORLDCHAIN"] = 480] = "WORLDCHAIN";
ChainId[ChainId["UNICHAIN_SEPOLIA"] = 1301] = "UNICHAIN_SEPOLIA";
ChainId[ChainId["UNICHAIN"] = 130] = "UNICHAIN";
ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET";
ChainId[ChainId["SONEIUM"] = 1868] = "SONEIUM";
ChainId[ChainId["STORY"] = 1514] = "STORY";
ChainId[ChainId["MANTRA_DUKONG"] = 5887] = "MANTRA_DUKONG";
ChainId[ChainId["MANTRA_MAINNET"] = 5888] = "MANTRA_MAINNET";
})(ChainId || (ChainId = {}));
var SUPPORTED_CHAINS = [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.STORY, ChainId.MANTRA_DUKONG, ChainId.MANTRA_MAINNET];
var NativeCurrencyName;
(function (NativeCurrencyName) {
// Strings match input for CLI
NativeCurrencyName["ETHER"] = "ETH";
NativeCurrencyName["MATIC"] = "MATIC";
NativeCurrencyName["CELO"] = "CELO";
NativeCurrencyName["GNOSIS"] = "XDAI";
NativeCurrencyName["MOONBEAM"] = "GLMR";
NativeCurrencyName["BNB"] = "BNB";
NativeCurrencyName["AVAX"] = "AVAX";
NativeCurrencyName["ROOTSTOCK"] = "RBTC";
NativeCurrencyName["IP"] = "IP";
NativeCurrencyName["MANTRA"] = "OM";
})(NativeCurrencyName || (NativeCurrencyName = {}));
var _V2_FACTORY_ADDRESSES, _V2_ROUTER_ADDRESSES, _CHAIN_TO_ADDRESSES_M, _GOVERNANCE_ALPHA_V1_, _GOVERNANCE_BRAVO_ADD, _MERKLE_DISTRIBUTOR_A, _ARGENT_WALLET_DETECT, _SOCKS_CONTROLLER_ADD;
var DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA];
function constructSameAddressMap(address, additionalNetworks) {
if (additionalNetworks === void 0) {
additionalNetworks = [];
}
return DEFAULT_NETWORKS.concat(additionalNetworks).reduce(function (memo, chainId) {
memo[chainId] = address;
return memo;
}, {});
}
var UNI_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [ChainId.OPTIMISM, ChainId.ARBITRUM_ONE, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.SEPOLIA]);
var UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78';
/**
* @deprecated use V2_FACTORY_ADDRESSES instead
*/
var V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f';
var V2_FACTORY_ADDRESSES = (_V2_FACTORY_ADDRESSES = {}, _V2_FACTORY_ADDRESSES[ChainId.MAINNET] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.GOERLI] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.SEPOLIA] = '0xF62c03E08ada871A0bEb309762E260a7a6a880E6', _V2_FACTORY_ADDRESSES[ChainId.OPTIMISM] = '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf', _V2_FACTORY_ADDRESSES[ChainId.ARBITRUM_ONE] = '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9', _V2_FACTORY_ADDRESSES[ChainId.AVALANCHE] = '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C', _V2_FACTORY_ADDRESSES[ChainId.BASE_SEPOLIA] = '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e', _V2_FACTORY_ADDRESSES[ChainId.BASE] = '0x8909dc15e40173ff4699343b6eb8132c65e18ec6', _V2_FACTORY_ADDRESSES[ChainId.BNB] = '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6', _V2_FACTORY_ADDRESSES[ChainId.POLYGON] = '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C', _V2_FACTORY_ADDRESSES[ChainId.CELO] = '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f', _V2_FACTORY_ADDRESSES[ChainId.BLAST] = '0x5C346464d33F90bABaf70dB6388507CC889C1070', _V2_FACTORY_ADDRESSES[ChainId.WORLDCHAIN] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.UNICHAIN_SEPOLIA] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.UNICHAIN] = '0x1f98400000000000000000000000000000000002', _V2_FACTORY_ADDRESSES[ChainId.MONAD_TESTNET] = '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0', _V2_FACTORY_ADDRESSES[ChainId.SONEIUM] = '0x97febbc2adbd5644ba22736e962564b23f5828ce', _V2_FACTORY_ADDRESSES[ChainId.STORY] = '0xf5b053DF62a830cE7b8D5E472F6BF765054687f1', _V2_FACTORY_ADDRESSES[ChainId.MANTRA_DUKONG] = '0x27F4dc58505BF5008dF0A7eb5045406eE984e1A3', _V2_FACTORY_ADDRESSES[ChainId.MANTRA_MAINNET] = '0xf8f54C91E868c7CF87774C388B6793807921BAa1', _V2_FACTORY_ADDRESSES);
/**
* @deprecated use V2_ROUTER_ADDRESSES instead
*/
var V2_ROUTER_ADDRESS = '0x0C8933dD45c97ebA71306600b1f4085cCAEA3d26';
var V2_ROUTER_ADDRESSES = (_V2_ROUTER_ADDRESSES = {}, _V2_ROUTER_ADDRESSES[ChainId.MAINNET] = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', _V2_ROUTER_ADDRESSES[ChainId.GOERLI] = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', _V2_ROUTER_ADDRESSES[ChainId.SEPOLIA] = '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3', _V2_ROUTER_ADDRESSES[ChainId.ARBITRUM_ONE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.OPTIMISM] = '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2', _V2_ROUTER_ADDRESSES[ChainId.BASE_SEPOLIA] = '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602', _V2_ROUTER_ADDRESSES[ChainId.BASE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.AVALANCHE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.BNB] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.POLYGON] = '0xedf6066a2b290c185783862c7f4776a2c8077ad1', _V2_ROUTER_ADDRESSES[ChainId.BLAST] = '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035', _V2_ROUTER_ADDRESSES[ChainId.WORLDCHAIN] = '0x541aB7c31A119441eF3575F6973277DE0eF460bd', _V2_ROUTER_ADDRESSES[ChainId.UNICHAIN_SEPOLIA] = '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640', _V2_ROUTER_ADDRESSES[ChainId.UNICHAIN] = '0x284f11109359a7e1306c3e447ef14d38400063ff', _V2_ROUTER_ADDRESSES[ChainId.MONAD_TESTNET] = '0xfb8e1c3b833f9e67a71c859a132cf783b645e436', _V2_ROUTER_ADDRESSES[ChainId.SONEIUM] = '0x273f68c234fa55b550b40e563c4a488e0d334320', _V2_ROUTER_ADDRESSES[ChainId.STORY] = '0x4BCD850357250c4912AB2cf5857cdd9E243b7314', _V2_ROUTER_ADDRESSES[ChainId.MANTRA_DUKONG] = '0x4b926835859ca98caA31A04a18435dfa79da9d18', _V2_ROUTER_ADDRESSES[ChainId.MANTRA_MAINNET] = '0x0C8933dD45c97ebA71306600b1f4085cCAEA3d26', _V2_ROUTER_ADDRESSES);
// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon
var DEFAULT_ADDRESSES = {
v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',
quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',
nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
};
var MAINNET_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',
v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',
v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',
v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',
v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203'
});
var GOERLI_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e'
});
var OPTIMISM_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',
v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',
v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',
v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7'
});
var ARBITRUM_ONE_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',
tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',
v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',
v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
});
var POLYGON_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',
v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',
v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',
v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9'
});
// celo v3 addresses
var CELO_ADDRESSES = {
v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',
multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',
quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',
v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',
nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',
tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D'
};
// BNB v3 addresses
var BNB_ADDRESSES = {
v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',
multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',
quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',
v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',
nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',
tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',
swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',
v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',
v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',
v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',
v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0'
};
// optimism goerli addresses
var OPTIMISM_GOERLI_ADDRESSES = {
v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',
multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',
quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',
v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',
nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',
tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e'
};
// optimism sepolia addresses
var OPTIMISM_SEPOLIA_ADDRESSES = {
v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',
multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',
quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',
v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',
nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',
tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',
swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4'
};
// arbitrum goerli v3 addresses
var ARBITRUM_GOERLI_ADDRESSES = {
v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',
multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',
quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',
v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',
nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',
tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8'
};
// arbitrum sepolia v3 addresses
var ARBITRUM_SEPOLIA_ADDRESSES = {
v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',
multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',
quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',
v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',
nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',
tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',
swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',
v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',
v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',
v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',
v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9'
};
// sepolia v3 addresses
var SEPOLIA_ADDRESSES = {
v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',
multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',
quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',
v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',
nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',
tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',
swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',
// TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed
mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',
// TODO: update all below once v4 on sepolia redeployed
v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',
v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',
v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',
v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227'
};
// Avalanche v3 addresses
var AVALANCHE_ADDRESSES = {
v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',
multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',
quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',
v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',
nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',
tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',
swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',
v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',
v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',
v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',
v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2'
};
var BASE_ADDRESSES = {
v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',
nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',
tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',
swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',
mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',
v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',
v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',
v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',
v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d'
};
// Base Goerli v3 addresses
var BASE_GOERLI_ADDRESSES = {
v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',
multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',
quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',
v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',
nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',
tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',
swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d'
};
// Base Sepolia v3 addresses
var BASE_SEPOLIA_ADDRESSES = {
v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',
multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',
quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',
v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',
nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',
tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',
swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',
// v4
v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',
v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',
v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba'
};
var ZORA_ADDRESSES = {
v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',
multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',
quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',
v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',
nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',
tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',
swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',
v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',
v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',
v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',
v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6'
};
var ZORA_SEPOLIA_ADDRESSES = {
v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',
multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',
quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',
v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',
nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',
tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064'
};
var ROOTSTOCK_ADDRESSES = {
v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',
multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',
quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',
v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',
nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',
tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',
swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A'
};
var BLAST_ADDRESSES = {
v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',
multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',
quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',
v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',
nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',
tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',
swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',
v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',
v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',
v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',
v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf'
};
var ZKSYNC_ADDRESSES = {
v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',
multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',
quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',
v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',
nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',
tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',
swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3'
};
var WORLDCHAIN_ADDRESSES = {
v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',
multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',
quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',
v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',
nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',
tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',
swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',
v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',
v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',
v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',
v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0'
};
var UNICHAIN_SEPOLIA_ADDRESSES = {
v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',
quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',
v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',
nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',
tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',
swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',
v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',
v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',
v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',
v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472'
};
var UNICHAIN_ADDRESSES = {
v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',
multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',
quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',
v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',
nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',
tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',
swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',
v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',
v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',
v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',
v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0'
};
var MONAD_TESTNET_ADDRESSES = {
v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',
multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',
quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',
v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',
nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',
tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',
swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7'
};
var SONEIUM_ADDRESSES = {
v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',
multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',
quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',
v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',
nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',
tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',
swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',
v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',
v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
};
var STORY_ADDRESSES = {
v3CoreFactoryAddress: '0x9B43512A837cfA2Eb8C2ceb0B303e83ac5032Bdb',
multicallAddress: '0x072e66ac948eE1ad2e8fB7d09aCD541dCDD571f8',
quoterAddress: '0x5bDa80cCc17bD8427BB32391f7A19354a7c54E9F',
v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',
nonfungiblePositionManagerAddress: '0x48a3315D98218193102B56054F214e026eb34F8D',
tickLensAddress: '0xC9C6Ed9A89Faaa2d0dc4ec1A728D77cB04FdE6ba',
swapRouter02Address: '0x4BCD850357250c4912AB2cf5857cdd9E243b7314',
v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',
v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
};
var MANTRA_DUKONG_ADDRESSES = {
v3CoreFactoryAddress: '0x17E1ebf15BE528b179d34148fB9aB2466555F605',
multicallAddress: '0x7850703C95Df326fcCf9ed686D5DaA60693D0ce7',
quoterAddress: '0x24E97Eb82d8cd4866ca1Cc3F487346fBE2CC7F9a',
v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',
nonfungiblePositionManagerAddress: '0x84fb9302f2232050bB30D0C15Cef44823153De6f',
tickLensAddress: '0xa83Bca78B4A99112Fd995CC79422d21E5dc34587',
swapRouter02Address: '0xae52Aa627D6eFAce03Fecd41a79DEEcbc168cb0c',
v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',
v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
};
var MANTRA_MAINNET_ADDRESSES = {
v3CoreFactoryAddress: '0xf091964417222474f1835B1bF096995d66303d96',
multicallAddress: '0x852EeF31C7268C55c45198a018715BCddd6870Ce',
quoterAddress: '0xC0089a25fb8EB0EFd85346D10Cd6Edf8bfd5CbC1',
v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',
nonfungiblePositionManagerAddress: '0x3F3B1dE6F4D3c3CB2c4097156bE0EdCB5CE22591',
tickLensAddress: '0xE982bb280E5fE1Ac698195f774E83629b3e8953B',
swapRouter02Address: '0x3FBcFa6d2B523E0b4223146ba3d60A92a17a7b82',
v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',
v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
};
var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.STORY] = STORY_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MANTRA_DUKONG] = MANTRA_DUKONG_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MANTRA_MAINNET] = MANTRA_MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M);
/* V3 Contract Addresses */
var V3_CORE_FACTORY_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress;
return memo;
}, {}));
var V3_MIGRATOR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
var v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress;
if (v3MigratorAddress) {
memo[chainId] = v3MigratorAddress;
}
return memo;
}, {}));
var MULTICALL_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress;
return memo;
}, {}));
/**
* The oldest V0 governance address
*/
var GOVERNANCE_ALPHA_V0_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F');
/**
* The older V1 governance address
*/
var GOVERNANCE_ALPHA_V1_ADDRESSES = (_GOVERNANCE_ALPHA_V1_ = {}, _GOVERNANCE_ALPHA_V1_[ChainId.MAINNET] = '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6', _GOVERNANCE_ALPHA_V1_);
/**
* The latest governor bravo that is currently admin of timelock
*/
var GOVERNANCE_BRAVO_ADDRESSES = (_GOVERNANCE_BRAVO_ADD = {}, _GOVERNANCE_BRAVO_ADD[ChainId.MAINNET] = '0x408ED6354d4973f66138C91495F2f2FCbd8724C3', _GOVERNANCE_BRAVO_ADD);
var TIMELOCK_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC');
var MERKLE_DISTRIBUTOR_ADDRESS = (_MERKLE_DISTRIBUTOR_A = {}, _MERKLE_DISTRIBUTOR_A[ChainId.MAINNET] = '0x090D4613473dEE047c3f2706764f49E0821D256e', _MERKLE_DISTRIBUTOR_A);
var ARGENT_WALLET_DETECTOR_ADDRESS = (_ARGENT_WALLET_DETECT = {}, _ARGENT_WALLET_DETECT[ChainId.MAINNET] = '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8', _ARGENT_WALLET_DETECT);
var QUOTER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress;
return memo;
}, {}));
var NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
var nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress;
if (nonfungiblePositionManagerAddress) {
memo[chainId] = nonfungiblePositionManagerAddress;
}
return memo;
}, {}));
var ENS_REGISTRAR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'));
var SOCKS_CONTROLLER_ADDRESSES = (_SOCKS_CONTROLLER_ADD = {}, _SOCKS_CONTROLLER_ADD[ChainId.MAINNET] = '0x65770b5283117639760beA3F867b69b3697a91dd', _SOCKS_CONTROLLER_ADD);
var TICK_LENS_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
var tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress;
if (tickLensAddress) {
memo[chainId] = tickLensAddress;
}
return memo;
}, {}));
var MIXED_ROUTE_QUOTER_V1_ADDRESSES = /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
var mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address;
if (mixedRouteQuoterV1Address) {
memo[chainId] = mixedRouteQuoterV1Address;
}
return memo;
}, {});
var SWAP_ROUTER_02_ADDRESSES = function SWAP_ROUTER_02_ADDRESSES(chainId) {
if (SUPPORTED_CHAINS.includes(chainId)) {
var _CHAIN_TO_ADDRESSES_M2;
var id = chainId;
return (_CHAIN_TO_ADDRESSES_M2 = CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address) != null ? _CHAIN_TO_ADDRESSES_M2 : '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45';
}
return '';
};
var TradeType;
(function (TradeType) {
TradeType[TradeType["EXACT_INPUT"] = 0] = "EXACT_INPUT";
TradeType[TradeType["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT";
})(TradeType || (TradeType = {}));
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 MaxUint256 = /*#__PURE__*/JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
var _toSignificantRoundin, _toFixedRounding;
var Decimal = /*#__PURE__*/toFormat(_Decimal);
var Big = /*#__PURE__*/toFormat(_Big);
var toSignificantRounding = (_toSignificantRoundin = {}, _toSignificantRoundin[Rounding.ROUND_DOWN] = Decimal.ROUND_DOWN, _toSignificantRoundin[Rounding.ROUND_HALF_UP] = Decimal.ROUND_HALF_UP, _toSignificantRoundin[Rounding.ROUND_UP] = Decimal.ROUND_UP, _toSignificantRoundin);
var toFixedRounding = (_toFixedRounding = {}, _toFixedRounding[Rounding.ROUND_DOWN] = 0, _toFixedRounding[Rounding.ROUND_HALF_UP] = 1, _toFixedRounding[Rounding.ROUND_UP] = 3, _toFixedRounding);
var Fraction = /*#__PURE__*/function () {
function Fraction(numerator, denominator) {
if (denominator === void 0) {
denominator = JSBI.BigInt(1);
}
this.numerator = JSBI.BigInt(numerator);
this.denominator = JSBI.BigInt(denominator);
}
Fraction.tryParseFraction = function tryParseFraction(fractionish) {
if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string') return new Fraction(fractionish);
if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish;
throw new Error('Could not parse fraction');
}
// performs floor division
;
var _proto = Fraction.prototype;
_proto.invert = function invert() {
return new Fraction(this.denominator, this.numerator);
};
_proto.add = function add(other) {
var otherParsed = Fraction.tryParseFraction(other);
if (JSBI.equal(this.denominator, otherParsed.denominator)) {
return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator);
}
return new Fraction(JSBI.add(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));
};
_proto.subtract = function subtract(other) {
var otherParsed = Fraction.tryParseFraction(other);
if (JSBI.equal(this.denominator, otherParsed.denominator)) {
return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator);
}
return new Fraction(JSBI.subtract(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));
};
_proto.lessThan = function lessThan(other) {
var otherParsed = Fraction.tryParseFraction(other);
return JSBI.lessThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
};
_proto.equalTo = function equalTo(other) {
var otherParsed = Fraction.tryParseFraction(other);
return JSBI.equal(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
};
_proto.greaterThan = function greaterThan(other) {
var otherParsed = Fraction.tryParseFraction(other);
return JSBI.greaterThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
};
_proto.multiply = function multiply(other) {
var otherParsed = Fraction.tryParseFraction(other);
return new Fraction(JSBI.multiply(this.numerator, otherParsed.numerator), JSBI.multiply(this.denominator, otherParsed.denominator));
};
_proto.divide = function divide(other) {
var otherParsed = Fraction.tryParseFraction(other);
return new Fraction(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(this.denominator, otherParsed.numerator));
};
_proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
if (format === void 0) {
format = {
groupSeparator: ''
};
}
if (rounding === void 0) {
rounding = Rounding.ROUND_HALF_UP;
}
!Number.isInteger(significantDigits) ? process.env.NODE_ENV !== "production" ? invariant(false, significantDigits + " is not an integer.") : invariant(false) : void 0;
!(significantDigits > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, significantDigits + " is not positive.") : invariant(false) : void 0;
Decimal.set({
precision: significantDigits + 1,
rounding: toSignificantRounding[rounding]
});
var quotient = new Decimal(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(significantDigits);
return quotient.toFormat(quotient.decimalPlaces(), format);
};
_proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
if (format === void 0) {
format = {
groupSeparator: ''
};
}
if (rounding === void 0) {
rounding = Rounding.ROUND_HALF_UP;
}
!Number.isInteger(decimalPlaces) ? process.env.NODE_ENV !== "production" ? invariant(false, decimalPlaces + " is not an integer.") : invariant(false) : void 0;
!(decimalPlaces >= 0) ? process.env.NODE_ENV !== "production" ? invariant(false, decimalPlaces + " is negative.") : invariant(false) : void 0;
Big.DP = decimalPlaces;
Big.RM = toFixedRounding[rounding];
return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format);
}
/**
* Helper method for converting any super class back to a fraction
*/;
return _createClass(Fraction, [{
key: "quotient",
get: function get() {
return JSBI.divide(this.numerator, this.denominator);
}
// remainder after floor division
}, {
key: "remainder",
get: function get() {
return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator);
}
}, {
key: "asFraction",
get: function get() {
return new Fraction(this.numerator, this.denominator);
}
}]);
}();
var Big$1 = /*#__PURE__*/toFormat(_Big);
var CurrencyAmount = /*#__PURE__*/function (_Fraction) {
function CurrencyAmount(currency, numerator, denominator) {
var _this;
_this = _Fraction.call(this, numerator, denominator) || this;
!JSBI.lessThanOrEqual(_this.quotient, MaxUint256) ? process.env.NODE_ENV !== "production" ? invariant(false, 'AMOUNT') : invariant(false) : void 0;
_this.currency = currency;
_this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals));
return _this;
}
/**
* Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
* @param currency the currency in the amount
* @param rawAmount the raw token or ether amount
*/
_inheritsLoose(CurrencyAmount, _Fraction);
CurrencyAmount.fromRawAmount = function fromRawAmount(currency, rawAmount) {
return new CurrencyAmount(currency, rawAmount);
}
/**
* Construct a currency amount with a denominator that is not equal to 1
* @param currency the currency
* @param numerator the numerator of the fractional token amount
* @param denominator the denominator of the fractional token amount
*/;
CurrencyAmount.fromFractionalAmount = function fromFractionalAmount(currency, numerator, denominator) {
return new CurrencyAmount(currency, numerator, denominator);
};
var _proto = CurrencyAmount.prototype;
_proto.add = function add(other) {
!this.currency.equals(other.currency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CURRENCY') : invariant(false) : void 0;
var added = _Fraction.prototype.add.call(this, other);
return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator);
};
_proto.subtract = function subtract(other) {
!this.currency.equals(other.currency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CURRENCY') : invariant(false) : void 0;
var subtracted = _Fraction.prototype.subtract.call(this, other);
return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator);
};
_proto.multiply = function multiply(other) {
var multiplied = _Fraction.prototype.multiply.call(this, other);
return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator);
};
_proto.divide = function divide(other) {
var divided = _Fraction.prototype.divide.call(this, other);
return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator);
};
_proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
if (significantDigits === void 0) {
significantDigits = 6;
}
if (rounding === void 0) {
rounding = Rounding.ROUND_DOWN;
}
return _Fraction.prototype.divide.call(this, this.decimalScale).toSignificant(significantDigits, format, rounding);
};
_proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
if (decimalPlaces === void 0) {
decimalPlaces = this.currency.decimals;
}
if (rounding === void 0) {
rounding = Rounding.ROUND_DOWN;
}
!(decimalPlaces <= this.currency.decimals) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DECIMALS') : invariant(false) : void 0;
return _Fraction.prototype.divide.call(this, this.decimalScale).toFixed(decimalPlaces, format, rounding);
};
_proto.toExact = function toExact(format) {
if (format === void 0) {
format = {
groupSeparator: ''
};
}
Big$1.DP = this.currency.decimals;
return new Big$1(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format);
};
return _createClass(CurrencyAmount, [{
key: "wrapped",
get: function get() {
if (this.currency.isToken) return this;
return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator);
}
}]);
}(Fraction);
var ONE_HUNDRED = /*#__PURE__*/new Fraction(/*#__PURE__*/JSBI.BigInt(100));
/**
* Converts a fraction to a percent
* @param fraction the fraction to convert
*/
function toPercent(fraction) {
return new Percent(fraction.numerator, fraction.denominator);
}
var Percent = /*#__PURE__*/function (_Fraction) {
function Percent() {
var _this;
_this = _Fraction.apply(this, arguments) || this;
/**
* This boolean prevents a fraction from being interpreted as a Percent
*/
_this.isPercent = true;
return _this;
}
_inheritsLoose(Percent, _Fraction);
var _proto = Percent.prototype;
_proto.add = function add(other) {
return toPercent(_Fraction.prototype.add.call(this, other));
};
_proto.subtract = function subtract(other) {
return toPercent(_Fraction.prototype.subtract.call(this, other));
};
_proto.multiply = function multiply(other) {
return toPercent(_Fraction.prototype.multiply.call(this, other));
};
_proto.divide = function divide(other) {
return toPercent(_Fraction.prototype.divide.call(this, other));
};
_proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
if (significantDigits === void 0) {
significantDigits = 5;
}
return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toSignificant(significantDigits, format, rounding);
};
_proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
if (decimalPlaces === void 0) {
decimalPlaces = 2;
}
return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toFixed(decimalPlaces, format, rounding);
};
return Percent;
}(Fraction);
var Price = /*#__PURE__*/function (_Fraction) {
/**
* Construct a price, either with the base and quote currency amount, or the
* @param args
*/
function Price() {
var _this;
var baseCurrency, quoteCurrency, denominator, numerator;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (args.length === 4) {
baseCurrency = args[0];
quoteCurrency = args[1];
denominator = args[2];
numerator = args[3];
} else {
var result = args[0].quoteAmount.divide(args[0].baseAmount);
var _ref = [args[0].baseAmount.currency, args[0].quoteAmount.currency, result.denominator, result.numerator];
baseCurrency = _ref[0];
quoteCurrency = _ref[1];
denominator = _ref[2];
numerator = _ref[3];
}
_this = _Fraction.call(this, numerator, denominator) || this;
_this.baseCurrency = baseCurrency;
_this.quoteCurrency = quoteCurrency;
_this.scalar = new Fraction(JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)), JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals)));
return _this;
}
/**
* Flip the price, switching the base and quote currency
*/
_inheritsLoose(Price, _Fraction);
var _proto = Price.prototype;
_proto.invert = function invert() {
return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
}
/**
* Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency
* @param other the other price
*/;
_proto.multiply = function multiply(other) {
!this.quoteCurrency.equals(other.baseCurrency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'TOKEN') : invariant(false) : void 0;
var fraction = _Fraction.prototype.multiply.call(this, other);
return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
}
/**
* Return the amount of quote currency corresponding to a given amount of the base currency
* @param currencyAmount the amount of base currency to quote against the price
*/;
_proto.quote = function quote(currencyAmount) {
!currencyAmount.currency.equals(this.baseCurrency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'TOKEN') : invariant(false) : void 0;
var result = _Fraction.prototype.multiply.call(this, currencyAmount);
return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
}
/**
* Get the value scaled by decimals for formatting
* @private
*/;
_proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
if (significantDigits === void 0) {
significantDigits = 6;
}
return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
};
_proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
if (decimalPlaces === void 0) {
decimalPlaces = 4;
}
return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
};
return _createClass(Price, [{
key: "adjustedForDecimals",
get: function get() {
return _Fraction.prototype.multiply.call(this, this.scalar);
}
}]);
}(Fraction);
/**
* A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
*/
var BaseCurrency =
/**
* 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 t