@juiceswapxyz/sdk-core 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1079 @@
1
+ import JSBI from 'jsbi';
2
+ import invariant from 'tiny-invariant';
3
+ import _Decimal from 'decimal.js-light';
4
+ import _Big from 'big.js';
5
+ import toFormat from 'toformat';
6
+ import { BigNumber } from '@ethersproject/bignumber';
7
+ import { getAddress } from '@ethersproject/address';
8
+ import { concat, hexZeroPad } from '@ethersproject/bytes';
9
+ import { keccak256 } from '@ethersproject/keccak256';
10
+ import { toUtf8Bytes } from '@ethersproject/strings';
11
+
12
+ function _defineProperties(e, r) {
13
+ for (var t = 0; t < r.length; t++) {
14
+ var o = r[t];
15
+ o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
16
+ }
17
+ }
18
+ function _createClass(e, r, t) {
19
+ return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
20
+ writable: !1
21
+ }), e;
22
+ }
23
+ function _extends() {
24
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
25
+ for (var e = 1; e < arguments.length; e++) {
26
+ var t = arguments[e];
27
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
28
+ }
29
+ return n;
30
+ }, _extends.apply(null, arguments);
31
+ }
32
+ function _inheritsLoose(t, o) {
33
+ t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
34
+ }
35
+ function _setPrototypeOf(t, e) {
36
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
37
+ return t.__proto__ = e, t;
38
+ }, _setPrototypeOf(t, e);
39
+ }
40
+ function _toPrimitive(t, r) {
41
+ if ("object" != typeof t || !t) return t;
42
+ var e = t[Symbol.toPrimitive];
43
+ if (void 0 !== e) {
44
+ var i = e.call(t, r || "default");
45
+ if ("object" != typeof i) return i;
46
+ throw new TypeError("@@toPrimitive must return a primitive value.");
47
+ }
48
+ return ("string" === r ? String : Number)(t);
49
+ }
50
+ function _toPropertyKey(t) {
51
+ var i = _toPrimitive(t, "string");
52
+ return "symbol" == typeof i ? i : i + "";
53
+ }
54
+
55
+ var ChainId;
56
+ (function (ChainId) {
57
+ ChainId[ChainId["MAINNET"] = 1] = "MAINNET";
58
+ ChainId[ChainId["GOERLI"] = 5] = "GOERLI";
59
+ ChainId[ChainId["SEPOLIA"] = 11155111] = "SEPOLIA";
60
+ ChainId[ChainId["OPTIMISM"] = 10] = "OPTIMISM";
61
+ ChainId[ChainId["OPTIMISM_GOERLI"] = 420] = "OPTIMISM_GOERLI";
62
+ ChainId[ChainId["OPTIMISM_SEPOLIA"] = 11155420] = "OPTIMISM_SEPOLIA";
63
+ ChainId[ChainId["ARBITRUM_ONE"] = 42161] = "ARBITRUM_ONE";
64
+ ChainId[ChainId["ARBITRUM_GOERLI"] = 421613] = "ARBITRUM_GOERLI";
65
+ ChainId[ChainId["ARBITRUM_SEPOLIA"] = 421614] = "ARBITRUM_SEPOLIA";
66
+ ChainId[ChainId["POLYGON"] = 137] = "POLYGON";
67
+ ChainId[ChainId["POLYGON_MUMBAI"] = 80001] = "POLYGON_MUMBAI";
68
+ ChainId[ChainId["CELO"] = 42220] = "CELO";
69
+ ChainId[ChainId["CELO_ALFAJORES"] = 44787] = "CELO_ALFAJORES";
70
+ ChainId[ChainId["GNOSIS"] = 100] = "GNOSIS";
71
+ ChainId[ChainId["MOONBEAM"] = 1284] = "MOONBEAM";
72
+ ChainId[ChainId["BNB"] = 56] = "BNB";
73
+ ChainId[ChainId["AVALANCHE"] = 43114] = "AVALANCHE";
74
+ ChainId[ChainId["BASE_GOERLI"] = 84531] = "BASE_GOERLI";
75
+ ChainId[ChainId["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA";
76
+ ChainId[ChainId["BASE"] = 8453] = "BASE";
77
+ ChainId[ChainId["ZORA"] = 7777777] = "ZORA";
78
+ ChainId[ChainId["ZORA_SEPOLIA"] = 999999999] = "ZORA_SEPOLIA";
79
+ ChainId[ChainId["ROOTSTOCK"] = 30] = "ROOTSTOCK";
80
+ ChainId[ChainId["BLAST"] = 81457] = "BLAST";
81
+ ChainId[ChainId["ZKSYNC"] = 324] = "ZKSYNC";
82
+ ChainId[ChainId["WORLDCHAIN"] = 480] = "WORLDCHAIN";
83
+ ChainId[ChainId["UNICHAIN_SEPOLIA"] = 1301] = "UNICHAIN_SEPOLIA";
84
+ ChainId[ChainId["UNICHAIN"] = 130] = "UNICHAIN";
85
+ ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET";
86
+ ChainId[ChainId["SONEIUM"] = 1868] = "SONEIUM";
87
+ })(ChainId || (ChainId = {}));
88
+ 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];
89
+ var NativeCurrencyName;
90
+ (function (NativeCurrencyName) {
91
+ // Strings match input for CLI
92
+ NativeCurrencyName["ETHER"] = "ETH";
93
+ NativeCurrencyName["MATIC"] = "MATIC";
94
+ NativeCurrencyName["CELO"] = "CELO";
95
+ NativeCurrencyName["GNOSIS"] = "XDAI";
96
+ NativeCurrencyName["MOONBEAM"] = "GLMR";
97
+ NativeCurrencyName["BNB"] = "BNB";
98
+ NativeCurrencyName["AVAX"] = "AVAX";
99
+ NativeCurrencyName["ROOTSTOCK"] = "RBTC";
100
+ })(NativeCurrencyName || (NativeCurrencyName = {}));
101
+
102
+ 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;
103
+ var DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA];
104
+ function constructSameAddressMap(address, additionalNetworks) {
105
+ if (additionalNetworks === void 0) {
106
+ additionalNetworks = [];
107
+ }
108
+ return DEFAULT_NETWORKS.concat(additionalNetworks).reduce(function (memo, chainId) {
109
+ memo[chainId] = address;
110
+ return memo;
111
+ }, {});
112
+ }
113
+ var UNI_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [ChainId.OPTIMISM, ChainId.ARBITRUM_ONE, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.SEPOLIA]);
114
+ var UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78';
115
+ /**
116
+ * @deprecated use V2_FACTORY_ADDRESSES instead
117
+ */
118
+ var V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f';
119
+ 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);
120
+ /**
121
+ * @deprecated use V2_ROUTER_ADDRESSES instead
122
+ */
123
+ var V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D';
124
+ 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);
125
+ // Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon
126
+ var DEFAULT_ADDRESSES = {
127
+ v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
128
+ multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',
129
+ quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
130
+ v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',
131
+ nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
132
+ };
133
+ var MAINNET_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
134
+ mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',
135
+ v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',
136
+ v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',
137
+ v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',
138
+ v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203'
139
+ });
140
+ var GOERLI_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
141
+ mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e'
142
+ });
143
+ var OPTIMISM_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
144
+ v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',
145
+ v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',
146
+ v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',
147
+ v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7'
148
+ });
149
+ var ARBITRUM_ONE_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
150
+ multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',
151
+ tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',
152
+ v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
153
+ v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',
154
+ v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
155
+ v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
156
+ });
157
+ var POLYGON_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, {
158
+ v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',
159
+ v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',
160
+ v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',
161
+ v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9'
162
+ });
163
+ // celo v3 addresses
164
+ var CELO_ADDRESSES = {
165
+ v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',
166
+ multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',
167
+ quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',
168
+ v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',
169
+ nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',
170
+ tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D'
171
+ };
172
+ // BNB v3 addresses
173
+ var BNB_ADDRESSES = {
174
+ v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',
175
+ multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',
176
+ quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',
177
+ v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',
178
+ nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',
179
+ tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',
180
+ swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',
181
+ v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',
182
+ v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',
183
+ v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',
184
+ v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0'
185
+ };
186
+ // optimism goerli addresses
187
+ var OPTIMISM_GOERLI_ADDRESSES = {
188
+ v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',
189
+ multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',
190
+ quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',
191
+ v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',
192
+ nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',
193
+ tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e'
194
+ };
195
+ // optimism sepolia addresses
196
+ var OPTIMISM_SEPOLIA_ADDRESSES = {
197
+ v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',
198
+ multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',
199
+ quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',
200
+ v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',
201
+ nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',
202
+ tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',
203
+ swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4'
204
+ };
205
+ // arbitrum goerli v3 addresses
206
+ var ARBITRUM_GOERLI_ADDRESSES = {
207
+ v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',
208
+ multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',
209
+ quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',
210
+ v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',
211
+ nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',
212
+ tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8'
213
+ };
214
+ // arbitrum sepolia v3 addresses
215
+ var ARBITRUM_SEPOLIA_ADDRESSES = {
216
+ v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',
217
+ multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',
218
+ quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',
219
+ v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',
220
+ nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',
221
+ tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',
222
+ swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',
223
+ v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',
224
+ v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',
225
+ v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',
226
+ v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9'
227
+ };
228
+ // sepolia v3 addresses
229
+ var SEPOLIA_ADDRESSES = {
230
+ v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',
231
+ multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',
232
+ quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',
233
+ v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',
234
+ nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',
235
+ tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',
236
+ swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',
237
+ // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed
238
+ mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',
239
+ // TODO: update all below once v4 on sepolia redeployed
240
+ v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',
241
+ v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',
242
+ v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',
243
+ v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227'
244
+ };
245
+ // Avalanche v3 addresses
246
+ var AVALANCHE_ADDRESSES = {
247
+ v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',
248
+ multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',
249
+ quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',
250
+ v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',
251
+ nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',
252
+ tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',
253
+ swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',
254
+ v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',
255
+ v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',
256
+ v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',
257
+ v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2'
258
+ };
259
+ var BASE_ADDRESSES = {
260
+ v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
261
+ multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
262
+ quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
263
+ v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',
264
+ nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',
265
+ tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',
266
+ swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',
267
+ mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',
268
+ v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',
269
+ v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',
270
+ v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',
271
+ v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d'
272
+ };
273
+ // Base Goerli v3 addresses
274
+ var BASE_GOERLI_ADDRESSES = {
275
+ v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',
276
+ multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',
277
+ quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',
278
+ v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',
279
+ nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',
280
+ tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',
281
+ swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d'
282
+ };
283
+ // Base Sepolia v3 addresses
284
+ var BASE_SEPOLIA_ADDRESSES = {
285
+ v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',
286
+ multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',
287
+ quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',
288
+ v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',
289
+ nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',
290
+ tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',
291
+ swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',
292
+ // v4
293
+ v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
294
+ v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',
295
+ v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',
296
+ v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba'
297
+ };
298
+ var ZORA_ADDRESSES = {
299
+ v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',
300
+ multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',
301
+ quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',
302
+ v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',
303
+ nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',
304
+ tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',
305
+ swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',
306
+ v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',
307
+ v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',
308
+ v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',
309
+ v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6'
310
+ };
311
+ var ZORA_SEPOLIA_ADDRESSES = {
312
+ v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',
313
+ multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',
314
+ quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',
315
+ v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',
316
+ nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',
317
+ tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064'
318
+ };
319
+ var ROOTSTOCK_ADDRESSES = {
320
+ v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',
321
+ multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',
322
+ quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',
323
+ v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',
324
+ nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',
325
+ tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',
326
+ swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A'
327
+ };
328
+ var BLAST_ADDRESSES = {
329
+ v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',
330
+ multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',
331
+ quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',
332
+ v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',
333
+ nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',
334
+ tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',
335
+ swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',
336
+ v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',
337
+ v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',
338
+ v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',
339
+ v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf'
340
+ };
341
+ var ZKSYNC_ADDRESSES = {
342
+ v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',
343
+ multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',
344
+ quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',
345
+ v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',
346
+ nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',
347
+ tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',
348
+ swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3'
349
+ };
350
+ var WORLDCHAIN_ADDRESSES = {
351
+ v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',
352
+ multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',
353
+ quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',
354
+ v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',
355
+ nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',
356
+ tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',
357
+ swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',
358
+ v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',
359
+ v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',
360
+ v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',
361
+ v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0'
362
+ };
363
+ var UNICHAIN_SEPOLIA_ADDRESSES = {
364
+ v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
365
+ multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',
366
+ quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',
367
+ v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',
368
+ nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',
369
+ tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',
370
+ swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',
371
+ v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',
372
+ v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',
373
+ v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',
374
+ v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472'
375
+ };
376
+ var UNICHAIN_ADDRESSES = {
377
+ v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',
378
+ multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',
379
+ quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',
380
+ v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',
381
+ nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',
382
+ tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',
383
+ swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',
384
+ v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',
385
+ v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',
386
+ v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',
387
+ v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0'
388
+ };
389
+ var MONAD_TESTNET_ADDRESSES = {
390
+ v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',
391
+ multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',
392
+ quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',
393
+ v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',
394
+ nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',
395
+ tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',
396
+ swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7'
397
+ };
398
+ var SONEIUM_ADDRESSES = {
399
+ v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',
400
+ multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',
401
+ quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',
402
+ v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',
403
+ nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',
404
+ tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',
405
+ swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',
406
+ v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
407
+ v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',
408
+ v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
409
+ v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5'
410
+ };
411
+ 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);
412
+ /* V3 Contract Addresses */
413
+ var V3_CORE_FACTORY_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
414
+ memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress;
415
+ return memo;
416
+ }, {}));
417
+ var V3_MIGRATOR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
418
+ var v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress;
419
+ if (v3MigratorAddress) {
420
+ memo[chainId] = v3MigratorAddress;
421
+ }
422
+ return memo;
423
+ }, {}));
424
+ var MULTICALL_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
425
+ memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress;
426
+ return memo;
427
+ }, {}));
428
+ /**
429
+ * The oldest V0 governance address
430
+ */
431
+ var GOVERNANCE_ALPHA_V0_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F');
432
+ /**
433
+ * The older V1 governance address
434
+ */
435
+ var GOVERNANCE_ALPHA_V1_ADDRESSES = (_GOVERNANCE_ALPHA_V1_ = {}, _GOVERNANCE_ALPHA_V1_[ChainId.MAINNET] = '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6', _GOVERNANCE_ALPHA_V1_);
436
+ /**
437
+ * The latest governor bravo that is currently admin of timelock
438
+ */
439
+ var GOVERNANCE_BRAVO_ADDRESSES = (_GOVERNANCE_BRAVO_ADD = {}, _GOVERNANCE_BRAVO_ADD[ChainId.MAINNET] = '0x408ED6354d4973f66138C91495F2f2FCbd8724C3', _GOVERNANCE_BRAVO_ADD);
440
+ var TIMELOCK_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC');
441
+ var MERKLE_DISTRIBUTOR_ADDRESS = (_MERKLE_DISTRIBUTOR_A = {}, _MERKLE_DISTRIBUTOR_A[ChainId.MAINNET] = '0x090D4613473dEE047c3f2706764f49E0821D256e', _MERKLE_DISTRIBUTOR_A);
442
+ var ARGENT_WALLET_DETECTOR_ADDRESS = (_ARGENT_WALLET_DETECT = {}, _ARGENT_WALLET_DETECT[ChainId.MAINNET] = '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8', _ARGENT_WALLET_DETECT);
443
+ var QUOTER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
444
+ memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress;
445
+ return memo;
446
+ }, {}));
447
+ var NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
448
+ var nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress;
449
+ if (nonfungiblePositionManagerAddress) {
450
+ memo[chainId] = nonfungiblePositionManagerAddress;
451
+ }
452
+ return memo;
453
+ }, {}));
454
+ var ENS_REGISTRAR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'));
455
+ var SOCKS_CONTROLLER_ADDRESSES = (_SOCKS_CONTROLLER_ADD = {}, _SOCKS_CONTROLLER_ADD[ChainId.MAINNET] = '0x65770b5283117639760beA3F867b69b3697a91dd', _SOCKS_CONTROLLER_ADD);
456
+ var TICK_LENS_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
457
+ var tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress;
458
+ if (tickLensAddress) {
459
+ memo[chainId] = tickLensAddress;
460
+ }
461
+ return memo;
462
+ }, {}));
463
+ var MIXED_ROUTE_QUOTER_V1_ADDRESSES = /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) {
464
+ var mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address;
465
+ if (mixedRouteQuoterV1Address) {
466
+ memo[chainId] = mixedRouteQuoterV1Address;
467
+ }
468
+ return memo;
469
+ }, {});
470
+ var SWAP_ROUTER_02_ADDRESSES = function SWAP_ROUTER_02_ADDRESSES(chainId) {
471
+ if (SUPPORTED_CHAINS.includes(chainId)) {
472
+ var _CHAIN_TO_ADDRESSES_M2;
473
+ var id = chainId;
474
+ return (_CHAIN_TO_ADDRESSES_M2 = CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address) != null ? _CHAIN_TO_ADDRESSES_M2 : '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45';
475
+ }
476
+ return '';
477
+ };
478
+
479
+ var TradeType;
480
+ (function (TradeType) {
481
+ TradeType[TradeType["EXACT_INPUT"] = 0] = "EXACT_INPUT";
482
+ TradeType[TradeType["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT";
483
+ })(TradeType || (TradeType = {}));
484
+ var Rounding;
485
+ (function (Rounding) {
486
+ Rounding[Rounding["ROUND_DOWN"] = 0] = "ROUND_DOWN";
487
+ Rounding[Rounding["ROUND_HALF_UP"] = 1] = "ROUND_HALF_UP";
488
+ Rounding[Rounding["ROUND_UP"] = 2] = "ROUND_UP";
489
+ })(Rounding || (Rounding = {}));
490
+ var MaxUint256 = /*#__PURE__*/JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
491
+
492
+ var _toSignificantRoundin, _toFixedRounding;
493
+ var Decimal = /*#__PURE__*/toFormat(_Decimal);
494
+ var Big = /*#__PURE__*/toFormat(_Big);
495
+ 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);
496
+ var toFixedRounding = (_toFixedRounding = {}, _toFixedRounding[Rounding.ROUND_DOWN] = 0, _toFixedRounding[Rounding.ROUND_HALF_UP] = 1, _toFixedRounding[Rounding.ROUND_UP] = 3, _toFixedRounding);
497
+ var Fraction = /*#__PURE__*/function () {
498
+ function Fraction(numerator, denominator) {
499
+ if (denominator === void 0) {
500
+ denominator = JSBI.BigInt(1);
501
+ }
502
+ this.numerator = JSBI.BigInt(numerator);
503
+ this.denominator = JSBI.BigInt(denominator);
504
+ }
505
+ Fraction.tryParseFraction = function tryParseFraction(fractionish) {
506
+ if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string') return new Fraction(fractionish);
507
+ if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish;
508
+ throw new Error('Could not parse fraction');
509
+ }
510
+ // performs floor division
511
+ ;
512
+ var _proto = Fraction.prototype;
513
+ _proto.invert = function invert() {
514
+ return new Fraction(this.denominator, this.numerator);
515
+ };
516
+ _proto.add = function add(other) {
517
+ var otherParsed = Fraction.tryParseFraction(other);
518
+ if (JSBI.equal(this.denominator, otherParsed.denominator)) {
519
+ return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator);
520
+ }
521
+ return new Fraction(JSBI.add(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));
522
+ };
523
+ _proto.subtract = function subtract(other) {
524
+ var otherParsed = Fraction.tryParseFraction(other);
525
+ if (JSBI.equal(this.denominator, otherParsed.denominator)) {
526
+ return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator);
527
+ }
528
+ return new Fraction(JSBI.subtract(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));
529
+ };
530
+ _proto.lessThan = function lessThan(other) {
531
+ var otherParsed = Fraction.tryParseFraction(other);
532
+ return JSBI.lessThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
533
+ };
534
+ _proto.equalTo = function equalTo(other) {
535
+ var otherParsed = Fraction.tryParseFraction(other);
536
+ return JSBI.equal(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
537
+ };
538
+ _proto.greaterThan = function greaterThan(other) {
539
+ var otherParsed = Fraction.tryParseFraction(other);
540
+ return JSBI.greaterThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
541
+ };
542
+ _proto.multiply = function multiply(other) {
543
+ var otherParsed = Fraction.tryParseFraction(other);
544
+ return new Fraction(JSBI.multiply(this.numerator, otherParsed.numerator), JSBI.multiply(this.denominator, otherParsed.denominator));
545
+ };
546
+ _proto.divide = function divide(other) {
547
+ var otherParsed = Fraction.tryParseFraction(other);
548
+ return new Fraction(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(this.denominator, otherParsed.numerator));
549
+ };
550
+ _proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
551
+ if (format === void 0) {
552
+ format = {
553
+ groupSeparator: ''
554
+ };
555
+ }
556
+ if (rounding === void 0) {
557
+ rounding = Rounding.ROUND_HALF_UP;
558
+ }
559
+ !Number.isInteger(significantDigits) ? process.env.NODE_ENV !== "production" ? invariant(false, significantDigits + " is not an integer.") : invariant(false) : void 0;
560
+ !(significantDigits > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, significantDigits + " is not positive.") : invariant(false) : void 0;
561
+ Decimal.set({
562
+ precision: significantDigits + 1,
563
+ rounding: toSignificantRounding[rounding]
564
+ });
565
+ var quotient = new Decimal(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(significantDigits);
566
+ return quotient.toFormat(quotient.decimalPlaces(), format);
567
+ };
568
+ _proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
569
+ if (format === void 0) {
570
+ format = {
571
+ groupSeparator: ''
572
+ };
573
+ }
574
+ if (rounding === void 0) {
575
+ rounding = Rounding.ROUND_HALF_UP;
576
+ }
577
+ !Number.isInteger(decimalPlaces) ? process.env.NODE_ENV !== "production" ? invariant(false, decimalPlaces + " is not an integer.") : invariant(false) : void 0;
578
+ !(decimalPlaces >= 0) ? process.env.NODE_ENV !== "production" ? invariant(false, decimalPlaces + " is negative.") : invariant(false) : void 0;
579
+ Big.DP = decimalPlaces;
580
+ Big.RM = toFixedRounding[rounding];
581
+ return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format);
582
+ }
583
+ /**
584
+ * Helper method for converting any super class back to a fraction
585
+ */;
586
+ return _createClass(Fraction, [{
587
+ key: "quotient",
588
+ get: function get() {
589
+ return JSBI.divide(this.numerator, this.denominator);
590
+ }
591
+ // remainder after floor division
592
+ }, {
593
+ key: "remainder",
594
+ get: function get() {
595
+ return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator);
596
+ }
597
+ }, {
598
+ key: "asFraction",
599
+ get: function get() {
600
+ return new Fraction(this.numerator, this.denominator);
601
+ }
602
+ }]);
603
+ }();
604
+
605
+ var Big$1 = /*#__PURE__*/toFormat(_Big);
606
+ var CurrencyAmount = /*#__PURE__*/function (_Fraction) {
607
+ function CurrencyAmount(currency, numerator, denominator) {
608
+ var _this;
609
+ _this = _Fraction.call(this, numerator, denominator) || this;
610
+ !JSBI.lessThanOrEqual(_this.quotient, MaxUint256) ? process.env.NODE_ENV !== "production" ? invariant(false, 'AMOUNT') : invariant(false) : void 0;
611
+ _this.currency = currency;
612
+ _this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals));
613
+ return _this;
614
+ }
615
+ /**
616
+ * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
617
+ * @param currency the currency in the amount
618
+ * @param rawAmount the raw token or ether amount
619
+ */
620
+ _inheritsLoose(CurrencyAmount, _Fraction);
621
+ CurrencyAmount.fromRawAmount = function fromRawAmount(currency, rawAmount) {
622
+ return new CurrencyAmount(currency, rawAmount);
623
+ }
624
+ /**
625
+ * Construct a currency amount with a denominator that is not equal to 1
626
+ * @param currency the currency
627
+ * @param numerator the numerator of the fractional token amount
628
+ * @param denominator the denominator of the fractional token amount
629
+ */;
630
+ CurrencyAmount.fromFractionalAmount = function fromFractionalAmount(currency, numerator, denominator) {
631
+ return new CurrencyAmount(currency, numerator, denominator);
632
+ };
633
+ var _proto = CurrencyAmount.prototype;
634
+ _proto.add = function add(other) {
635
+ !this.currency.equals(other.currency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CURRENCY') : invariant(false) : void 0;
636
+ var added = _Fraction.prototype.add.call(this, other);
637
+ return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator);
638
+ };
639
+ _proto.subtract = function subtract(other) {
640
+ !this.currency.equals(other.currency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CURRENCY') : invariant(false) : void 0;
641
+ var subtracted = _Fraction.prototype.subtract.call(this, other);
642
+ return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator);
643
+ };
644
+ _proto.multiply = function multiply(other) {
645
+ var multiplied = _Fraction.prototype.multiply.call(this, other);
646
+ return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator);
647
+ };
648
+ _proto.divide = function divide(other) {
649
+ var divided = _Fraction.prototype.divide.call(this, other);
650
+ return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator);
651
+ };
652
+ _proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
653
+ if (significantDigits === void 0) {
654
+ significantDigits = 6;
655
+ }
656
+ if (rounding === void 0) {
657
+ rounding = Rounding.ROUND_DOWN;
658
+ }
659
+ return _Fraction.prototype.divide.call(this, this.decimalScale).toSignificant(significantDigits, format, rounding);
660
+ };
661
+ _proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
662
+ if (decimalPlaces === void 0) {
663
+ decimalPlaces = this.currency.decimals;
664
+ }
665
+ if (rounding === void 0) {
666
+ rounding = Rounding.ROUND_DOWN;
667
+ }
668
+ !(decimalPlaces <= this.currency.decimals) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DECIMALS') : invariant(false) : void 0;
669
+ return _Fraction.prototype.divide.call(this, this.decimalScale).toFixed(decimalPlaces, format, rounding);
670
+ };
671
+ _proto.toExact = function toExact(format) {
672
+ if (format === void 0) {
673
+ format = {
674
+ groupSeparator: ''
675
+ };
676
+ }
677
+ Big$1.DP = this.currency.decimals;
678
+ return new Big$1(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format);
679
+ };
680
+ return _createClass(CurrencyAmount, [{
681
+ key: "wrapped",
682
+ get: function get() {
683
+ if (this.currency.isToken) return this;
684
+ return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator);
685
+ }
686
+ }]);
687
+ }(Fraction);
688
+
689
+ var ONE_HUNDRED = /*#__PURE__*/new Fraction(/*#__PURE__*/JSBI.BigInt(100));
690
+ /**
691
+ * Converts a fraction to a percent
692
+ * @param fraction the fraction to convert
693
+ */
694
+ function toPercent(fraction) {
695
+ return new Percent(fraction.numerator, fraction.denominator);
696
+ }
697
+ var Percent = /*#__PURE__*/function (_Fraction) {
698
+ function Percent() {
699
+ var _this;
700
+ _this = _Fraction.apply(this, arguments) || this;
701
+ /**
702
+ * This boolean prevents a fraction from being interpreted as a Percent
703
+ */
704
+ _this.isPercent = true;
705
+ return _this;
706
+ }
707
+ _inheritsLoose(Percent, _Fraction);
708
+ var _proto = Percent.prototype;
709
+ _proto.add = function add(other) {
710
+ return toPercent(_Fraction.prototype.add.call(this, other));
711
+ };
712
+ _proto.subtract = function subtract(other) {
713
+ return toPercent(_Fraction.prototype.subtract.call(this, other));
714
+ };
715
+ _proto.multiply = function multiply(other) {
716
+ return toPercent(_Fraction.prototype.multiply.call(this, other));
717
+ };
718
+ _proto.divide = function divide(other) {
719
+ return toPercent(_Fraction.prototype.divide.call(this, other));
720
+ };
721
+ _proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
722
+ if (significantDigits === void 0) {
723
+ significantDigits = 5;
724
+ }
725
+ return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toSignificant(significantDigits, format, rounding);
726
+ };
727
+ _proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
728
+ if (decimalPlaces === void 0) {
729
+ decimalPlaces = 2;
730
+ }
731
+ return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toFixed(decimalPlaces, format, rounding);
732
+ };
733
+ return Percent;
734
+ }(Fraction);
735
+
736
+ var Price = /*#__PURE__*/function (_Fraction) {
737
+ /**
738
+ * Construct a price, either with the base and quote currency amount, or the
739
+ * @param args
740
+ */
741
+ function Price() {
742
+ var _this;
743
+ var baseCurrency, quoteCurrency, denominator, numerator;
744
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
745
+ args[_key] = arguments[_key];
746
+ }
747
+ if (args.length === 4) {
748
+ baseCurrency = args[0];
749
+ quoteCurrency = args[1];
750
+ denominator = args[2];
751
+ numerator = args[3];
752
+ } else {
753
+ var result = args[0].quoteAmount.divide(args[0].baseAmount);
754
+ var _ref = [args[0].baseAmount.currency, args[0].quoteAmount.currency, result.denominator, result.numerator];
755
+ baseCurrency = _ref[0];
756
+ quoteCurrency = _ref[1];
757
+ denominator = _ref[2];
758
+ numerator = _ref[3];
759
+ }
760
+ _this = _Fraction.call(this, numerator, denominator) || this;
761
+ _this.baseCurrency = baseCurrency;
762
+ _this.quoteCurrency = quoteCurrency;
763
+ _this.scalar = new Fraction(JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)), JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals)));
764
+ return _this;
765
+ }
766
+ /**
767
+ * Flip the price, switching the base and quote currency
768
+ */
769
+ _inheritsLoose(Price, _Fraction);
770
+ var _proto = Price.prototype;
771
+ _proto.invert = function invert() {
772
+ return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
773
+ }
774
+ /**
775
+ * 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
776
+ * @param other the other price
777
+ */;
778
+ _proto.multiply = function multiply(other) {
779
+ !this.quoteCurrency.equals(other.baseCurrency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'TOKEN') : invariant(false) : void 0;
780
+ var fraction = _Fraction.prototype.multiply.call(this, other);
781
+ return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
782
+ }
783
+ /**
784
+ * Return the amount of quote currency corresponding to a given amount of the base currency
785
+ * @param currencyAmount the amount of base currency to quote against the price
786
+ */;
787
+ _proto.quote = function quote(currencyAmount) {
788
+ !currencyAmount.currency.equals(this.baseCurrency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'TOKEN') : invariant(false) : void 0;
789
+ var result = _Fraction.prototype.multiply.call(this, currencyAmount);
790
+ return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
791
+ }
792
+ /**
793
+ * Get the value scaled by decimals for formatting
794
+ * @private
795
+ */;
796
+ _proto.toSignificant = function toSignificant(significantDigits, format, rounding) {
797
+ if (significantDigits === void 0) {
798
+ significantDigits = 6;
799
+ }
800
+ return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
801
+ };
802
+ _proto.toFixed = function toFixed(decimalPlaces, format, rounding) {
803
+ if (decimalPlaces === void 0) {
804
+ decimalPlaces = 4;
805
+ }
806
+ return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
807
+ };
808
+ return _createClass(Price, [{
809
+ key: "adjustedForDecimals",
810
+ get: function get() {
811
+ return _Fraction.prototype.multiply.call(this, this.scalar);
812
+ }
813
+ }]);
814
+ }(Fraction);
815
+
816
+ /**
817
+ * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
818
+ */
819
+ var BaseCurrency =
820
+ /**
821
+ * Constructs an instance of the base class `BaseCurrency`.
822
+ * @param chainId the chain ID on which this currency resides
823
+ * @param decimals decimals of the currency
824
+ * @param symbol symbol of the currency
825
+ * @param name of the currency
826
+ */
827
+ function BaseCurrency(chainId, decimals, symbol, name) {
828
+ !Number.isSafeInteger(chainId) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CHAIN_ID') : invariant(false) : void 0;
829
+ !(decimals >= 0 && decimals < 255 && Number.isInteger(decimals)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DECIMALS') : invariant(false) : void 0;
830
+ this.chainId = chainId;
831
+ this.decimals = decimals;
832
+ this.symbol = symbol;
833
+ this.name = name;
834
+ };
835
+
836
+ /**
837
+ * Represents the native currency of the chain on which it resides, e.g.
838
+ */
839
+ var NativeCurrency = /*#__PURE__*/function (_BaseCurrency) {
840
+ function NativeCurrency() {
841
+ var _this;
842
+ _this = _BaseCurrency.apply(this, arguments) || this;
843
+ _this.isNative = true;
844
+ _this.isToken = false;
845
+ return _this;
846
+ }
847
+ _inheritsLoose(NativeCurrency, _BaseCurrency);
848
+ return NativeCurrency;
849
+ }(BaseCurrency);
850
+
851
+ /**
852
+ * Validates an address and returns the parsed (checksummed) version of that address
853
+ * @param address the unchecksummed hex address
854
+ */
855
+ function validateAndParseAddress(address) {
856
+ try {
857
+ return getAddress(address);
858
+ } catch (error) {
859
+ throw new Error(address + " is not a valid address.");
860
+ }
861
+ }
862
+ // Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x
863
+ var startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/;
864
+ /**
865
+ * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.
866
+ * @param address the unchecksummed hex address
867
+ */
868
+ function checkValidAddress(address) {
869
+ if (startsWith0xLen42HexRegex.test(address)) {
870
+ return address;
871
+ }
872
+ throw new Error(address + " is not a valid address.");
873
+ }
874
+
875
+ /**
876
+ * Represents an ERC20 token with a unique address and some metadata.
877
+ */
878
+ var Token = /*#__PURE__*/function (_BaseCurrency) {
879
+ /**
880
+ *
881
+ * @param chainId {@link BaseCurrency#chainId}
882
+ * @param address The contract address on the chain on which this token lives
883
+ * @param decimals {@link BaseCurrency#decimals}
884
+ * @param symbol {@link BaseCurrency#symbol}
885
+ * @param name {@link BaseCurrency#name}
886
+ * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
887
+ * @param buyFeeBps Buy fee tax for FOT tokens, in basis points
888
+ * @param sellFeeBps Sell fee tax for FOT tokens, in basis points
889
+ */
890
+ function Token(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
891
+ var _this;
892
+ _this = _BaseCurrency.call(this, chainId, decimals, symbol, name) || this;
893
+ _this.isNative = false;
894
+ _this.isToken = true;
895
+ if (bypassChecksum) {
896
+ _this.address = checkValidAddress(address);
897
+ } else {
898
+ _this.address = validateAndParseAddress(address);
899
+ }
900
+ if (buyFeeBps) {
901
+ !buyFeeBps.gte(BigNumber.from(0)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'NON-NEGATIVE FOT FEES') : invariant(false) : void 0;
902
+ }
903
+ if (sellFeeBps) {
904
+ !sellFeeBps.gte(BigNumber.from(0)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'NON-NEGATIVE FOT FEES') : invariant(false) : void 0;
905
+ }
906
+ _this.buyFeeBps = buyFeeBps;
907
+ _this.sellFeeBps = sellFeeBps;
908
+ return _this;
909
+ }
910
+ /**
911
+ * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
912
+ * @param other other token to compare
913
+ */
914
+ _inheritsLoose(Token, _BaseCurrency);
915
+ var _proto = Token.prototype;
916
+ _proto.equals = function equals(other) {
917
+ return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
918
+ }
919
+ /**
920
+ * Returns true if the address of this token sorts before the address of the other token
921
+ * @param other other token to compare
922
+ * @throws if the tokens have the same address
923
+ * @throws if the tokens are on different chains
924
+ */;
925
+ _proto.sortsBefore = function sortsBefore(other) {
926
+ !(this.chainId === other.chainId) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CHAIN_IDS') : invariant(false) : void 0;
927
+ !(this.address.toLowerCase() !== other.address.toLowerCase()) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ADDRESSES') : invariant(false) : void 0;
928
+ return this.address.toLowerCase() < other.address.toLowerCase();
929
+ }
930
+ /**
931
+ * Return this token, which does not need to be wrapped
932
+ */;
933
+ return _createClass(Token, [{
934
+ key: "wrapped",
935
+ get: function get() {
936
+ return this;
937
+ }
938
+ }]);
939
+ }(BaseCurrency);
940
+
941
+ /**
942
+ * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
943
+ */
944
+ var WETH9 = {
945
+ 1: /*#__PURE__*/new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
946
+ 11155111: /*#__PURE__*/new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
947
+ 3: /*#__PURE__*/new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
948
+ 4: /*#__PURE__*/new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
949
+ 5: /*#__PURE__*/new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
950
+ 42: /*#__PURE__*/new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),
951
+ 10: /*#__PURE__*/new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
952
+ 69: /*#__PURE__*/new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
953
+ 11155420: /*#__PURE__*/new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
954
+ 42161: /*#__PURE__*/new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
955
+ 421611: /*#__PURE__*/new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),
956
+ 421614: /*#__PURE__*/new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),
957
+ 8453: /*#__PURE__*/new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
958
+ 84532: /*#__PURE__*/new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
959
+ 56: /*#__PURE__*/new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
960
+ 137: /*#__PURE__*/new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
961
+ 43114: /*#__PURE__*/new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
962
+ 7777777: /*#__PURE__*/new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
963
+ 81457: /*#__PURE__*/new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),
964
+ 324: /*#__PURE__*/new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),
965
+ 480: /*#__PURE__*/new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
966
+ 1301: /*#__PURE__*/new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
967
+ 130: /*#__PURE__*/new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
968
+ 10143: /*#__PURE__*/new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),
969
+ 1868: /*#__PURE__*/new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether')
970
+ };
971
+
972
+ /**
973
+ * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets
974
+ */
975
+ var Ether = /*#__PURE__*/function (_NativeCurrency) {
976
+ function Ether(chainId) {
977
+ return _NativeCurrency.call(this, chainId, 18, 'ETH', 'Ether') || this;
978
+ }
979
+ _inheritsLoose(Ether, _NativeCurrency);
980
+ Ether.onChain = function onChain(chainId) {
981
+ var _this$_etherCache$cha;
982
+ return (_this$_etherCache$cha = this._etherCache[chainId]) != null ? _this$_etherCache$cha : this._etherCache[chainId] = new Ether(chainId);
983
+ };
984
+ var _proto = Ether.prototype;
985
+ _proto.equals = function equals(other) {
986
+ return other.isNative && other.chainId === this.chainId;
987
+ };
988
+ return _createClass(Ether, [{
989
+ key: "wrapped",
990
+ get: function get() {
991
+ var weth9 = WETH9[this.chainId];
992
+ !!!weth9 ? process.env.NODE_ENV !== "production" ? invariant(false, 'WRAPPED') : invariant(false) : void 0;
993
+ return weth9;
994
+ }
995
+ }]);
996
+ }(NativeCurrency);
997
+ Ether._etherCache = {};
998
+
999
+ /**
1000
+ * Returns the percent difference between the mid price and the execution price, i.e. price impact.
1001
+ * @param midPrice mid price before the trade
1002
+ * @param inputAmount the input amount of the trade
1003
+ * @param outputAmount the output amount of the trade
1004
+ */
1005
+ function computePriceImpact(midPrice, inputAmount, outputAmount) {
1006
+ var quotedOutputAmount = midPrice.quote(inputAmount);
1007
+ // calculate price impact := (exactQuote - outputAmount) / exactQuote
1008
+ var priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount);
1009
+ return new Percent(priceImpact.numerator, priceImpact.denominator);
1010
+ }
1011
+
1012
+ function computeZksyncCreate2Address(sender, bytecodeHash, salt, input) {
1013
+ if (input === void 0) {
1014
+ input = '0x';
1015
+ }
1016
+ var prefix = keccak256(toUtf8Bytes('zksyncCreate2'));
1017
+ var inputHash = keccak256(input);
1018
+ var addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26);
1019
+ return getAddress(addressBytes);
1020
+ }
1021
+
1022
+ // given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to
1023
+ // `maxSize` by removing the last item
1024
+ function sortedInsert(items, add, maxSize, comparator) {
1025
+ !(maxSize > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, 'MAX_SIZE_ZERO') : invariant(false) : void 0;
1026
+ // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize
1027
+ !(items.length <= maxSize) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ITEMS_SIZE') : invariant(false) : void 0;
1028
+ // short circuit first item add
1029
+ if (items.length === 0) {
1030
+ items.push(add);
1031
+ return null;
1032
+ } else {
1033
+ var isFull = items.length === maxSize;
1034
+ // short circuit if full and the additional item does not come before the last item
1035
+ if (isFull && comparator(items[items.length - 1], add) <= 0) {
1036
+ return add;
1037
+ }
1038
+ var lo = 0,
1039
+ hi = items.length;
1040
+ while (lo < hi) {
1041
+ var mid = lo + hi >>> 1;
1042
+ if (comparator(items[mid], add) <= 0) {
1043
+ lo = mid + 1;
1044
+ } else {
1045
+ hi = mid;
1046
+ }
1047
+ }
1048
+ items.splice(lo, 0, add);
1049
+ return isFull ? items.pop() : null;
1050
+ }
1051
+ }
1052
+
1053
+ var MAX_SAFE_INTEGER = /*#__PURE__*/JSBI.BigInt(Number.MAX_SAFE_INTEGER);
1054
+ var ZERO = /*#__PURE__*/JSBI.BigInt(0);
1055
+ var ONE = /*#__PURE__*/JSBI.BigInt(1);
1056
+ var TWO = /*#__PURE__*/JSBI.BigInt(2);
1057
+ /**
1058
+ * Computes floor(sqrt(value))
1059
+ * @param value the value for which to compute the square root, rounded down
1060
+ */
1061
+ function sqrt(value) {
1062
+ !JSBI.greaterThanOrEqual(value, ZERO) ? process.env.NODE_ENV !== "production" ? invariant(false, 'NEGATIVE') : invariant(false) : void 0;
1063
+ // rely on built in sqrt if possible
1064
+ if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {
1065
+ return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))));
1066
+ }
1067
+ var z;
1068
+ var x;
1069
+ z = value;
1070
+ x = JSBI.add(JSBI.divide(value, TWO), ONE);
1071
+ while (JSBI.lessThan(x, z)) {
1072
+ z = x;
1073
+ x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO);
1074
+ }
1075
+ return z;
1076
+ }
1077
+
1078
+ export { ARGENT_WALLET_DETECTOR_ADDRESS, CHAIN_TO_ADDRESSES_MAP, ChainId, CurrencyAmount, ENS_REGISTRAR_ADDRESSES, Ether, Fraction, GOVERNANCE_ALPHA_V0_ADDRESSES, GOVERNANCE_ALPHA_V1_ADDRESSES, GOVERNANCE_BRAVO_ADDRESSES, MERKLE_DISTRIBUTOR_ADDRESS, MIXED_ROUTE_QUOTER_V1_ADDRESSES, MULTICALL_ADDRESSES, MaxUint256, NONFUNGIBLE_POSITION_MANAGER_ADDRESSES, NativeCurrency, NativeCurrencyName, Percent, Price, QUOTER_ADDRESSES, Rounding, SOCKS_CONTROLLER_ADDRESSES, SUPPORTED_CHAINS, SWAP_ROUTER_02_ADDRESSES, TICK_LENS_ADDRESSES, TIMELOCK_ADDRESSES, Token, TradeType, UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS, UNI_ADDRESSES, V2_FACTORY_ADDRESS, V2_FACTORY_ADDRESSES, V2_ROUTER_ADDRESS, V2_ROUTER_ADDRESSES, V3_CORE_FACTORY_ADDRESSES, V3_MIGRATOR_ADDRESSES, WETH9, computePriceImpact, computeZksyncCreate2Address, sortedInsert, sqrt, validateAndParseAddress };
1079
+ //# sourceMappingURL=sdk-core.esm.js.map