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