@sun-protocol/sun-sdk-core 0.1.0-beta.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.
package/dist/index.cjs ADDED
@@ -0,0 +1,1594 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ ARGENT_WALLET_DETECTOR_ADDRESS: () => ARGENT_WALLET_DETECTOR_ADDRESS,
34
+ AVERAGE_BLOCK_TIMES_SECONDS: () => AVERAGE_BLOCK_TIMES_SECONDS,
35
+ CHAIN_TO_ADDRESSES_MAP: () => CHAIN_TO_ADDRESSES_MAP,
36
+ ChainId: () => ChainId,
37
+ CurrencyAmount: () => CurrencyAmount,
38
+ ENS_REGISTRAR_ADDRESSES: () => ENS_REGISTRAR_ADDRESSES,
39
+ Ether: () => Ether,
40
+ Fraction: () => Fraction,
41
+ GOVERNANCE_ALPHA_V0_ADDRESSES: () => GOVERNANCE_ALPHA_V0_ADDRESSES,
42
+ GOVERNANCE_ALPHA_V1_ADDRESSES: () => GOVERNANCE_ALPHA_V1_ADDRESSES,
43
+ GOVERNANCE_BRAVO_ADDRESSES: () => GOVERNANCE_BRAVO_ADDRESSES,
44
+ MERKLE_DISTRIBUTOR_ADDRESS: () => MERKLE_DISTRIBUTOR_ADDRESS,
45
+ MIXED_ROUTE_QUOTER_V1_ADDRESSES: () => MIXED_ROUTE_QUOTER_V1_ADDRESSES,
46
+ MULTICALL_ADDRESSES: () => MULTICALL_ADDRESSES,
47
+ MaxUint256: () => MaxUint256,
48
+ NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: () => NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,
49
+ NativeCurrency: () => NativeCurrency,
50
+ NativeCurrencyName: () => NativeCurrencyName,
51
+ Percent: () => Percent,
52
+ Price: () => Price,
53
+ QUOTER_ADDRESSES: () => QUOTER_ADDRESSES,
54
+ Rounding: () => Rounding,
55
+ SDKError: () => SDKError,
56
+ SDK_ERROR_CODES: () => SDK_ERROR_CODES,
57
+ SOCKS_CONTROLLER_ADDRESSES: () => SOCKS_CONTROLLER_ADDRESSES,
58
+ SUPPORTED_CHAINS: () => SUPPORTED_CHAINS,
59
+ SWAP_ROUTER_02_ADDRESSES: () => SWAP_ROUTER_02_ADDRESSES,
60
+ TICK_LENS_ADDRESSES: () => TICK_LENS_ADDRESSES,
61
+ TIMELOCK_ADDRESSES: () => TIMELOCK_ADDRESSES,
62
+ TRON_ZERO_ADDRESS: () => TRON_ZERO_ADDRESS,
63
+ Token: () => Token,
64
+ TradeType: () => TradeType,
65
+ UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS: () => UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS,
66
+ UNI_ADDRESSES: () => UNI_ADDRESSES,
67
+ V2_FACTORY_ADDRESS: () => V2_FACTORY_ADDRESS,
68
+ V2_FACTORY_ADDRESSES: () => V2_FACTORY_ADDRESSES,
69
+ V2_ROUTER_ADDRESS: () => V2_ROUTER_ADDRESS,
70
+ V2_ROUTER_ADDRESSES: () => V2_ROUTER_ADDRESSES,
71
+ V3_CORE_FACTORY_ADDRESSES: () => V3_CORE_FACTORY_ADDRESSES,
72
+ V3_MIGRATOR_ADDRESSES: () => V3_MIGRATOR_ADDRESSES,
73
+ WETH9: () => WETH9,
74
+ WTRX: () => WTRX,
75
+ assertTronAddress: () => assertTronAddress,
76
+ assertTronHexAddress: () => assertTronHexAddress,
77
+ computePriceImpact: () => computePriceImpact,
78
+ computeZksyncCreate2Address: () => computeZksyncCreate2Address,
79
+ createApproveAction: () => createApproveAction,
80
+ createContractCallAction: () => createContractCallAction,
81
+ createDeferredContractCallAction: () => createDeferredContractCallAction,
82
+ createHttpRequestAction: () => createHttpRequestAction,
83
+ createTypedDataSignatureAction: () => createTypedDataSignatureAction,
84
+ formatUnits: () => formatUnits,
85
+ getAverageBlockTimeSecs: () => getAverageBlockTimeSecs,
86
+ isTronBase58Address: () => isTronBase58Address,
87
+ isTronHexAddress: () => isTronHexAddress,
88
+ normalizeSDKError: () => normalizeSDKError,
89
+ parseUnits: () => parseUnits,
90
+ sdkInvariant: () => sdkInvariant,
91
+ secondsToBlocks: () => secondsToBlocks,
92
+ sortedInsert: () => sortedInsert,
93
+ sqrt: () => sqrt,
94
+ toTronBase58Address: () => toTronBase58Address,
95
+ toTronHexAddress: () => toTronHexAddress,
96
+ validateAndParseAddress: () => validateAndParseAddress
97
+ });
98
+ module.exports = __toCommonJS(index_exports);
99
+
100
+ // src/chains.ts
101
+ var ChainId = /* @__PURE__ */ ((ChainId2) => {
102
+ ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
103
+ ChainId2[ChainId2["GOERLI"] = 5] = "GOERLI";
104
+ ChainId2[ChainId2["SEPOLIA"] = 11155111] = "SEPOLIA";
105
+ ChainId2[ChainId2["OPTIMISM"] = 10] = "OPTIMISM";
106
+ ChainId2[ChainId2["OPTIMISM_GOERLI"] = 420] = "OPTIMISM_GOERLI";
107
+ ChainId2[ChainId2["OPTIMISM_SEPOLIA"] = 11155420] = "OPTIMISM_SEPOLIA";
108
+ ChainId2[ChainId2["ARBITRUM_ONE"] = 42161] = "ARBITRUM_ONE";
109
+ ChainId2[ChainId2["ARBITRUM_GOERLI"] = 421613] = "ARBITRUM_GOERLI";
110
+ ChainId2[ChainId2["ARBITRUM_SEPOLIA"] = 421614] = "ARBITRUM_SEPOLIA";
111
+ ChainId2[ChainId2["POLYGON"] = 137] = "POLYGON";
112
+ ChainId2[ChainId2["POLYGON_MUMBAI"] = 80001] = "POLYGON_MUMBAI";
113
+ ChainId2[ChainId2["CELO"] = 42220] = "CELO";
114
+ ChainId2[ChainId2["CELO_ALFAJORES"] = 44787] = "CELO_ALFAJORES";
115
+ ChainId2[ChainId2["GNOSIS"] = 100] = "GNOSIS";
116
+ ChainId2[ChainId2["MOONBEAM"] = 1284] = "MOONBEAM";
117
+ ChainId2[ChainId2["BNB"] = 56] = "BNB";
118
+ ChainId2[ChainId2["AVALANCHE"] = 43114] = "AVALANCHE";
119
+ ChainId2[ChainId2["BASE_GOERLI"] = 84531] = "BASE_GOERLI";
120
+ ChainId2[ChainId2["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA";
121
+ ChainId2[ChainId2["BASE"] = 8453] = "BASE";
122
+ ChainId2[ChainId2["ZORA"] = 7777777] = "ZORA";
123
+ ChainId2[ChainId2["ZORA_SEPOLIA"] = 999999999] = "ZORA_SEPOLIA";
124
+ ChainId2[ChainId2["ROOTSTOCK"] = 30] = "ROOTSTOCK";
125
+ ChainId2[ChainId2["BLAST"] = 81457] = "BLAST";
126
+ ChainId2[ChainId2["ZKSYNC"] = 324] = "ZKSYNC";
127
+ ChainId2[ChainId2["WORLDCHAIN"] = 480] = "WORLDCHAIN";
128
+ ChainId2[ChainId2["UNICHAIN_SEPOLIA"] = 1301] = "UNICHAIN_SEPOLIA";
129
+ ChainId2[ChainId2["UNICHAIN"] = 130] = "UNICHAIN";
130
+ ChainId2[ChainId2["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET";
131
+ ChainId2[ChainId2["SONEIUM"] = 1868] = "SONEIUM";
132
+ ChainId2[ChainId2["MONAD"] = 143] = "MONAD";
133
+ ChainId2[ChainId2["XLAYER"] = 196] = "XLAYER";
134
+ ChainId2[ChainId2["LINEA"] = 59144] = "LINEA";
135
+ ChainId2[ChainId2["TEMPO"] = 4217] = "TEMPO";
136
+ ChainId2[ChainId2["MEGAETH"] = 4326] = "MEGAETH";
137
+ ChainId2[ChainId2["ARC"] = 5042] = "ARC";
138
+ ChainId2[ChainId2["ROBINHOOD"] = 4663] = "ROBINHOOD";
139
+ ChainId2[ChainId2["INK"] = 57073] = "INK";
140
+ return ChainId2;
141
+ })(ChainId || {});
142
+ var AVERAGE_BLOCK_TIMES_SECONDS = {
143
+ [1 /* MAINNET */]: 12,
144
+ [10 /* OPTIMISM */]: 2,
145
+ [42161 /* ARBITRUM_ONE */]: 0.25,
146
+ [137 /* POLYGON */]: 1.75,
147
+ [42220 /* CELO */]: 1,
148
+ [56 /* BNB */]: 0.45,
149
+ // post-Maxwell hardfork
150
+ [43114 /* AVALANCHE */]: 1,
151
+ [8453 /* BASE */]: 2,
152
+ [7777777 /* ZORA */]: 2,
153
+ [81457 /* BLAST */]: 2,
154
+ [480 /* WORLDCHAIN */]: 2,
155
+ [130 /* UNICHAIN */]: 1,
156
+ [1868 /* SONEIUM */]: 2,
157
+ [143 /* MONAD */]: 0.4,
158
+ [196 /* XLAYER */]: 1,
159
+ [4217 /* TEMPO */]: 0.5,
160
+ [4326 /* MEGAETH */]: 1,
161
+ [5042 /* ARC */]: 0.48,
162
+ [4663 /* ROBINHOOD */]: 0.1,
163
+ [57073 /* INK */]: 1
164
+ };
165
+ function getAverageBlockTimeSecs(chainId) {
166
+ const value = AVERAGE_BLOCK_TIMES_SECONDS[chainId];
167
+ if (value === void 0) {
168
+ throw new Error(`getAverageBlockTimeSecs: unsupported chainId ${chainId}; register it in chains.ts before use`);
169
+ }
170
+ return value;
171
+ }
172
+ function secondsToBlocks(seconds, chainId) {
173
+ return Math.ceil(seconds / getAverageBlockTimeSecs(chainId));
174
+ }
175
+ var SUPPORTED_CHAINS = [
176
+ 1 /* MAINNET */,
177
+ 10 /* OPTIMISM */,
178
+ 420 /* OPTIMISM_GOERLI */,
179
+ 11155420 /* OPTIMISM_SEPOLIA */,
180
+ 42161 /* ARBITRUM_ONE */,
181
+ 421613 /* ARBITRUM_GOERLI */,
182
+ 421614 /* ARBITRUM_SEPOLIA */,
183
+ 137 /* POLYGON */,
184
+ 80001 /* POLYGON_MUMBAI */,
185
+ 5 /* GOERLI */,
186
+ 11155111 /* SEPOLIA */,
187
+ 44787 /* CELO_ALFAJORES */,
188
+ 42220 /* CELO */,
189
+ 56 /* BNB */,
190
+ 43114 /* AVALANCHE */,
191
+ 8453 /* BASE */,
192
+ 84531 /* BASE_GOERLI */,
193
+ 84532 /* BASE_SEPOLIA */,
194
+ 7777777 /* ZORA */,
195
+ 999999999 /* ZORA_SEPOLIA */,
196
+ 30 /* ROOTSTOCK */,
197
+ 81457 /* BLAST */,
198
+ 324 /* ZKSYNC */,
199
+ 480 /* WORLDCHAIN */,
200
+ 1301 /* UNICHAIN_SEPOLIA */,
201
+ 130 /* UNICHAIN */,
202
+ 10143 /* MONAD_TESTNET */,
203
+ 1868 /* SONEIUM */,
204
+ 143 /* MONAD */,
205
+ 196 /* XLAYER */,
206
+ 59144 /* LINEA */,
207
+ 4217 /* TEMPO */,
208
+ 4326 /* MEGAETH */,
209
+ 5042 /* ARC */,
210
+ 4663 /* ROBINHOOD */,
211
+ 57073 /* INK */
212
+ ];
213
+ var NativeCurrencyName = /* @__PURE__ */ ((NativeCurrencyName2) => {
214
+ NativeCurrencyName2["ETHER"] = "ETH";
215
+ NativeCurrencyName2["MATIC"] = "MATIC";
216
+ NativeCurrencyName2["CELO"] = "CELO";
217
+ NativeCurrencyName2["GNOSIS"] = "XDAI";
218
+ NativeCurrencyName2["MOONBEAM"] = "GLMR";
219
+ NativeCurrencyName2["BNB"] = "BNB";
220
+ NativeCurrencyName2["AVAX"] = "AVAX";
221
+ NativeCurrencyName2["ROOTSTOCK"] = "RBTC";
222
+ return NativeCurrencyName2;
223
+ })(NativeCurrencyName || {});
224
+
225
+ // src/addresses.ts
226
+ var DEFAULT_NETWORKS = [1 /* MAINNET */, 5 /* GOERLI */, 11155111 /* SEPOLIA */];
227
+ function constructSameAddressMap(address, additionalNetworks = []) {
228
+ return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {
229
+ memo[chainId] = address;
230
+ return memo;
231
+ }, {});
232
+ }
233
+ var UNI_ADDRESSES = constructSameAddressMap("0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984", [
234
+ 10 /* OPTIMISM */,
235
+ 42161 /* ARBITRUM_ONE */,
236
+ 137 /* POLYGON */,
237
+ 80001 /* POLYGON_MUMBAI */,
238
+ 11155111 /* SEPOLIA */
239
+ ]);
240
+ var UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = "0x8B799381ac40b838BBA4131ffB26197C432AFe78";
241
+ var V2_FACTORY_ADDRESS = "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f";
242
+ var V2_FACTORY_ADDRESSES = {
243
+ [1 /* MAINNET */]: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
244
+ [5 /* GOERLI */]: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
245
+ [11155111 /* SEPOLIA */]: "0xF62c03E08ada871A0bEb309762E260a7a6a880E6",
246
+ [10 /* OPTIMISM */]: "0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf",
247
+ [42161 /* ARBITRUM_ONE */]: "0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9",
248
+ [43114 /* AVALANCHE */]: "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
249
+ [84532 /* BASE_SEPOLIA */]: "0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e",
250
+ [8453 /* BASE */]: "0x8909dc15e40173ff4699343b6eb8132c65e18ec6",
251
+ [56 /* BNB */]: "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
252
+ [137 /* POLYGON */]: "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
253
+ [42220 /* CELO */]: "0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f",
254
+ [81457 /* BLAST */]: "0x5C346464d33F90bABaf70dB6388507CC889C1070",
255
+ [480 /* WORLDCHAIN */]: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
256
+ [1301 /* UNICHAIN_SEPOLIA */]: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
257
+ [130 /* UNICHAIN */]: "0x1f98400000000000000000000000000000000002",
258
+ [10143 /* MONAD_TESTNET */]: "0x733e88f248b742db6c14c0b1713af5ad7fdd59d0",
259
+ [1868 /* SONEIUM */]: "0x97febbc2adbd5644ba22736e962564b23f5828ce",
260
+ [143 /* MONAD */]: "0x182a927119d56008d921126764bf884221b10f59",
261
+ [196 /* XLAYER */]: "0xdf38f24fe153761634be942f9d859f3dba857e95",
262
+ [59144 /* LINEA */]: "0x114A43DF6C5f54EBB8A9d70Cd1951D3dD68004c7",
263
+ [4217 /* TEMPO */]: "0xf9ec577a4e45b5278bb7cf60fcbc20c3acaef68f",
264
+ [4326 /* MEGAETH */]: "0xbf56488c857a881ae7e3bed27cf99c10a7ab7e50",
265
+ [5042 /* ARC */]: "0x89e5db8b5aa49aa85ac63f691524311aeb649eba",
266
+ [4663 /* ROBINHOOD */]: "0x8bceaa40b9acdfaedf85adf4ff01f5ad6517937f",
267
+ [57073 /* INK */]: "0xfe57a6ba1951f69ae2ed4abe23e0f095df500c04"
268
+ };
269
+ var V2_ROUTER_ADDRESS = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D";
270
+ var V2_ROUTER_ADDRESSES = {
271
+ [1 /* MAINNET */]: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
272
+ [5 /* GOERLI */]: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
273
+ [11155111 /* SEPOLIA */]: "0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3",
274
+ [42161 /* ARBITRUM_ONE */]: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
275
+ [10 /* OPTIMISM */]: "0x4a7b5da61326a6379179b40d00f57e5bbdc962c2",
276
+ [84532 /* BASE_SEPOLIA */]: "0x1689E7B1F10000AE47eBfE339a4f69dECd19F602",
277
+ [8453 /* BASE */]: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
278
+ [43114 /* AVALANCHE */]: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
279
+ [56 /* BNB */]: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
280
+ [137 /* POLYGON */]: "0xedf6066a2b290c185783862c7f4776a2c8077ad1",
281
+ [81457 /* BLAST */]: "0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035",
282
+ [480 /* WORLDCHAIN */]: "0x541aB7c31A119441eF3575F6973277DE0eF460bd",
283
+ [1301 /* UNICHAIN_SEPOLIA */]: "0x920b806E40A00E02E7D2b94fFc89860fDaEd3640",
284
+ [130 /* UNICHAIN */]: "0x284f11109359a7e1306c3e447ef14d38400063ff",
285
+ [10143 /* MONAD_TESTNET */]: "0xfb8e1c3b833f9e67a71c859a132cf783b645e436",
286
+ [1868 /* SONEIUM */]: "0x273f68c234fa55b550b40e563c4a488e0d334320",
287
+ [143 /* MONAD */]: "0x4b2ab38dbf28d31d467aa8993f6c2585981d6804",
288
+ [196 /* XLAYER */]: "0x182a927119d56008d921126764bf884221b10f59",
289
+ [59144 /* LINEA */]: "0x8702463e73f74d0b6765abceb314ef07acb92650",
290
+ [4217 /* TEMPO */]: "0x0fbac3c46f6f83b44c7fb4ea986d7309c701d73e",
291
+ [4326 /* MEGAETH */]: "0xb73055db2b3a3eae87a331dd88e4a80b43602690",
292
+ [5042 /* ARC */]: "0x1f7d7550b1b028f7571e69a784071f0205fd2efa",
293
+ [4663 /* ROBINHOOD */]: "0x89e5db8b5aa49aa85ac63f691524311aeb649eba"
294
+ };
295
+ var DEFAULT_ADDRESSES = {
296
+ v3CoreFactoryAddress: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
297
+ multicallAddress: "0x1F98415757620B543A52E61c46B32eB19261F984",
298
+ quoterAddress: "0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",
299
+ v3MigratorAddress: "0xA5644E29708357803b5A882D272c41cC0dF92B34",
300
+ nonfungiblePositionManagerAddress: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88"
301
+ };
302
+ var MAINNET_ADDRESSES = {
303
+ ...DEFAULT_ADDRESSES,
304
+ mixedRouteQuoterV1Address: "0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E",
305
+ v4PoolManagerAddress: "0x000000000004444c5dc75cB358380D2e3dE08A90",
306
+ v4PositionManagerAddress: "0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e",
307
+ v4StateView: "0x7ffe42c4a5deea5b0fec41c94c136cf115597227",
308
+ v4QuoterAddress: "0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203",
309
+ permissionedV4PositionManagerAddress: "0x89628C9B4CE81951a9BC1F36F0688Fad6A6ee248"
310
+ };
311
+ var GOERLI_ADDRESSES = {
312
+ ...DEFAULT_ADDRESSES,
313
+ mixedRouteQuoterV1Address: "0xBa60b6e6fF25488308789E6e0A65D838be34194e"
314
+ };
315
+ var OPTIMISM_ADDRESSES = {
316
+ ...DEFAULT_ADDRESSES,
317
+ v4PoolManagerAddress: "0x9a13f98cb987694c9f086b1f5eb990eea8264ec3",
318
+ v4PositionManagerAddress: "0x3c3ea4b57a46241e54610e5f022e5c45859a1017",
319
+ v4StateView: "0xc18a3169788f4f75a170290584eca6395c75ecdb",
320
+ v4QuoterAddress: "0x1f3131a13296fb91c90870043742c3cdbff1a8d7"
321
+ };
322
+ var ARBITRUM_ONE_ADDRESSES = {
323
+ ...DEFAULT_ADDRESSES,
324
+ multicallAddress: "0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",
325
+ tickLensAddress: "0xbfd8137f7d1516D3ea5cA83523914859ec47F573",
326
+ v4PoolManagerAddress: "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
327
+ v4PositionManagerAddress: "0xd88f38f930b7952f2db2432cb002e7abbf3dd869",
328
+ v4StateView: "0x76fd297e2d437cd7f76d50f01afe6160f86e9990",
329
+ v4QuoterAddress: "0x3972c00f7ed4885e145823eb7c655375d275a1c5"
330
+ };
331
+ var POLYGON_ADDRESSES = {
332
+ ...DEFAULT_ADDRESSES,
333
+ v4PoolManagerAddress: "0x67366782805870060151383f4bbff9dab53e5cd6",
334
+ v4PositionManagerAddress: "0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9",
335
+ v4StateView: "0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a",
336
+ v4QuoterAddress: "0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9"
337
+ };
338
+ var CELO_ADDRESSES = {
339
+ v3CoreFactoryAddress: "0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",
340
+ multicallAddress: "0x633987602DE5C4F337e3DbF265303A1080324204",
341
+ quoterAddress: "0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",
342
+ v3MigratorAddress: "0x3cFd4d48EDfDCC53D3f173F596f621064614C582",
343
+ nonfungiblePositionManagerAddress: "0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",
344
+ tickLensAddress: "0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D",
345
+ v4PoolManagerAddress: "0x288dc841A52FCA2707c6947B3A777c5E56cd87BC",
346
+ v4PositionManagerAddress: "0xf7965f3981e4d5bc383bfbcb61501763e9068ca9",
347
+ v4StateView: "0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb",
348
+ v4QuoterAddress: "0x28566da1093609182dff2cb2a91cfd72e61d66cd"
349
+ };
350
+ var BNB_ADDRESSES = {
351
+ v3CoreFactoryAddress: "0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",
352
+ multicallAddress: "0x963Df249eD09c358A4819E39d9Cd5736c3087184",
353
+ quoterAddress: "0x78D78E420Da98ad378D7799bE8f4AF69033EB077",
354
+ v3MigratorAddress: "0x32681814957e0C13117ddc0c2aba232b5c9e760f",
355
+ nonfungiblePositionManagerAddress: "0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",
356
+ tickLensAddress: "0xD9270014D396281579760619CCf4c3af0501A47C",
357
+ swapRouter02Address: "0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",
358
+ v4PoolManagerAddress: "0x28e2ea090877bf75740558f6bfb36a5ffee9e9df",
359
+ v4PositionManagerAddress: "0x7a4a5c919ae2541aed11041a1aeee68f1287f95b",
360
+ v4StateView: "0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4",
361
+ v4QuoterAddress: "0x9f75dd27d6664c475b90e105573e550ff69437b0"
362
+ };
363
+ var OPTIMISM_GOERLI_ADDRESSES = {
364
+ v3CoreFactoryAddress: "0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",
365
+ multicallAddress: "0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",
366
+ quoterAddress: "0x9569CbA925c8ca2248772A9A4976A516743A246F",
367
+ v3MigratorAddress: "0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",
368
+ nonfungiblePositionManagerAddress: "0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",
369
+ tickLensAddress: "0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"
370
+ };
371
+ var OPTIMISM_SEPOLIA_ADDRESSES = {
372
+ v3CoreFactoryAddress: "0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF",
373
+ multicallAddress: "0x80e4e06841bb76AA9735E0448cB8d003C0EF009a",
374
+ quoterAddress: "0x0FBEa6cf957d95ee9313490050F6A0DA68039404",
375
+ v3MigratorAddress: "0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07",
376
+ nonfungiblePositionManagerAddress: "0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d",
377
+ tickLensAddress: "0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5",
378
+ swapRouter02Address: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4"
379
+ };
380
+ var ARBITRUM_GOERLI_ADDRESSES = {
381
+ v3CoreFactoryAddress: "0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",
382
+ multicallAddress: "0x8260CB40247290317a4c062F3542622367F206Ee",
383
+ quoterAddress: "0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",
384
+ v3MigratorAddress: "0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",
385
+ nonfungiblePositionManagerAddress: "0x622e4726a167799826d1E1D150b076A7725f5D81",
386
+ tickLensAddress: "0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"
387
+ };
388
+ var ARBITRUM_SEPOLIA_ADDRESSES = {
389
+ v3CoreFactoryAddress: "0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e",
390
+ multicallAddress: "0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A",
391
+ quoterAddress: "0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B",
392
+ v3MigratorAddress: "0x398f43ef2c67B941147157DA1c5a868E906E043D",
393
+ nonfungiblePositionManagerAddress: "0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65",
394
+ tickLensAddress: "0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9",
395
+ swapRouter02Address: "0x101F443B4d1b059569D643917553c771E1b9663E",
396
+ v4PoolManagerAddress: "0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317",
397
+ v4PositionManagerAddress: "0xAc631556d3d4019C95769033B5E719dD77124BAc",
398
+ v4StateView: "0x9d467fa9062b6e9b1a46e26007ad82db116c67cb",
399
+ v4QuoterAddress: "0x7de51022d70a725b508085468052e25e22b5c4c9"
400
+ };
401
+ var SEPOLIA_ADDRESSES = {
402
+ v3CoreFactoryAddress: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c",
403
+ multicallAddress: "0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",
404
+ quoterAddress: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",
405
+ v3MigratorAddress: "0x729004182cF005CEC8Bd85df140094b6aCbe8b15",
406
+ nonfungiblePositionManagerAddress: "0x1238536071E1c677A632429e3655c799b22cDA52",
407
+ tickLensAddress: "0xd7f33bcdb21b359c8ee6f0251d30e94832baad07",
408
+ swapRouter02Address: "0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E",
409
+ // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed
410
+ mixedRouteQuoterV2Address: "0x4745f77b56a0e2294426e3936dc4fab68d9543cd",
411
+ // TODO: update all below once v4 on sepolia redeployed
412
+ v4PoolManagerAddress: "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543",
413
+ v4PositionManagerAddress: "0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4",
414
+ v4StateView: "0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c",
415
+ v4QuoterAddress: "0x61b3f2011a92d183c7dbadbda940a7555ccf9227",
416
+ permissionedV4PositionManagerAddress: "0x68fC145BB20b388965bED184Df5ef912215bb3C7"
417
+ };
418
+ var AVALANCHE_ADDRESSES = {
419
+ v3CoreFactoryAddress: "0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",
420
+ multicallAddress: "0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",
421
+ quoterAddress: "0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",
422
+ v3MigratorAddress: "0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",
423
+ nonfungiblePositionManagerAddress: "0x655C406EBFa14EE2006250925e54ec43AD184f8B",
424
+ tickLensAddress: "0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",
425
+ swapRouter02Address: "0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",
426
+ v4PoolManagerAddress: "0x06380c0e0912312b5150364b9dc4542ba0dbbc85",
427
+ v4PositionManagerAddress: "0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd",
428
+ v4StateView: "0xc3c9e198c735a4b97e3e683f391ccbdd60b69286",
429
+ v4QuoterAddress: "0xbe40675bb704506a3c2ccfb762dcfd1e979845c2"
430
+ };
431
+ var BASE_ADDRESSES = {
432
+ v3CoreFactoryAddress: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
433
+ multicallAddress: "0x091e99cb1C49331a94dD62755D168E941AbD0693",
434
+ quoterAddress: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
435
+ v3MigratorAddress: "0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",
436
+ nonfungiblePositionManagerAddress: "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
437
+ tickLensAddress: "0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",
438
+ swapRouter02Address: "0x2626664c2603336E57B271c5C0b26F421741e481",
439
+ mixedRouteQuoterV1Address: "0xe544efae946f0008ae9a8d64493efa7886b73776",
440
+ v4PoolManagerAddress: "0x498581ff718922c3f8e6a244956af099b2652b2b",
441
+ v4PositionManagerAddress: "0x7c5f5a4bbd8fd63184577525326123b519429bdc",
442
+ v4StateView: "0xa3c0c9b65bad0b08107aa264b0f3db444b867a71",
443
+ v4QuoterAddress: "0x0d5e0f971ed27fbff6c2837bf31316121532048d"
444
+ };
445
+ var BASE_GOERLI_ADDRESSES = {
446
+ v3CoreFactoryAddress: "0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",
447
+ multicallAddress: "0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",
448
+ quoterAddress: "0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",
449
+ v3MigratorAddress: "0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",
450
+ nonfungiblePositionManagerAddress: "0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",
451
+ tickLensAddress: "0x1acB873Ee909D0c98adB18e4474943249F931b92",
452
+ swapRouter02Address: "0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"
453
+ };
454
+ var BASE_SEPOLIA_ADDRESSES = {
455
+ v3CoreFactoryAddress: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",
456
+ multicallAddress: "0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1",
457
+ quoterAddress: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27",
458
+ v3MigratorAddress: "0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10",
459
+ nonfungiblePositionManagerAddress: "0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2",
460
+ tickLensAddress: "0xedf6066a2b290C185783862C7F4776A2C8077AD1",
461
+ swapRouter02Address: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4",
462
+ // v4
463
+ v4PoolManagerAddress: "0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408",
464
+ v4PositionManagerAddress: "0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80",
465
+ v4StateView: "0x571291b572ed32ce6751a2cb2486ebee8defb9b4",
466
+ v4QuoterAddress: "0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"
467
+ };
468
+ var ZORA_ADDRESSES = {
469
+ v3CoreFactoryAddress: "0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb",
470
+ multicallAddress: "0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15",
471
+ quoterAddress: "0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df",
472
+ v3MigratorAddress: "0x048352d8dCF13686982C799da63fA6426a9D0b60",
473
+ nonfungiblePositionManagerAddress: "0xbC91e8DfA3fF18De43853372A3d7dfe585137D78",
474
+ tickLensAddress: "0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044",
475
+ swapRouter02Address: "0x7De04c96BE5159c3b5CeffC82aa176dc81281557",
476
+ v4PoolManagerAddress: "0x0575338e4c17006ae181b47900a84404247ca30f",
477
+ v4PositionManagerAddress: "0xf66c7b99e2040f0d9b326b3b7c152e9663543d63",
478
+ v4StateView: "0x385785af07d63b50d0a0ea57c4ff89d06adf7328",
479
+ v4QuoterAddress: "0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6"
480
+ };
481
+ var ZORA_SEPOLIA_ADDRESSES = {
482
+ v3CoreFactoryAddress: "0x4324A677D74764f46f33ED447964252441aA8Db6",
483
+ multicallAddress: "0xA1E7e3A69671C4494EC59Dbd442de930a93F911A",
484
+ quoterAddress: "0xC195976fEF0985886E37036E2DF62bF371E12Df0",
485
+ v3MigratorAddress: "0x65ef259b31bf1d977c37e9434658694267674897",
486
+ nonfungiblePositionManagerAddress: "0xB8458EaAe43292e3c1F7994EFd016bd653d23c20",
487
+ tickLensAddress: "0x23C0F71877a1Fc4e20A78018f9831365c85f3064"
488
+ };
489
+ var ROOTSTOCK_ADDRESSES = {
490
+ v3CoreFactoryAddress: "0xaF37EC98A00FD63689CF3060BF3B6784E00caD82",
491
+ multicallAddress: "0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386",
492
+ quoterAddress: "0xb51727c996C68E60F598A923a5006853cd2fEB31",
493
+ v3MigratorAddress: "0x16678977CA4ec3DAD5efc7b15780295FE5f56162",
494
+ nonfungiblePositionManagerAddress: "0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1",
495
+ tickLensAddress: "0x55B9dF5bF68ADe972191a91980459f48ecA16afC",
496
+ swapRouter02Address: "0x0B14ff67f0014046b4b99057Aec4509640b3947A"
497
+ };
498
+ var BLAST_ADDRESSES = {
499
+ v3CoreFactoryAddress: "0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd",
500
+ multicallAddress: "0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705",
501
+ quoterAddress: "0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77",
502
+ v3MigratorAddress: "0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0",
503
+ nonfungiblePositionManagerAddress: "0xB218e4f7cF0533d4696fDfC419A0023D33345F28",
504
+ tickLensAddress: "0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274",
505
+ swapRouter02Address: "0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66",
506
+ v4PoolManagerAddress: "0x1631559198a9e474033433b2958dabc135ab6446",
507
+ v4PositionManagerAddress: "0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad",
508
+ v4StateView: "0x12a88ae16f46dce4e8b15368008ab3380885df30",
509
+ v4QuoterAddress: "0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf"
510
+ };
511
+ var ZKSYNC_ADDRESSES = {
512
+ v3CoreFactoryAddress: "0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422",
513
+ multicallAddress: "0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C",
514
+ quoterAddress: "0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28",
515
+ v3MigratorAddress: "0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E",
516
+ nonfungiblePositionManagerAddress: "0x0616e5762c1E7Dc3723c50663dF10a162D690a86",
517
+ tickLensAddress: "0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89",
518
+ swapRouter02Address: "0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3"
519
+ };
520
+ var WORLDCHAIN_ADDRESSES = {
521
+ v3CoreFactoryAddress: "0x7a5028BDa40e7B173C278C5342087826455ea25a",
522
+ multicallAddress: "0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9",
523
+ quoterAddress: "0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c",
524
+ v3MigratorAddress: "0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3",
525
+ nonfungiblePositionManagerAddress: "0xec12a9F9a09f50550686363766Cc153D03c27b5e",
526
+ tickLensAddress: "0xE61df0CaC9d85876aCE5E3037005D80943570623",
527
+ swapRouter02Address: "0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6",
528
+ v4PoolManagerAddress: "0xb1860d529182ac3bc1f51fa2abd56662b7d13f33",
529
+ v4PositionManagerAddress: "0xc585e0f504613b5fbf874f21af14c65260fb41fa",
530
+ v4StateView: "0x51d394718bc09297262e368c1a481217fdeb71eb",
531
+ v4QuoterAddress: "0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0"
532
+ };
533
+ var UNICHAIN_SEPOLIA_ADDRESSES = {
534
+ v3CoreFactoryAddress: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
535
+ multicallAddress: "0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1",
536
+ quoterAddress: "0x6Dd37329A1A225a6Fca658265D460423DCafBF89",
537
+ v3MigratorAddress: "0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2",
538
+ nonfungiblePositionManagerAddress: "0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075",
539
+ tickLensAddress: "0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0",
540
+ swapRouter02Address: "0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166",
541
+ v4PoolManagerAddress: "0x00b036b58a818b1bc34d502d3fe730db729e62ac",
542
+ v4PositionManagerAddress: "0xf969aee60879c54baaed9f3ed26147db216fd664",
543
+ v4StateView: "0xc199f1072a74d4e905aba1a84d9a45e2546b6222",
544
+ v4QuoterAddress: "0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472"
545
+ };
546
+ var UNICHAIN_ADDRESSES = {
547
+ v3CoreFactoryAddress: "0x1f98400000000000000000000000000000000003",
548
+ multicallAddress: "0xb7610f9b733e7d45184be3a1bc966960ccc54f0b",
549
+ quoterAddress: "0x565ac8c7863d9bb16d07e809ff49fe5cd467634c",
550
+ v3MigratorAddress: "0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc",
551
+ nonfungiblePositionManagerAddress: "0x943e6e07a7e8e791dafc44083e54041d743c46e9",
552
+ tickLensAddress: "0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443",
553
+ swapRouter02Address: "0x73855d06de49d0fe4a9c42636ba96c62da12ff9c",
554
+ v4PoolManagerAddress: "0x1f98400000000000000000000000000000000004",
555
+ v4PositionManagerAddress: "0x4529a01c7a0410167c5740c487a8de60232617bf",
556
+ v4StateView: "0x86e8631a016f9068c3f085faf484ee3f5fdee8f2",
557
+ v4QuoterAddress: "0x333e3c607b141b18ff6de9f258db6e77fe7491e0"
558
+ };
559
+ var MONAD_TESTNET_ADDRESSES = {
560
+ v3CoreFactoryAddress: "0x961235a9020b05c44df1026d956d1f4d78014276",
561
+ multicallAddress: "0xa707ceb989cc3728551ed0e6e44b718dd114cf44",
562
+ quoterAddress: "0x1ba215c17565de7b0cb7ecab971bcf540c24a862",
563
+ v3MigratorAddress: "0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661",
564
+ nonfungiblePositionManagerAddress: "0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7",
565
+ tickLensAddress: "0x337478eb6058455ecb3696184b30dd6a29e3a893",
566
+ swapRouter02Address: "0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7"
567
+ };
568
+ var MONAD_ADDRESSES = {
569
+ v3CoreFactoryAddress: "0x204faca1764b154221e35c0d20abb3c525710498",
570
+ multicallAddress: "0xd1b797d92d87b688193a2b976efc8d577d204343",
571
+ quoterAddress: "0x2d01411773c8c24805306e89a41f7855c3c4fe65",
572
+ v3MigratorAddress: "0x7078c4537c04c2b2e52ddba06074dbdacf23ca15",
573
+ nonfungiblePositionManagerAddress: "0x7197e214c0b767cfb76fb734ab638e2c192f4e53",
574
+ tickLensAddress: "0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f",
575
+ swapRouter02Address: "0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900",
576
+ // v4
577
+ v4PoolManagerAddress: "0x188d586ddcf52439676ca21a244753fa19f9ea8e",
578
+ v4PositionManagerAddress: "0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016",
579
+ v4StateView: "0x77395f3b2e73ae90843717371294fa97cc419d64",
580
+ v4QuoterAddress: "0xa222dd357a9076d1091ed6aa2e16c9742dd26891"
581
+ };
582
+ var SONEIUM_ADDRESSES = {
583
+ v3CoreFactoryAddress: "0x42ae7ec7ff020412639d443e245d936429fbe717",
584
+ multicallAddress: "0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2",
585
+ quoterAddress: "0x3e6c707d0125226ff60f291b6bd1404634f00aba",
586
+ v3MigratorAddress: "0xa107580f73bd797bd8b87ff24e98346d99f93ddb",
587
+ nonfungiblePositionManagerAddress: "0x56c1205b0244332011c1e866f4ea5384eb6bfa2c",
588
+ tickLensAddress: "0xcd08eefb928c86499e6235ac155906bb7c4dc41a",
589
+ swapRouter02Address: "0x7e40db01736f88464e5f4e42394f3d5bbb6705b9",
590
+ v4PoolManagerAddress: "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
591
+ v4PositionManagerAddress: "0x1b35d13a2e2528f192637f14b05f0dc0e7deb566",
592
+ v4StateView: "0x76fd297e2d437cd7f76d50f01afe6160f86e9990",
593
+ v4QuoterAddress: "0x3972c00f7ed4885e145823eb7c655375d275a1c5"
594
+ };
595
+ var XLAYER_ADDRESSES = {
596
+ v3CoreFactoryAddress: "0x4b2ab38dbf28d31d467aa8993f6c2585981d6804",
597
+ multicallAddress: "0xe2023f3fa515cf070e07fd9d51c1d236e07843f4",
598
+ quoterAddress: "0x976183ac3d09840d243a88c0268badb3b3e3259f",
599
+ v3MigratorAddress: "0x7197e214c0b767cfb76fb734ab638e2c192f4e53",
600
+ nonfungiblePositionManagerAddress: "0x315e413a11ab0df498ef83873012430ca36638ae",
601
+ tickLensAddress: "0x661e93cca42afacb172121ef892830ca3b70f08d",
602
+ swapRouter02Address: "0x4f0c28f5926afda16bf2506d5d9e57ea190f9bca",
603
+ mixedRouteQuoterV2Address: "0x2d01411773c8c24805306e89a41f7855c3c4fe65",
604
+ v4PoolManagerAddress: "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
605
+ v4PositionManagerAddress: "0xcF1EAFC6928dC385A342E7C6491d371d2871458b",
606
+ v4StateView: "0x76fd297e2d437cd7f76d50f01afe6160f86e9990",
607
+ v4QuoterAddress: "0x8928074ca1b241d8ec02815881c1af11e8bc5219"
608
+ };
609
+ var LINEA_ADDRESSES = {
610
+ v3CoreFactoryAddress: "0x31FAfd4889FA1269F7a13A66eE0fB458f27D72A9",
611
+ multicallAddress: "0x93e253D101519578A8DF0BCe2A43D8292BFb3A1F",
612
+ quoterAddress: "0x58ead433ea99708604c4dd7c9b7e80c70976e202",
613
+ v3MigratorAddress: "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
614
+ nonfungiblePositionManagerAddress: "0x4615C383F85D0a2BbED973d83ccecf5CB7121463",
615
+ tickLensAddress: "0x3334d83e224aF5ef9C2E7DDA7c7C98Efd9621fA9",
616
+ swapRouter02Address: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
617
+ mixedRouteQuoterV2Address: "0xe2023f3fa515cf070e07fd9d51c1d236e07843f4",
618
+ v4PoolManagerAddress: "0x248083fb965359d82b06c1f5322480dcfc1ad857",
619
+ v4PositionManagerAddress: "0xddcad5775b2816a87495f207731b3571d7ee3c76",
620
+ v4StateView: "0xe861de206e460a8b936b05ad3816520b58ccdf9b",
621
+ v4QuoterAddress: "0x2c125569c0bee20a66e33e5491c552b37ebd9934"
622
+ };
623
+ var TEMPO_ADDRESSES = {
624
+ v3CoreFactoryAddress: "0x24a3d4757e330890a8b8978028c9e58e04611fd6",
625
+ multicallAddress: "0x64eb6294fd6072b2c20d31a54e39d5d3bf69d982",
626
+ quoterAddress: "0x53ab5d7a69db158f621b43ee70423da1e1403c2a",
627
+ v3MigratorAddress: "0x2352328bd3313549d6d908646c82c2b7136901a9",
628
+ nonfungiblePositionManagerAddress: "0xb71c33f096ceabdc0229110e0d76a6382d01c633",
629
+ tickLensAddress: "0x95cb27f323a03b03528096a527ee75704db28ef5",
630
+ swapRouter02Address: "0x7e9d53081e961201837336bcd81f52ae92691a8f",
631
+ mixedRouteQuoterV2Address: "0x741abcaeb95da1b0766c8db7819bb6c4fed27e3d",
632
+ v4PoolManagerAddress: "0x33620f62c5b9b2086dd6b62f4a297a9f30347029",
633
+ v4PositionManagerAddress: "0x3fc79444f8eacc1894775493ff3fa41f1e35ce11",
634
+ v4StateView: "0x21b954fba3f5ddebe77ef2d47a3100c066908b2a",
635
+ v4QuoterAddress: "0x20e6487c371a2086f841ef453f85378223df4f4e"
636
+ };
637
+ var MEGAETH_ADDRESSES = {
638
+ v3CoreFactoryAddress: "0x3a5f0cd7d62452b7f899b2a5758bfa57be0de478",
639
+ multicallAddress: "0x61f3272a3619d9f20788c6822fed2e5471bfc477",
640
+ quoterAddress: "0x5affda77bc34d945f9632bd080ebfcf24133b90e",
641
+ v3MigratorAddress: "0xed30f6c25fe915dc710f168fa3ab66199ee84454",
642
+ nonfungiblePositionManagerAddress: "0xcdc86e98184e96436f733a8bf31bd4f0214e6d7d",
643
+ tickLensAddress: "0xe7a2d824722addcb21e7a203ae7b372bf3a29ec5",
644
+ swapRouter02Address: "0x48020de9208bafc183f5cad5118ffbe8f0f913f5",
645
+ mixedRouteQuoterV2Address: "0x1768d0b0f8ee6638986aab8f775ceb87c45f8730",
646
+ v4PoolManagerAddress: "0xacb7e78fa05d562e0a5d3089ec896d57d057d38e",
647
+ v4PositionManagerAddress: "0x9ae0921e981aaa7308f176f8d4f9129b9247c89d",
648
+ v4StateView: "0x726f84e1dfb8d375a365e0808282f40d52d3e4e8",
649
+ v4QuoterAddress: "0x94bdc671f0c35f44a1daa53143fd1f868d1623b9"
650
+ };
651
+ var ARC_ADDRESSES = {
652
+ v3CoreFactoryAddress: "0xf0db7b58379503491d857db50ac9ece64c653918",
653
+ multicallAddress: "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",
654
+ quoterAddress: "0x7dfd4f31be6814d2906bde155c3e1b146eac1468",
655
+ nonfungiblePositionManagerAddress: "0x39654a85a4c05127f5fd6ed22caec077a0fb1377",
656
+ tickLensAddress: "0x9eb8600665b55d10c1eb2316ca5127a9ca6e2e76",
657
+ swapRouter02Address: "0x53bf6b0684ec7ef91e1387da3d1a1769bc5a6f77",
658
+ v4PoolManagerAddress: "0x8366a39cc670b4001a1121b8f6a443a643e40951",
659
+ v4PositionManagerAddress: "0x6049c9a0e26405c0985f9e3685c87d0ae917f82b",
660
+ v4StateView: "0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",
661
+ v4QuoterAddress: "0x8dc178efb8111bb0973dd9d722ebeff267c98f94"
662
+ };
663
+ var ROBINHOOD_ADDRESSES = {
664
+ v3CoreFactoryAddress: "0x1f7d7550b1b028f7571e69a784071f0205fd2efa",
665
+ multicallAddress: "0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3",
666
+ quoterAddress: "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",
667
+ nonfungiblePositionManagerAddress: "0x73991a25c818bf1f1128deaab1492d45638de0d3",
668
+ tickLensAddress: "0x7dfd4f31be6814d2906bde155c3e1b146eac1468",
669
+ swapRouter02Address: "0xcaf681a66d020601342297493863e78c959e5cb2",
670
+ v4PoolManagerAddress: "0x8366a39cc670b4001a1121b8f6a443a643e40951",
671
+ v4PositionManagerAddress: "0x58daec3116aae6d93017baaea7749052e8a04fa7",
672
+ v4StateView: "0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",
673
+ v4QuoterAddress: "0x8dc178efb8111bb0973dd9d722ebeff267c98f94"
674
+ };
675
+ var INK_ADDRESSES = {
676
+ v3CoreFactoryAddress: "0x640887a9ba3a9c53ed27d0f7e8246a4f933f3424",
677
+ multicallAddress: "0xa0fcec583aee6176527c07b198e5561722332014",
678
+ quoterAddress: "0x96b572d2d880cf2fa2563651bd23ade6f5516652",
679
+ nonfungiblePositionManagerAddress: "0xc0836e5b058bbe22ae2266e1ac488a1a0fd8dce8",
680
+ tickLensAddress: "0x3e6dba802d62aba2361dd632fbc9f547aa6789ae",
681
+ swapRouter02Address: "0x177778f19e89dd1012bdbe603f144088a95c4b53",
682
+ mixedRouteQuoterV2Address: "0x1f7d7550b1b028f7571e69a784071f0205fd2efa",
683
+ v4PoolManagerAddress: "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
684
+ v4PositionManagerAddress: "0x1b35d13a2e2528f192637f14b05f0dc0e7deb566",
685
+ v4StateView: "0x76fd297e2d437cd7f76d50f01afe6160f86e9990",
686
+ v4QuoterAddress: "0x3972c00f7ed4885e145823eb7c655375d275a1c5"
687
+ };
688
+ var CHAIN_TO_ADDRESSES_MAP = {
689
+ [1 /* MAINNET */]: MAINNET_ADDRESSES,
690
+ [10 /* OPTIMISM */]: OPTIMISM_ADDRESSES,
691
+ [42161 /* ARBITRUM_ONE */]: ARBITRUM_ONE_ADDRESSES,
692
+ [137 /* POLYGON */]: POLYGON_ADDRESSES,
693
+ [80001 /* POLYGON_MUMBAI */]: POLYGON_ADDRESSES,
694
+ [5 /* GOERLI */]: GOERLI_ADDRESSES,
695
+ [42220 /* CELO */]: CELO_ADDRESSES,
696
+ [44787 /* CELO_ALFAJORES */]: CELO_ADDRESSES,
697
+ [56 /* BNB */]: BNB_ADDRESSES,
698
+ [420 /* OPTIMISM_GOERLI */]: OPTIMISM_GOERLI_ADDRESSES,
699
+ [11155420 /* OPTIMISM_SEPOLIA */]: OPTIMISM_SEPOLIA_ADDRESSES,
700
+ [421613 /* ARBITRUM_GOERLI */]: ARBITRUM_GOERLI_ADDRESSES,
701
+ [421614 /* ARBITRUM_SEPOLIA */]: ARBITRUM_SEPOLIA_ADDRESSES,
702
+ [11155111 /* SEPOLIA */]: SEPOLIA_ADDRESSES,
703
+ [43114 /* AVALANCHE */]: AVALANCHE_ADDRESSES,
704
+ [8453 /* BASE */]: BASE_ADDRESSES,
705
+ [84531 /* BASE_GOERLI */]: BASE_GOERLI_ADDRESSES,
706
+ [84532 /* BASE_SEPOLIA */]: BASE_SEPOLIA_ADDRESSES,
707
+ [7777777 /* ZORA */]: ZORA_ADDRESSES,
708
+ [999999999 /* ZORA_SEPOLIA */]: ZORA_SEPOLIA_ADDRESSES,
709
+ [30 /* ROOTSTOCK */]: ROOTSTOCK_ADDRESSES,
710
+ [81457 /* BLAST */]: BLAST_ADDRESSES,
711
+ [324 /* ZKSYNC */]: ZKSYNC_ADDRESSES,
712
+ [480 /* WORLDCHAIN */]: WORLDCHAIN_ADDRESSES,
713
+ [1301 /* UNICHAIN_SEPOLIA */]: UNICHAIN_SEPOLIA_ADDRESSES,
714
+ [130 /* UNICHAIN */]: UNICHAIN_ADDRESSES,
715
+ [10143 /* MONAD_TESTNET */]: MONAD_TESTNET_ADDRESSES,
716
+ [1868 /* SONEIUM */]: SONEIUM_ADDRESSES,
717
+ [143 /* MONAD */]: MONAD_ADDRESSES,
718
+ [196 /* XLAYER */]: XLAYER_ADDRESSES,
719
+ [59144 /* LINEA */]: LINEA_ADDRESSES,
720
+ [4217 /* TEMPO */]: TEMPO_ADDRESSES,
721
+ [4326 /* MEGAETH */]: MEGAETH_ADDRESSES,
722
+ [5042 /* ARC */]: ARC_ADDRESSES,
723
+ [4663 /* ROBINHOOD */]: ROBINHOOD_ADDRESSES,
724
+ [57073 /* INK */]: INK_ADDRESSES
725
+ };
726
+ var V3_CORE_FACTORY_ADDRESSES = {
727
+ ...SUPPORTED_CHAINS.reduce((memo, chainId) => {
728
+ memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress;
729
+ return memo;
730
+ }, {})
731
+ };
732
+ var V3_MIGRATOR_ADDRESSES = {
733
+ ...SUPPORTED_CHAINS.reduce((memo, chainId) => {
734
+ const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress;
735
+ if (v3MigratorAddress) {
736
+ memo[chainId] = v3MigratorAddress;
737
+ }
738
+ return memo;
739
+ }, {})
740
+ };
741
+ var MULTICALL_ADDRESSES = {
742
+ ...SUPPORTED_CHAINS.reduce((memo, chainId) => {
743
+ memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress;
744
+ return memo;
745
+ }, {})
746
+ };
747
+ var GOVERNANCE_ALPHA_V0_ADDRESSES = constructSameAddressMap(
748
+ "0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F"
749
+ );
750
+ var GOVERNANCE_ALPHA_V1_ADDRESSES = {
751
+ [1 /* MAINNET */]: "0xC4e172459f1E7939D522503B81AFAaC1014CE6F6"
752
+ };
753
+ var GOVERNANCE_BRAVO_ADDRESSES = {
754
+ [1 /* MAINNET */]: "0x408ED6354d4973f66138C91495F2f2FCbd8724C3"
755
+ };
756
+ var TIMELOCK_ADDRESSES = constructSameAddressMap("0x1a9C8182C09F50C8318d769245beA52c32BE35BC");
757
+ var MERKLE_DISTRIBUTOR_ADDRESS = {
758
+ [1 /* MAINNET */]: "0x090D4613473dEE047c3f2706764f49E0821D256e"
759
+ };
760
+ var ARGENT_WALLET_DETECTOR_ADDRESS = {
761
+ [1 /* MAINNET */]: "0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8"
762
+ };
763
+ var QUOTER_ADDRESSES = {
764
+ ...SUPPORTED_CHAINS.reduce((memo, chainId) => {
765
+ memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress;
766
+ return memo;
767
+ }, {})
768
+ };
769
+ var NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = {
770
+ ...SUPPORTED_CHAINS.reduce((memo, chainId) => {
771
+ const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress;
772
+ if (nonfungiblePositionManagerAddress) {
773
+ memo[chainId] = nonfungiblePositionManagerAddress;
774
+ }
775
+ return memo;
776
+ }, {})
777
+ };
778
+ var ENS_REGISTRAR_ADDRESSES = {
779
+ ...constructSameAddressMap("0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e")
780
+ };
781
+ var SOCKS_CONTROLLER_ADDRESSES = {
782
+ [1 /* MAINNET */]: "0x65770b5283117639760beA3F867b69b3697a91dd"
783
+ };
784
+ var TICK_LENS_ADDRESSES = {
785
+ ...SUPPORTED_CHAINS.reduce((memo, chainId) => {
786
+ const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress;
787
+ if (tickLensAddress) {
788
+ memo[chainId] = tickLensAddress;
789
+ }
790
+ return memo;
791
+ }, {})
792
+ };
793
+ var MIXED_ROUTE_QUOTER_V1_ADDRESSES = SUPPORTED_CHAINS.reduce((memo, chainId) => {
794
+ const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address;
795
+ if (mixedRouteQuoterV1Address) {
796
+ memo[chainId] = mixedRouteQuoterV1Address;
797
+ }
798
+ return memo;
799
+ }, {});
800
+ var SWAP_ROUTER_02_ADDRESSES = (chainId) => {
801
+ if (SUPPORTED_CHAINS.includes(chainId)) {
802
+ const id = chainId;
803
+ return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
804
+ }
805
+ return "";
806
+ };
807
+
808
+ // src/constants.ts
809
+ var import_jsbi = __toESM(require("jsbi"), 1);
810
+ var TradeType = /* @__PURE__ */ ((TradeType2) => {
811
+ TradeType2[TradeType2["EXACT_INPUT"] = 0] = "EXACT_INPUT";
812
+ TradeType2[TradeType2["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT";
813
+ return TradeType2;
814
+ })(TradeType || {});
815
+ var Rounding = /* @__PURE__ */ ((Rounding2) => {
816
+ Rounding2[Rounding2["ROUND_DOWN"] = 0] = "ROUND_DOWN";
817
+ Rounding2[Rounding2["ROUND_HALF_UP"] = 1] = "ROUND_HALF_UP";
818
+ Rounding2[Rounding2["ROUND_UP"] = 2] = "ROUND_UP";
819
+ return Rounding2;
820
+ })(Rounding || {});
821
+ var MaxUint256 = import_jsbi.default.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
822
+
823
+ // src/entities/fractions/currencyAmount.ts
824
+ var import_tiny_invariant2 = __toESM(require("tiny-invariant"), 1);
825
+ var import_jsbi3 = __toESM(require("jsbi"), 1);
826
+
827
+ // src/entities/fractions/fraction.ts
828
+ var import_jsbi2 = __toESM(require("jsbi"), 1);
829
+ var import_tiny_invariant = __toESM(require("tiny-invariant"), 1);
830
+ var import_decimal = __toESM(require("decimal.js-light"), 1);
831
+ var import_big = __toESM(require("big.js"), 1);
832
+ var import_toformat = __toESM(require("toformat"), 1);
833
+ var Decimal = (0, import_toformat.default)(import_decimal.default);
834
+ var Big = (0, import_toformat.default)(import_big.default);
835
+ var toSignificantRounding = {
836
+ [0 /* ROUND_DOWN */]: Decimal.ROUND_DOWN,
837
+ [1 /* ROUND_HALF_UP */]: Decimal.ROUND_HALF_UP,
838
+ [2 /* ROUND_UP */]: Decimal.ROUND_UP
839
+ };
840
+ var toFixedRounding = {
841
+ [0 /* ROUND_DOWN */]: 0,
842
+ // Big.RoundDown
843
+ [1 /* ROUND_HALF_UP */]: 1,
844
+ // Big.RoundHalfUp
845
+ [2 /* ROUND_UP */]: 3
846
+ // Big.RoundUp
847
+ };
848
+ var Fraction = class _Fraction {
849
+ numerator;
850
+ denominator;
851
+ constructor(numerator, denominator = import_jsbi2.default.BigInt(1)) {
852
+ this.numerator = import_jsbi2.default.BigInt(numerator);
853
+ this.denominator = import_jsbi2.default.BigInt(denominator);
854
+ }
855
+ static tryParseFraction(fractionish) {
856
+ if (fractionish instanceof import_jsbi2.default || typeof fractionish === "number" || typeof fractionish === "string")
857
+ return new _Fraction(fractionish);
858
+ if ("numerator" in fractionish && "denominator" in fractionish) return fractionish;
859
+ throw new Error("Could not parse fraction");
860
+ }
861
+ // performs floor division
862
+ get quotient() {
863
+ return import_jsbi2.default.divide(this.numerator, this.denominator);
864
+ }
865
+ // remainder after floor division
866
+ get remainder() {
867
+ return new _Fraction(import_jsbi2.default.remainder(this.numerator, this.denominator), this.denominator);
868
+ }
869
+ invert() {
870
+ return new _Fraction(this.denominator, this.numerator);
871
+ }
872
+ add(other) {
873
+ const otherParsed = _Fraction.tryParseFraction(other);
874
+ if (import_jsbi2.default.equal(this.denominator, otherParsed.denominator)) {
875
+ return new _Fraction(import_jsbi2.default.add(this.numerator, otherParsed.numerator), this.denominator);
876
+ }
877
+ return new _Fraction(
878
+ import_jsbi2.default.add(
879
+ import_jsbi2.default.multiply(this.numerator, otherParsed.denominator),
880
+ import_jsbi2.default.multiply(otherParsed.numerator, this.denominator)
881
+ ),
882
+ import_jsbi2.default.multiply(this.denominator, otherParsed.denominator)
883
+ );
884
+ }
885
+ subtract(other) {
886
+ const otherParsed = _Fraction.tryParseFraction(other);
887
+ if (import_jsbi2.default.equal(this.denominator, otherParsed.denominator)) {
888
+ return new _Fraction(import_jsbi2.default.subtract(this.numerator, otherParsed.numerator), this.denominator);
889
+ }
890
+ return new _Fraction(
891
+ import_jsbi2.default.subtract(
892
+ import_jsbi2.default.multiply(this.numerator, otherParsed.denominator),
893
+ import_jsbi2.default.multiply(otherParsed.numerator, this.denominator)
894
+ ),
895
+ import_jsbi2.default.multiply(this.denominator, otherParsed.denominator)
896
+ );
897
+ }
898
+ lessThan(other) {
899
+ const otherParsed = _Fraction.tryParseFraction(other);
900
+ return import_jsbi2.default.lessThan(
901
+ import_jsbi2.default.multiply(this.numerator, otherParsed.denominator),
902
+ import_jsbi2.default.multiply(otherParsed.numerator, this.denominator)
903
+ );
904
+ }
905
+ equalTo(other) {
906
+ const otherParsed = _Fraction.tryParseFraction(other);
907
+ return import_jsbi2.default.equal(
908
+ import_jsbi2.default.multiply(this.numerator, otherParsed.denominator),
909
+ import_jsbi2.default.multiply(otherParsed.numerator, this.denominator)
910
+ );
911
+ }
912
+ greaterThan(other) {
913
+ const otherParsed = _Fraction.tryParseFraction(other);
914
+ return import_jsbi2.default.greaterThan(
915
+ import_jsbi2.default.multiply(this.numerator, otherParsed.denominator),
916
+ import_jsbi2.default.multiply(otherParsed.numerator, this.denominator)
917
+ );
918
+ }
919
+ multiply(other) {
920
+ const otherParsed = _Fraction.tryParseFraction(other);
921
+ return new _Fraction(
922
+ import_jsbi2.default.multiply(this.numerator, otherParsed.numerator),
923
+ import_jsbi2.default.multiply(this.denominator, otherParsed.denominator)
924
+ );
925
+ }
926
+ divide(other) {
927
+ const otherParsed = _Fraction.tryParseFraction(other);
928
+ return new _Fraction(
929
+ import_jsbi2.default.multiply(this.numerator, otherParsed.denominator),
930
+ import_jsbi2.default.multiply(this.denominator, otherParsed.numerator)
931
+ );
932
+ }
933
+ toSignificant(significantDigits, format = { groupSeparator: "" }, rounding = 1 /* ROUND_HALF_UP */) {
934
+ (0, import_tiny_invariant.default)(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`);
935
+ (0, import_tiny_invariant.default)(significantDigits > 0, `${significantDigits} is not positive.`);
936
+ Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] });
937
+ const quotient = new Decimal(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(significantDigits);
938
+ return quotient.toFormat(quotient.decimalPlaces(), format);
939
+ }
940
+ toFixed(decimalPlaces, format = { groupSeparator: "" }, rounding = 1 /* ROUND_HALF_UP */) {
941
+ (0, import_tiny_invariant.default)(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`);
942
+ (0, import_tiny_invariant.default)(decimalPlaces >= 0, `${decimalPlaces} is negative.`);
943
+ Big.DP = decimalPlaces;
944
+ Big.RM = toFixedRounding[rounding];
945
+ return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format);
946
+ }
947
+ /**
948
+ * Helper method for converting any super class back to a fraction
949
+ */
950
+ get asFraction() {
951
+ return new _Fraction(this.numerator, this.denominator);
952
+ }
953
+ };
954
+
955
+ // src/entities/fractions/currencyAmount.ts
956
+ var import_big2 = __toESM(require("big.js"), 1);
957
+ var import_toformat2 = __toESM(require("toformat"), 1);
958
+ var Big2 = (0, import_toformat2.default)(import_big2.default);
959
+ var CurrencyAmount = class _CurrencyAmount extends Fraction {
960
+ currency;
961
+ decimalScale;
962
+ /**
963
+ * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
964
+ * @param currency the currency in the amount
965
+ * @param rawAmount the raw token or ether amount
966
+ */
967
+ static fromRawAmount(currency, rawAmount) {
968
+ return new _CurrencyAmount(currency, rawAmount);
969
+ }
970
+ /**
971
+ * Construct a currency amount with a denominator that is not equal to 1
972
+ * @param currency the currency
973
+ * @param numerator the numerator of the fractional token amount
974
+ * @param denominator the denominator of the fractional token amount
975
+ */
976
+ static fromFractionalAmount(currency, numerator, denominator) {
977
+ return new _CurrencyAmount(currency, numerator, denominator);
978
+ }
979
+ constructor(currency, numerator, denominator) {
980
+ super(numerator, denominator);
981
+ (0, import_tiny_invariant2.default)(import_jsbi3.default.lessThanOrEqual(this.quotient, MaxUint256), "AMOUNT");
982
+ this.currency = currency;
983
+ this.decimalScale = import_jsbi3.default.exponentiate(import_jsbi3.default.BigInt(10), import_jsbi3.default.BigInt(currency.decimals));
984
+ }
985
+ add(other) {
986
+ (0, import_tiny_invariant2.default)(this.currency.equals(other.currency), "CURRENCY");
987
+ const added = super.add(other);
988
+ return _CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator);
989
+ }
990
+ subtract(other) {
991
+ (0, import_tiny_invariant2.default)(this.currency.equals(other.currency), "CURRENCY");
992
+ const subtracted = super.subtract(other);
993
+ return _CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator);
994
+ }
995
+ multiply(other) {
996
+ const multiplied = super.multiply(other);
997
+ return _CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator);
998
+ }
999
+ divide(other) {
1000
+ const divided = super.divide(other);
1001
+ return _CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator);
1002
+ }
1003
+ toSignificant(significantDigits = 6, format, rounding = 0 /* ROUND_DOWN */) {
1004
+ return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding);
1005
+ }
1006
+ toFixed(decimalPlaces = this.currency.decimals, format, rounding = 0 /* ROUND_DOWN */) {
1007
+ (0, import_tiny_invariant2.default)(decimalPlaces <= this.currency.decimals, "DECIMALS");
1008
+ return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding);
1009
+ }
1010
+ toExact(format = { groupSeparator: "" }) {
1011
+ Big2.DP = this.currency.decimals;
1012
+ return new Big2(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format);
1013
+ }
1014
+ get wrapped() {
1015
+ if (this.currency.isToken) return this;
1016
+ return _CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator);
1017
+ }
1018
+ };
1019
+
1020
+ // src/entities/fractions/percent.ts
1021
+ var import_jsbi4 = __toESM(require("jsbi"), 1);
1022
+ var ONE_HUNDRED = new Fraction(import_jsbi4.default.BigInt(100));
1023
+ function toPercent(fraction) {
1024
+ return new Percent(fraction.numerator, fraction.denominator);
1025
+ }
1026
+ var Percent = class extends Fraction {
1027
+ /**
1028
+ * This boolean prevents a fraction from being interpreted as a Percent
1029
+ */
1030
+ isPercent = true;
1031
+ add(other) {
1032
+ return toPercent(super.add(other));
1033
+ }
1034
+ subtract(other) {
1035
+ return toPercent(super.subtract(other));
1036
+ }
1037
+ multiply(other) {
1038
+ return toPercent(super.multiply(other));
1039
+ }
1040
+ divide(other) {
1041
+ return toPercent(super.divide(other));
1042
+ }
1043
+ toSignificant(significantDigits = 5, format, rounding) {
1044
+ return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding);
1045
+ }
1046
+ toFixed(decimalPlaces = 2, format, rounding) {
1047
+ return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding);
1048
+ }
1049
+ };
1050
+
1051
+ // src/entities/fractions/price.ts
1052
+ var import_jsbi5 = __toESM(require("jsbi"), 1);
1053
+ var import_tiny_invariant3 = __toESM(require("tiny-invariant"), 1);
1054
+ var Price = class _Price extends Fraction {
1055
+ baseCurrency;
1056
+ // input i.e. denominator
1057
+ quoteCurrency;
1058
+ // output i.e. numerator
1059
+ scalar;
1060
+ // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token
1061
+ /**
1062
+ * Construct a price, either with the base and quote currency amount, or the
1063
+ * @param args
1064
+ */
1065
+ constructor(...args) {
1066
+ let baseCurrency, quoteCurrency, denominator, numerator;
1067
+ if (args.length === 4) {
1068
+ ;
1069
+ [baseCurrency, quoteCurrency, denominator, numerator] = args;
1070
+ } else {
1071
+ const result = args[0].quoteAmount.divide(args[0].baseAmount);
1072
+ [baseCurrency, quoteCurrency, denominator, numerator] = [
1073
+ args[0].baseAmount.currency,
1074
+ args[0].quoteAmount.currency,
1075
+ result.denominator,
1076
+ result.numerator
1077
+ ];
1078
+ }
1079
+ super(numerator, denominator);
1080
+ this.baseCurrency = baseCurrency;
1081
+ this.quoteCurrency = quoteCurrency;
1082
+ this.scalar = new Fraction(
1083
+ import_jsbi5.default.exponentiate(import_jsbi5.default.BigInt(10), import_jsbi5.default.BigInt(baseCurrency.decimals)),
1084
+ import_jsbi5.default.exponentiate(import_jsbi5.default.BigInt(10), import_jsbi5.default.BigInt(quoteCurrency.decimals))
1085
+ );
1086
+ }
1087
+ /**
1088
+ * Flip the price, switching the base and quote currency
1089
+ */
1090
+ invert() {
1091
+ return new _Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
1092
+ }
1093
+ /**
1094
+ * 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
1095
+ * @param other the other price
1096
+ */
1097
+ multiply(other) {
1098
+ (0, import_tiny_invariant3.default)(this.quoteCurrency.equals(other.baseCurrency), "TOKEN");
1099
+ const fraction = super.multiply(other);
1100
+ return new _Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
1101
+ }
1102
+ /**
1103
+ * Return the amount of quote currency corresponding to a given amount of the base currency
1104
+ * @param currencyAmount the amount of base currency to quote against the price
1105
+ */
1106
+ quote(currencyAmount) {
1107
+ (0, import_tiny_invariant3.default)(currencyAmount.currency.equals(this.baseCurrency), "TOKEN");
1108
+ const result = super.multiply(currencyAmount);
1109
+ return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
1110
+ }
1111
+ /**
1112
+ * Get the value scaled by decimals for formatting
1113
+ * @private
1114
+ */
1115
+ get adjustedForDecimals() {
1116
+ return super.multiply(this.scalar);
1117
+ }
1118
+ toSignificant(significantDigits = 6, format, rounding) {
1119
+ return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
1120
+ }
1121
+ toFixed(decimalPlaces = 4, format, rounding) {
1122
+ return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
1123
+ }
1124
+ };
1125
+
1126
+ // src/entities/ether.ts
1127
+ var import_tiny_invariant6 = __toESM(require("tiny-invariant"), 1);
1128
+
1129
+ // src/entities/baseCurrency.ts
1130
+ var import_tiny_invariant4 = __toESM(require("tiny-invariant"), 1);
1131
+ var BaseCurrency = class {
1132
+ /**
1133
+ * The chain ID on which this currency resides
1134
+ */
1135
+ chainId;
1136
+ /**
1137
+ * The decimals used in representing currency amounts
1138
+ */
1139
+ decimals;
1140
+ /**
1141
+ * The symbol of the currency, i.e. a short textual non-unique identifier
1142
+ */
1143
+ symbol;
1144
+ /**
1145
+ * The name of the currency, i.e. a descriptive textual non-unique identifier
1146
+ */
1147
+ name;
1148
+ /**
1149
+ * Constructs an instance of the base class `BaseCurrency`.
1150
+ * @param chainId the chain ID on which this currency resides
1151
+ * @param decimals decimals of the currency
1152
+ * @param symbol symbol of the currency
1153
+ * @param name of the currency
1154
+ */
1155
+ constructor(chainId, decimals, symbol, name) {
1156
+ (0, import_tiny_invariant4.default)(Number.isSafeInteger(chainId), "CHAIN_ID");
1157
+ (0, import_tiny_invariant4.default)(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), "DECIMALS");
1158
+ this.chainId = chainId;
1159
+ this.decimals = decimals;
1160
+ this.symbol = symbol;
1161
+ this.name = name;
1162
+ }
1163
+ };
1164
+
1165
+ // src/entities/nativeCurrency.ts
1166
+ var NativeCurrency = class extends BaseCurrency {
1167
+ isNative = true;
1168
+ isToken = false;
1169
+ };
1170
+
1171
+ // src/entities/token.ts
1172
+ var import_bignumber = require("@ethersproject/bignumber");
1173
+ var import_tiny_invariant5 = __toESM(require("tiny-invariant"), 1);
1174
+
1175
+ // src/utils/validateAndParseAddress.ts
1176
+ var import_address = require("@ethersproject/address");
1177
+ function validateAndParseAddress(address) {
1178
+ try {
1179
+ return (0, import_address.getAddress)(address);
1180
+ } catch {
1181
+ throw new Error(`${address} is not a valid address.`);
1182
+ }
1183
+ }
1184
+ var startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/;
1185
+ function checkValidAddress(address) {
1186
+ if (startsWith0xLen42HexRegex.test(address)) {
1187
+ return address;
1188
+ }
1189
+ throw new Error(`${address} is not a valid address.`);
1190
+ }
1191
+
1192
+ // src/entities/token.ts
1193
+ var Token = class extends BaseCurrency {
1194
+ isNative = false;
1195
+ isToken = true;
1196
+ /**
1197
+ * The contract address on the chain on which this token lives
1198
+ */
1199
+ address;
1200
+ /**
1201
+ * Relevant for fee-on-transfer (FOT) token taxes,
1202
+ * Not every ERC20 token is FOT token, so this field is optional
1203
+ */
1204
+ buyFeeBps;
1205
+ sellFeeBps;
1206
+ /**
1207
+ *
1208
+ * @param chainId {@link BaseCurrency#chainId}
1209
+ * @param address The contract address on the chain on which this token lives
1210
+ * @param decimals {@link BaseCurrency#decimals}
1211
+ * @param symbol {@link BaseCurrency#symbol}
1212
+ * @param name {@link BaseCurrency#name}
1213
+ * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
1214
+ * @param buyFeeBps Buy fee tax for FOT tokens, in basis points
1215
+ * @param sellFeeBps Sell fee tax for FOT tokens, in basis points
1216
+ */
1217
+ constructor(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
1218
+ super(chainId, decimals, symbol, name);
1219
+ if (bypassChecksum) {
1220
+ this.address = checkValidAddress(address);
1221
+ } else {
1222
+ this.address = validateAndParseAddress(address);
1223
+ }
1224
+ if (buyFeeBps) {
1225
+ (0, import_tiny_invariant5.default)(buyFeeBps.gte(import_bignumber.BigNumber.from(0)), "NON-NEGATIVE FOT FEES");
1226
+ }
1227
+ if (sellFeeBps) {
1228
+ (0, import_tiny_invariant5.default)(sellFeeBps.gte(import_bignumber.BigNumber.from(0)), "NON-NEGATIVE FOT FEES");
1229
+ }
1230
+ this.buyFeeBps = buyFeeBps;
1231
+ this.sellFeeBps = sellFeeBps;
1232
+ }
1233
+ /**
1234
+ * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
1235
+ * @param other other token to compare
1236
+ */
1237
+ equals(other) {
1238
+ return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
1239
+ }
1240
+ /**
1241
+ * Returns true if the address of this token sorts before the address of the other token
1242
+ * @param other other token to compare
1243
+ * @throws if the tokens have the same address
1244
+ * @throws if the tokens are on different chains
1245
+ */
1246
+ sortsBefore(other) {
1247
+ (0, import_tiny_invariant5.default)(this.chainId === other.chainId, "CHAIN_IDS");
1248
+ (0, import_tiny_invariant5.default)(this.address.toLowerCase() !== other.address.toLowerCase(), "ADDRESSES");
1249
+ return this.address.toLowerCase() < other.address.toLowerCase();
1250
+ }
1251
+ /**
1252
+ * Return this token, which does not need to be wrapped
1253
+ */
1254
+ get wrapped() {
1255
+ return this;
1256
+ }
1257
+ };
1258
+
1259
+ // src/entities/weth9.ts
1260
+ var WETH9 = {
1261
+ 728126428: new Token(728126428, "0x891cdb91d149f23b1a45d9c5ca78a88d0cb44c18", 6, "WTRX", "Wrapped TRX"),
1262
+ 3448148188: new Token(3448148188, "0xfb3b3134f13ccd2c81f4012e53024e8135d58fee", 6, "WTRX", "Wrapped TRX")
1263
+ };
1264
+ var WTRX = WETH9;
1265
+
1266
+ // src/entities/ether.ts
1267
+ var Ether = class _Ether extends NativeCurrency {
1268
+ constructor(chainId) {
1269
+ super(chainId, 6, "TRX", "TRON");
1270
+ }
1271
+ get wrapped() {
1272
+ const weth9 = WETH9[this.chainId];
1273
+ (0, import_tiny_invariant6.default)(!!weth9, "WRAPPED");
1274
+ return weth9;
1275
+ }
1276
+ static _etherCache = {};
1277
+ static onChain(chainId) {
1278
+ return this._etherCache[chainId] ?? (this._etherCache[chainId] = new _Ether(chainId));
1279
+ }
1280
+ equals(other) {
1281
+ return other.isNative && other.chainId === this.chainId;
1282
+ }
1283
+ };
1284
+
1285
+ // src/utils/computePriceImpact.ts
1286
+ function computePriceImpact(midPrice, inputAmount, outputAmount) {
1287
+ const quotedOutputAmount = midPrice.quote(inputAmount);
1288
+ const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount);
1289
+ return new Percent(priceImpact.numerator, priceImpact.denominator);
1290
+ }
1291
+
1292
+ // src/utils/computeZksyncCreate2Address.ts
1293
+ var import_address2 = require("@ethersproject/address");
1294
+ var import_bytes = require("@ethersproject/bytes");
1295
+ var import_keccak256 = require("@ethersproject/keccak256");
1296
+ var import_strings = require("@ethersproject/strings");
1297
+ function computeZksyncCreate2Address(sender, bytecodeHash, salt, input = "0x") {
1298
+ const prefix = (0, import_keccak256.keccak256)((0, import_strings.toUtf8Bytes)("zksyncCreate2"));
1299
+ const inputHash = (0, import_keccak256.keccak256)(input);
1300
+ const addressBytes = (0, import_keccak256.keccak256)((0, import_bytes.concat)([prefix, (0, import_bytes.hexZeroPad)(sender, 32), salt, bytecodeHash, inputHash])).slice(26);
1301
+ return (0, import_address2.getAddress)(addressBytes);
1302
+ }
1303
+
1304
+ // src/utils/sortedInsert.ts
1305
+ var import_tiny_invariant7 = __toESM(require("tiny-invariant"), 1);
1306
+ function sortedInsert(items, add, maxSize, comparator) {
1307
+ (0, import_tiny_invariant7.default)(maxSize > 0, "MAX_SIZE_ZERO");
1308
+ (0, import_tiny_invariant7.default)(items.length <= maxSize, "ITEMS_SIZE");
1309
+ if (items.length === 0) {
1310
+ items.push(add);
1311
+ return null;
1312
+ } else {
1313
+ const isFull = items.length === maxSize;
1314
+ if (isFull && comparator(items[items.length - 1], add) <= 0) {
1315
+ return add;
1316
+ }
1317
+ let lo = 0, hi = items.length;
1318
+ while (lo < hi) {
1319
+ const mid = lo + hi >>> 1;
1320
+ if (comparator(items[mid], add) <= 0) {
1321
+ lo = mid + 1;
1322
+ } else {
1323
+ hi = mid;
1324
+ }
1325
+ }
1326
+ items.splice(lo, 0, add);
1327
+ return isFull ? items.pop() : null;
1328
+ }
1329
+ }
1330
+
1331
+ // src/utils/sqrt.ts
1332
+ var import_jsbi6 = __toESM(require("jsbi"), 1);
1333
+ var import_tiny_invariant8 = __toESM(require("tiny-invariant"), 1);
1334
+ var MAX_SAFE_INTEGER = import_jsbi6.default.BigInt(Number.MAX_SAFE_INTEGER);
1335
+ var ZERO = import_jsbi6.default.BigInt(0);
1336
+ var ONE = import_jsbi6.default.BigInt(1);
1337
+ var TWO = import_jsbi6.default.BigInt(2);
1338
+ function sqrt(value) {
1339
+ (0, import_tiny_invariant8.default)(import_jsbi6.default.greaterThanOrEqual(value, ZERO), "NEGATIVE");
1340
+ if (import_jsbi6.default.lessThan(value, MAX_SAFE_INTEGER)) {
1341
+ return import_jsbi6.default.BigInt(Math.floor(Math.sqrt(import_jsbi6.default.toNumber(value))));
1342
+ }
1343
+ let z;
1344
+ let x;
1345
+ z = value;
1346
+ x = import_jsbi6.default.add(import_jsbi6.default.divide(value, TWO), ONE);
1347
+ while (import_jsbi6.default.lessThan(x, z)) {
1348
+ z = x;
1349
+ x = import_jsbi6.default.divide(import_jsbi6.default.add(import_jsbi6.default.divide(value, x), x), TWO);
1350
+ }
1351
+ return z;
1352
+ }
1353
+
1354
+ // src/errors.ts
1355
+ var SDK_ERROR_CODES = {
1356
+ SDK_INVALID_ARGUMENT: "SDK_INVALID_ARGUMENT",
1357
+ SDK_UNSUPPORTED_NETWORK: "SDK_UNSUPPORTED_NETWORK",
1358
+ SDK_WALLET_CAPABILITY_ERROR: "SDK_WALLET_CAPABILITY_ERROR",
1359
+ SDK_WALLET_ACCOUNT_MISMATCH: "SDK_WALLET_ACCOUNT_MISMATCH",
1360
+ SDK_WALLET_REJECTED: "SDK_WALLET_REJECTED",
1361
+ SDK_RUNTIME_ERROR: "SDK_RUNTIME_ERROR",
1362
+ SDK_API_ERROR: "SDK_API_ERROR",
1363
+ SDK_NO_ROUTE: "SDK_NO_ROUTE",
1364
+ SDK_CONTRACT_ERROR: "SDK_CONTRACT_ERROR",
1365
+ SDK_TX_BUILD_ERROR: "SDK_TX_BUILD_ERROR",
1366
+ SDK_TX_BROADCAST_ERROR: "SDK_TX_BROADCAST_ERROR"
1367
+ };
1368
+ var SDKError = class extends Error {
1369
+ code;
1370
+ context;
1371
+ constructor(code, message, context) {
1372
+ super(message);
1373
+ this.name = "SDKError";
1374
+ this.code = code;
1375
+ this.context = context;
1376
+ }
1377
+ };
1378
+ function normalizeSDKError(error, code, message, context = {}) {
1379
+ if (error instanceof SDKError) return error;
1380
+ return new SDKError(code, message, { ...context, cause: error });
1381
+ }
1382
+ function sdkInvariant(condition, code, message, context) {
1383
+ if (!condition) {
1384
+ throw new SDKError(code, message, context);
1385
+ }
1386
+ }
1387
+
1388
+ // src/address.ts
1389
+ var TRON_ZERO_ADDRESS = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
1390
+ var TRON_BASE58_PATTERN = /^T[1-9A-HJ-NP-Za-km-z]{33}$/;
1391
+ var TRON_HEX_PATTERN = /^41[a-fA-F0-9]{40}$/;
1392
+ function isTronBase58Address(value) {
1393
+ return TRON_BASE58_PATTERN.test(value);
1394
+ }
1395
+ function isTronHexAddress(value) {
1396
+ return TRON_HEX_PATTERN.test(value);
1397
+ }
1398
+ function assertTronAddress(value, label = "address") {
1399
+ sdkInvariant(
1400
+ isTronBase58Address(value),
1401
+ "SDK_INVALID_ARGUMENT",
1402
+ `${label} must be a TRON base58 address`,
1403
+ { label, value }
1404
+ );
1405
+ return value;
1406
+ }
1407
+ function assertTronHexAddress(value, label = "hex address") {
1408
+ sdkInvariant(
1409
+ isTronHexAddress(value),
1410
+ "SDK_INVALID_ARGUMENT",
1411
+ `${label} must be a 41-prefixed TRON hex address`,
1412
+ { label, value }
1413
+ );
1414
+ return value;
1415
+ }
1416
+ function toTronHexAddress(address, codec) {
1417
+ const base58 = assertTronAddress(address);
1418
+ return assertTronHexAddress(codec.toHex(base58));
1419
+ }
1420
+ function toTronBase58Address(hex, codec) {
1421
+ const tronHex = assertTronHexAddress(hex);
1422
+ return assertTronAddress(codec.fromHex(tronHex));
1423
+ }
1424
+
1425
+ // src/amount.ts
1426
+ var DECIMAL_TEXT = /^(0|[1-9]\d*)(\.\d+)?$/;
1427
+ function parseUnits(value, decimals) {
1428
+ sdkInvariant(Number.isInteger(decimals) && decimals >= 0, "SDK_INVALID_ARGUMENT", "decimals must be a non-negative integer", {
1429
+ decimals
1430
+ });
1431
+ sdkInvariant(DECIMAL_TEXT.test(value), "SDK_INVALID_ARGUMENT", "amount must be a non-negative decimal string", { value });
1432
+ const [wholePart = "0", fractionalPart = ""] = value.split(".");
1433
+ sdkInvariant(
1434
+ fractionalPart.length <= decimals,
1435
+ "SDK_INVALID_ARGUMENT",
1436
+ `amount has too many decimal places for ${decimals} decimals`,
1437
+ { value, decimals }
1438
+ );
1439
+ const paddedFraction = fractionalPart.padEnd(decimals, "0");
1440
+ const raw = `${wholePart}${paddedFraction}`.replace(/^0+(?=\d)/, "");
1441
+ return BigInt(raw);
1442
+ }
1443
+ function formatUnits(value, decimals) {
1444
+ sdkInvariant(value >= 0n, "SDK_INVALID_ARGUMENT", "amount must be non-negative", { value: value.toString() });
1445
+ sdkInvariant(Number.isInteger(decimals) && decimals >= 0, "SDK_INVALID_ARGUMENT", "decimals must be a non-negative integer", {
1446
+ decimals
1447
+ });
1448
+ if (decimals === 0) {
1449
+ return value.toString();
1450
+ }
1451
+ const raw = value.toString().padStart(decimals + 1, "0");
1452
+ const whole = raw.slice(0, -decimals);
1453
+ const fraction = raw.slice(-decimals).replace(/0+$/, "");
1454
+ return fraction ? `${whole}.${fraction}` : whole;
1455
+ }
1456
+
1457
+ // src/tx.ts
1458
+ function createContractCallAction(input) {
1459
+ return {
1460
+ id: input.id,
1461
+ type: "contract-call",
1462
+ status: "planned",
1463
+ execute: "runtime",
1464
+ target: input.target,
1465
+ functionSelector: input.functionSelector,
1466
+ ...input.parameters !== void 0 ? { parameters: input.parameters } : {},
1467
+ ...input.abiFunction !== void 0 ? { abiFunction: input.abiFunction } : {},
1468
+ ...input.rawParameter !== void 0 ? { rawParameter: input.rawParameter } : {},
1469
+ ...input.callValue !== void 0 ? { callValue: input.callValue } : {},
1470
+ ...input.feeLimit !== void 0 ? { feeLimit: input.feeLimit } : {},
1471
+ ...input.tokenRequirements !== void 0 ? { tokenRequirements: input.tokenRequirements } : {},
1472
+ ...input.waitForReceipt !== void 0 ? { waitForReceipt: input.waitForReceipt } : {},
1473
+ ...input.metadata !== void 0 ? { metadata: input.metadata } : {},
1474
+ ...input.intent !== void 0 ? { intent: input.intent } : {}
1475
+ };
1476
+ }
1477
+ function createApproveAction(input) {
1478
+ return {
1479
+ id: input.id,
1480
+ type: "approve",
1481
+ status: "planned",
1482
+ execute: "runtime",
1483
+ waitForReceipt: "included",
1484
+ target: input.target,
1485
+ functionSelector: "approve(address,uint256)",
1486
+ parameters: [
1487
+ { type: "address", value: input.spender },
1488
+ { type: "uint256", value: input.amount }
1489
+ ],
1490
+ ...input.feeLimit !== void 0 ? { feeLimit: input.feeLimit } : {},
1491
+ ...input.metadata !== void 0 ? { metadata: input.metadata } : {},
1492
+ ...input.intent !== void 0 ? { intent: input.intent } : {}
1493
+ };
1494
+ }
1495
+ function createDeferredContractCallAction(input) {
1496
+ return {
1497
+ id: input.id,
1498
+ type: "deferred-contract-call",
1499
+ status: "planned",
1500
+ execute: "runtime",
1501
+ materialization: input.materialization,
1502
+ ...input.waitForReceipt !== void 0 ? { waitForReceipt: input.waitForReceipt } : {},
1503
+ ...input.metadata !== void 0 ? { metadata: input.metadata } : {},
1504
+ ...input.intent !== void 0 ? { intent: input.intent } : {}
1505
+ };
1506
+ }
1507
+ function createTypedDataSignatureAction(input) {
1508
+ return {
1509
+ id: input.id,
1510
+ type: "typed-data-signature",
1511
+ status: "planned",
1512
+ execute: "wallet-signature",
1513
+ typedData: input.typedData,
1514
+ ...input.metadata !== void 0 ? { metadata: input.metadata } : {}
1515
+ };
1516
+ }
1517
+ function createHttpRequestAction(input) {
1518
+ return {
1519
+ id: input.id,
1520
+ type: "http-request",
1521
+ status: "planned",
1522
+ execute: "api",
1523
+ request: input.request,
1524
+ ...input.metadata !== void 0 ? { metadata: input.metadata } : {}
1525
+ };
1526
+ }
1527
+ // Annotate the CommonJS export names for ESM import in node:
1528
+ 0 && (module.exports = {
1529
+ ARGENT_WALLET_DETECTOR_ADDRESS,
1530
+ AVERAGE_BLOCK_TIMES_SECONDS,
1531
+ CHAIN_TO_ADDRESSES_MAP,
1532
+ ChainId,
1533
+ CurrencyAmount,
1534
+ ENS_REGISTRAR_ADDRESSES,
1535
+ Ether,
1536
+ Fraction,
1537
+ GOVERNANCE_ALPHA_V0_ADDRESSES,
1538
+ GOVERNANCE_ALPHA_V1_ADDRESSES,
1539
+ GOVERNANCE_BRAVO_ADDRESSES,
1540
+ MERKLE_DISTRIBUTOR_ADDRESS,
1541
+ MIXED_ROUTE_QUOTER_V1_ADDRESSES,
1542
+ MULTICALL_ADDRESSES,
1543
+ MaxUint256,
1544
+ NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,
1545
+ NativeCurrency,
1546
+ NativeCurrencyName,
1547
+ Percent,
1548
+ Price,
1549
+ QUOTER_ADDRESSES,
1550
+ Rounding,
1551
+ SDKError,
1552
+ SDK_ERROR_CODES,
1553
+ SOCKS_CONTROLLER_ADDRESSES,
1554
+ SUPPORTED_CHAINS,
1555
+ SWAP_ROUTER_02_ADDRESSES,
1556
+ TICK_LENS_ADDRESSES,
1557
+ TIMELOCK_ADDRESSES,
1558
+ TRON_ZERO_ADDRESS,
1559
+ Token,
1560
+ TradeType,
1561
+ UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS,
1562
+ UNI_ADDRESSES,
1563
+ V2_FACTORY_ADDRESS,
1564
+ V2_FACTORY_ADDRESSES,
1565
+ V2_ROUTER_ADDRESS,
1566
+ V2_ROUTER_ADDRESSES,
1567
+ V3_CORE_FACTORY_ADDRESSES,
1568
+ V3_MIGRATOR_ADDRESSES,
1569
+ WETH9,
1570
+ WTRX,
1571
+ assertTronAddress,
1572
+ assertTronHexAddress,
1573
+ computePriceImpact,
1574
+ computeZksyncCreate2Address,
1575
+ createApproveAction,
1576
+ createContractCallAction,
1577
+ createDeferredContractCallAction,
1578
+ createHttpRequestAction,
1579
+ createTypedDataSignatureAction,
1580
+ formatUnits,
1581
+ getAverageBlockTimeSecs,
1582
+ isTronBase58Address,
1583
+ isTronHexAddress,
1584
+ normalizeSDKError,
1585
+ parseUnits,
1586
+ sdkInvariant,
1587
+ secondsToBlocks,
1588
+ sortedInsert,
1589
+ sqrt,
1590
+ toTronBase58Address,
1591
+ toTronHexAddress,
1592
+ validateAndParseAddress
1593
+ });
1594
+ //# sourceMappingURL=index.cjs.map