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