@huuduynvc/sdk-core 7.5.3

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