@avaprotocol/protocols 0.1.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.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/dist/chains.d.ts +9 -0
  4. package/dist/chains.d.ts.map +1 -0
  5. package/dist/index.cjs +848 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +803 -0
  9. package/dist/protocols/aave-v3.d.ts +21 -0
  10. package/dist/protocols/aave-v3.d.ts.map +1 -0
  11. package/dist/protocols/aerodrome.d.ts +4 -0
  12. package/dist/protocols/aerodrome.d.ts.map +1 -0
  13. package/dist/protocols/chainlink.d.ts +7 -0
  14. package/dist/protocols/chainlink.d.ts.map +1 -0
  15. package/dist/protocols/common.d.ts +16 -0
  16. package/dist/protocols/common.d.ts.map +1 -0
  17. package/dist/protocols/compound-v3.d.ts +4 -0
  18. package/dist/protocols/compound-v3.d.ts.map +1 -0
  19. package/dist/protocols/erc20.d.ts +5 -0
  20. package/dist/protocols/erc20.d.ts.map +1 -0
  21. package/dist/protocols/ethena.d.ts +7 -0
  22. package/dist/protocols/ethena.d.ts.map +1 -0
  23. package/dist/protocols/frax-ether.d.ts +7 -0
  24. package/dist/protocols/frax-ether.d.ts.map +1 -0
  25. package/dist/protocols/index.d.ts +133 -0
  26. package/dist/protocols/index.d.ts.map +1 -0
  27. package/dist/protocols/lido.d.ts +7 -0
  28. package/dist/protocols/lido.d.ts.map +1 -0
  29. package/dist/protocols/morpho.d.ts +6 -0
  30. package/dist/protocols/morpho.d.ts.map +1 -0
  31. package/dist/protocols/rocket-pool.d.ts +6 -0
  32. package/dist/protocols/rocket-pool.d.ts.map +1 -0
  33. package/dist/protocols/sky.d.ts +6 -0
  34. package/dist/protocols/sky.d.ts.map +1 -0
  35. package/dist/protocols/spark.d.ts +4 -0
  36. package/dist/protocols/spark.d.ts.map +1 -0
  37. package/dist/protocols/superfluid.d.ts +6 -0
  38. package/dist/protocols/superfluid.d.ts.map +1 -0
  39. package/dist/protocols/types.d.ts +17 -0
  40. package/dist/protocols/types.d.ts.map +1 -0
  41. package/dist/protocols/uniswap-v3.d.ts +27 -0
  42. package/dist/protocols/uniswap-v3.d.ts.map +1 -0
  43. package/dist/protocols/wrapped.d.ts +6 -0
  44. package/dist/protocols/wrapped.d.ts.map +1 -0
  45. package/package.json +71 -0
package/dist/index.js ADDED
@@ -0,0 +1,803 @@
1
+ // src/chains.ts
2
+ var Chains = Object.freeze({
3
+ EthereumMainnet: 1,
4
+ Sepolia: 11155111,
5
+ Holesky: 17e3,
6
+ BaseMainnet: 8453,
7
+ BaseSepolia: 84532
8
+ });
9
+
10
+ // src/protocols/aave-v3.ts
11
+ var pool = {
12
+ [Chains.EthereumMainnet]: "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2",
13
+ [Chains.Sepolia]: "0x6Ae43d3271ff6888e7Fc43Fd7321a503ff738951",
14
+ [Chains.BaseMainnet]: "0xA238Dd80C259a72e81d7e4664a9801593F98d1c5",
15
+ [Chains.BaseSepolia]: "0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27"
16
+ };
17
+ var oracle = {
18
+ [Chains.EthereumMainnet]: "0x54586bE62E3c3580375aE3723C145253060Ca0C2",
19
+ [Chains.Sepolia]: "0x2da88497588bf89281816106C7259e31AF45a663",
20
+ [Chains.BaseMainnet]: "0x2Cc0Fc26eD4563A5ce5e8bdcfe1A2878676Ae156",
21
+ [Chains.BaseSepolia]: "0x943b0dE18d4abf4eF02A85912F8fc07684C141dF"
22
+ };
23
+ var wethGateway = {
24
+ [Chains.EthereumMainnet]: "0xd01607c3C5eCABa394D8be377a08590149325722",
25
+ [Chains.Sepolia]: "0x387d311e47e80b498169e6fb51d3193167d89F7D",
26
+ [Chains.BaseMainnet]: "0xa0d9C1E9E48Ca30c8d8C3B5D69FF5dc1f6DFfC24",
27
+ [Chains.BaseSepolia]: "0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6"
28
+ };
29
+ var eventTopics = Object.freeze({
30
+ Supply: "0x2b627736bca15cd5381dcf80b0bf11fd197d01a037c52b927a881a10fb73ba61",
31
+ Withdraw: "0x3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7",
32
+ Borrow: "0xb3d084820fb1a9decffb176436bd02558d15fac9b0ddfed8c465bc7359d7dce0",
33
+ Repay: "0xa534c8dbe71f871f9f3530e97a74601fea17b426cae02e1c5aee42c96c784051",
34
+ LiquidationCall: "0xe413a321e8681d831f4dbccbca790d2952b56f977908e45be37335533e005286"
35
+ });
36
+ var poolEventsAbi = Object.freeze([
37
+ {
38
+ anonymous: false,
39
+ inputs: [
40
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
41
+ { indexed: false, internalType: "address", name: "user", type: "address" },
42
+ { indexed: true, internalType: "address", name: "onBehalfOf", type: "address" },
43
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
44
+ { indexed: true, internalType: "uint16", name: "referralCode", type: "uint16" }
45
+ ],
46
+ name: "Supply",
47
+ type: "event"
48
+ },
49
+ {
50
+ anonymous: false,
51
+ inputs: [
52
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
53
+ { indexed: true, internalType: "address", name: "user", type: "address" },
54
+ { indexed: true, internalType: "address", name: "to", type: "address" },
55
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" }
56
+ ],
57
+ name: "Withdraw",
58
+ type: "event"
59
+ },
60
+ {
61
+ anonymous: false,
62
+ inputs: [
63
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
64
+ { indexed: false, internalType: "address", name: "user", type: "address" },
65
+ { indexed: true, internalType: "address", name: "onBehalfOf", type: "address" },
66
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
67
+ { indexed: false, internalType: "uint8", name: "interestRateMode", type: "uint8" },
68
+ { indexed: false, internalType: "uint256", name: "borrowRate", type: "uint256" },
69
+ { indexed: true, internalType: "uint16", name: "referralCode", type: "uint16" }
70
+ ],
71
+ name: "Borrow",
72
+ type: "event"
73
+ },
74
+ {
75
+ anonymous: false,
76
+ inputs: [
77
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
78
+ { indexed: true, internalType: "address", name: "user", type: "address" },
79
+ { indexed: true, internalType: "address", name: "repayer", type: "address" },
80
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
81
+ { indexed: false, internalType: "bool", name: "useATokens", type: "bool" }
82
+ ],
83
+ name: "Repay",
84
+ type: "event"
85
+ },
86
+ {
87
+ anonymous: false,
88
+ inputs: [
89
+ { indexed: true, internalType: "address", name: "collateralAsset", type: "address" },
90
+ { indexed: true, internalType: "address", name: "debtAsset", type: "address" },
91
+ { indexed: true, internalType: "address", name: "user", type: "address" },
92
+ { indexed: false, internalType: "uint256", name: "debtToCover", type: "uint256" },
93
+ { indexed: false, internalType: "uint256", name: "liquidatedCollateralAmount", type: "uint256" },
94
+ { indexed: false, internalType: "address", name: "liquidator", type: "address" },
95
+ { indexed: false, internalType: "bool", name: "receiveAToken", type: "bool" }
96
+ ],
97
+ name: "LiquidationCall",
98
+ type: "event"
99
+ }
100
+ ]);
101
+ var poolMethodsAbi = Object.freeze([
102
+ {
103
+ inputs: [{ internalType: "address", name: "user", type: "address" }],
104
+ name: "getUserAccountData",
105
+ outputs: [
106
+ { internalType: "uint256", name: "totalCollateralBase", type: "uint256" },
107
+ { internalType: "uint256", name: "totalDebtBase", type: "uint256" },
108
+ { internalType: "uint256", name: "availableBorrowsBase", type: "uint256" },
109
+ { internalType: "uint256", name: "currentLiquidationThreshold", type: "uint256" },
110
+ { internalType: "uint256", name: "ltv", type: "uint256" },
111
+ { internalType: "uint256", name: "healthFactor", type: "uint256" }
112
+ ],
113
+ stateMutability: "view",
114
+ type: "function"
115
+ },
116
+ {
117
+ inputs: [
118
+ { internalType: "address", name: "asset", type: "address" },
119
+ { internalType: "uint256", name: "amount", type: "uint256" },
120
+ { internalType: "address", name: "onBehalfOf", type: "address" },
121
+ { internalType: "uint16", name: "referralCode", type: "uint16" }
122
+ ],
123
+ name: "supply",
124
+ outputs: [],
125
+ stateMutability: "nonpayable",
126
+ type: "function"
127
+ },
128
+ {
129
+ inputs: [
130
+ { internalType: "address", name: "asset", type: "address" },
131
+ { internalType: "uint256", name: "amount", type: "uint256" },
132
+ { internalType: "uint256", name: "interestRateMode", type: "uint256" },
133
+ { internalType: "uint16", name: "referralCode", type: "uint16" },
134
+ { internalType: "address", name: "onBehalfOf", type: "address" }
135
+ ],
136
+ name: "borrow",
137
+ outputs: [],
138
+ stateMutability: "nonpayable",
139
+ type: "function"
140
+ },
141
+ {
142
+ inputs: [
143
+ { internalType: "address", name: "asset", type: "address" },
144
+ { internalType: "uint256", name: "amount", type: "uint256" },
145
+ { internalType: "uint256", name: "interestRateMode", type: "uint256" },
146
+ { internalType: "address", name: "onBehalfOf", type: "address" }
147
+ ],
148
+ name: "repay",
149
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
150
+ stateMutability: "nonpayable",
151
+ type: "function"
152
+ },
153
+ {
154
+ inputs: [
155
+ { internalType: "address", name: "asset", type: "address" },
156
+ { internalType: "uint256", name: "amount", type: "uint256" },
157
+ { internalType: "address", name: "to", type: "address" }
158
+ ],
159
+ name: "withdraw",
160
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
161
+ stateMutability: "nonpayable",
162
+ type: "function"
163
+ },
164
+ {
165
+ inputs: [
166
+ { internalType: "address", name: "asset", type: "address" },
167
+ { internalType: "bool", name: "useAsCollateral", type: "bool" }
168
+ ],
169
+ name: "setUserUseReserveAsCollateral",
170
+ outputs: [],
171
+ stateMutability: "nonpayable",
172
+ type: "function"
173
+ }
174
+ ]);
175
+ var tokens = Object.freeze({
176
+ LINK: {
177
+ [Chains.Sepolia]: "0xf8Fb3713D459D7C1018BD0A49D19b4C44290EBE5"
178
+ }
179
+ });
180
+ var aaveV3 = Object.freeze({
181
+ pool,
182
+ oracle,
183
+ wethGateway,
184
+ eventTopics,
185
+ poolEventsAbi,
186
+ poolMethodsAbi,
187
+ tokens
188
+ });
189
+
190
+ // src/protocols/aerodrome.ts
191
+ var router = {
192
+ [Chains.BaseMainnet]: "0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43"
193
+ };
194
+ var aerodrome = Object.freeze({
195
+ router
196
+ });
197
+
198
+ // src/protocols/common.ts
199
+ var aggregatorV3Abi = Object.freeze([
200
+ {
201
+ inputs: [],
202
+ name: "latestRoundData",
203
+ outputs: [
204
+ { internalType: "uint80", name: "roundId", type: "uint80" },
205
+ { internalType: "int256", name: "answer", type: "int256" },
206
+ { internalType: "uint256", name: "startedAt", type: "uint256" },
207
+ { internalType: "uint256", name: "updatedAt", type: "uint256" },
208
+ { internalType: "uint80", name: "answeredInRound", type: "uint80" }
209
+ ],
210
+ stateMutability: "view",
211
+ type: "function"
212
+ },
213
+ {
214
+ inputs: [],
215
+ name: "decimals",
216
+ outputs: [{ internalType: "uint8", name: "", type: "uint8" }],
217
+ stateMutability: "view",
218
+ type: "function"
219
+ }
220
+ ]);
221
+ var erc4626VaultAbi = Object.freeze([
222
+ {
223
+ inputs: [
224
+ { internalType: "uint256", name: "assets", type: "uint256" },
225
+ { internalType: "address", name: "receiver", type: "address" }
226
+ ],
227
+ name: "deposit",
228
+ outputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
229
+ stateMutability: "nonpayable",
230
+ type: "function"
231
+ },
232
+ {
233
+ inputs: [
234
+ { internalType: "uint256", name: "shares", type: "uint256" },
235
+ { internalType: "address", name: "receiver", type: "address" },
236
+ { internalType: "address", name: "owner", type: "address" }
237
+ ],
238
+ name: "redeem",
239
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
240
+ stateMutability: "nonpayable",
241
+ type: "function"
242
+ },
243
+ {
244
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
245
+ name: "previewRedeem",
246
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
247
+ stateMutability: "view",
248
+ type: "function"
249
+ },
250
+ {
251
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
252
+ name: "convertToAssets",
253
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
254
+ stateMutability: "view",
255
+ type: "function"
256
+ }
257
+ ]);
258
+
259
+ // src/protocols/chainlink.ts
260
+ var ethUsdFeed = {
261
+ [Chains.EthereumMainnet]: "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",
262
+ [Chains.Sepolia]: "0x694AA1769357215DE4FAC081bf1f309aDC325306"
263
+ };
264
+ var btcUsdFeed = {
265
+ [Chains.EthereumMainnet]: "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c"
266
+ };
267
+ var chainlink = Object.freeze({
268
+ ethUsdFeed,
269
+ btcUsdFeed,
270
+ /** Shared AggregatorV3 ABI — works for any Chainlink feed. */
271
+ aggregatorV3Abi
272
+ });
273
+
274
+ // src/protocols/compound-v3.ts
275
+ var cometUsdc = {
276
+ [Chains.EthereumMainnet]: "0xc3d688B66703497DAA19211EEdff47f25384cdc3",
277
+ [Chains.BaseMainnet]: "0xb125E6687d4313864e53df431d5425969c15Eb2F"
278
+ };
279
+ var compoundV3 = Object.freeze({
280
+ cometUsdc
281
+ });
282
+
283
+ // src/protocols/erc20.ts
284
+ var erc20 = Object.freeze({
285
+ approveAbi: Object.freeze([
286
+ {
287
+ inputs: [
288
+ { internalType: "address", name: "spender", type: "address" },
289
+ { internalType: "uint256", name: "amount", type: "uint256" }
290
+ ],
291
+ name: "approve",
292
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
293
+ stateMutability: "nonpayable",
294
+ type: "function"
295
+ }
296
+ ])
297
+ });
298
+
299
+ // src/protocols/ethena.ts
300
+ var susde = {
301
+ [Chains.EthereumMainnet]: "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497"
302
+ };
303
+ var usde = {
304
+ [Chains.EthereumMainnet]: "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3"
305
+ };
306
+ var susdeAbi = Object.freeze([
307
+ {
308
+ inputs: [
309
+ { internalType: "uint256", name: "assets", type: "uint256" },
310
+ { internalType: "address", name: "receiver", type: "address" }
311
+ ],
312
+ name: "deposit",
313
+ outputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
314
+ stateMutability: "nonpayable",
315
+ type: "function"
316
+ },
317
+ {
318
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
319
+ name: "cooldownShares",
320
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
321
+ stateMutability: "nonpayable",
322
+ type: "function"
323
+ },
324
+ {
325
+ inputs: [{ internalType: "address", name: "receiver", type: "address" }],
326
+ name: "unstake",
327
+ outputs: [],
328
+ stateMutability: "nonpayable",
329
+ type: "function"
330
+ },
331
+ {
332
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
333
+ name: "previewRedeem",
334
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
335
+ stateMutability: "view",
336
+ type: "function"
337
+ },
338
+ {
339
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
340
+ name: "convertToAssets",
341
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
342
+ stateMutability: "view",
343
+ type: "function"
344
+ }
345
+ ]);
346
+ var ethena = Object.freeze({
347
+ susde,
348
+ usde,
349
+ susdeAbi
350
+ });
351
+
352
+ // src/protocols/frax-ether.ts
353
+ var sfrxeth = {
354
+ [Chains.EthereumMainnet]: "0xac3E018457B222d93114458476f3E3416Abbe38F"
355
+ };
356
+ var frxeth = {
357
+ [Chains.EthereumMainnet]: "0x5E8422345238F34275888049021821E8E08CAa1f"
358
+ };
359
+ var fraxEther = Object.freeze({
360
+ sfrxeth,
361
+ frxeth,
362
+ /** Standard ERC-4626 surface — sfrxETH conforms exactly. */
363
+ vaultAbi: erc4626VaultAbi
364
+ });
365
+
366
+ // src/protocols/lido.ts
367
+ var wsteth = {
368
+ [Chains.EthereumMainnet]: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
369
+ [Chains.BaseMainnet]: "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"
370
+ };
371
+ var steth = {
372
+ [Chains.EthereumMainnet]: "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84"
373
+ };
374
+ var wstethAbi = Object.freeze([
375
+ {
376
+ inputs: [{ internalType: "uint256", name: "_stETHAmount", type: "uint256" }],
377
+ name: "wrap",
378
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
379
+ stateMutability: "nonpayable",
380
+ type: "function"
381
+ },
382
+ {
383
+ inputs: [{ internalType: "uint256", name: "_wstETHAmount", type: "uint256" }],
384
+ name: "unwrap",
385
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
386
+ stateMutability: "nonpayable",
387
+ type: "function"
388
+ },
389
+ {
390
+ inputs: [{ internalType: "uint256", name: "_wstETHAmount", type: "uint256" }],
391
+ name: "getStETHByWstETH",
392
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
393
+ stateMutability: "view",
394
+ type: "function"
395
+ }
396
+ ]);
397
+ var lido = Object.freeze({
398
+ wsteth,
399
+ steth,
400
+ wstethAbi
401
+ });
402
+
403
+ // src/protocols/morpho.ts
404
+ var morpho = {
405
+ [Chains.EthereumMainnet]: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb",
406
+ [Chains.BaseMainnet]: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb"
407
+ };
408
+ var morphoAbi = Object.freeze([
409
+ {
410
+ inputs: [
411
+ {
412
+ components: [
413
+ { internalType: "address", name: "loanToken", type: "address" },
414
+ { internalType: "address", name: "collateralToken", type: "address" },
415
+ { internalType: "address", name: "oracle", type: "address" },
416
+ { internalType: "address", name: "irm", type: "address" },
417
+ { internalType: "uint256", name: "lltv", type: "uint256" }
418
+ ],
419
+ internalType: "struct MarketParams",
420
+ name: "marketParams",
421
+ type: "tuple"
422
+ },
423
+ { internalType: "uint256", name: "assets", type: "uint256" },
424
+ { internalType: "uint256", name: "shares", type: "uint256" },
425
+ { internalType: "address", name: "onBehalf", type: "address" },
426
+ { internalType: "bytes", name: "data", type: "bytes" }
427
+ ],
428
+ name: "supply",
429
+ outputs: [
430
+ { internalType: "uint256", name: "assetsSupplied", type: "uint256" },
431
+ { internalType: "uint256", name: "sharesSupplied", type: "uint256" }
432
+ ],
433
+ stateMutability: "nonpayable",
434
+ type: "function"
435
+ },
436
+ {
437
+ inputs: [
438
+ {
439
+ components: [
440
+ { internalType: "address", name: "loanToken", type: "address" },
441
+ { internalType: "address", name: "collateralToken", type: "address" },
442
+ { internalType: "address", name: "oracle", type: "address" },
443
+ { internalType: "address", name: "irm", type: "address" },
444
+ { internalType: "uint256", name: "lltv", type: "uint256" }
445
+ ],
446
+ internalType: "struct MarketParams",
447
+ name: "marketParams",
448
+ type: "tuple"
449
+ },
450
+ { internalType: "uint256", name: "assets", type: "uint256" },
451
+ { internalType: "uint256", name: "shares", type: "uint256" },
452
+ { internalType: "address", name: "onBehalf", type: "address" },
453
+ { internalType: "address", name: "receiver", type: "address" }
454
+ ],
455
+ name: "borrow",
456
+ outputs: [
457
+ { internalType: "uint256", name: "assetsBorrowed", type: "uint256" },
458
+ { internalType: "uint256", name: "sharesBorrowed", type: "uint256" }
459
+ ],
460
+ stateMutability: "nonpayable",
461
+ type: "function"
462
+ },
463
+ {
464
+ inputs: [
465
+ { internalType: "bytes32", name: "id", type: "bytes32" },
466
+ { internalType: "address", name: "user", type: "address" }
467
+ ],
468
+ name: "position",
469
+ outputs: [
470
+ { internalType: "uint256", name: "supplyShares", type: "uint256" },
471
+ { internalType: "uint128", name: "borrowShares", type: "uint128" },
472
+ { internalType: "uint128", name: "collateral", type: "uint128" }
473
+ ],
474
+ stateMutability: "view",
475
+ type: "function"
476
+ }
477
+ ]);
478
+ var morphoBlue = Object.freeze({
479
+ morpho,
480
+ morphoAbi
481
+ });
482
+
483
+ // src/protocols/rocket-pool.ts
484
+ var reth = {
485
+ [Chains.EthereumMainnet]: "0xae78736Cd615f374D3085123A210448E74Fc6393",
486
+ [Chains.BaseMainnet]: "0xB6fe221Fe9EeF5aBa221c348bA20A1Bf5e73624c"
487
+ };
488
+ var rethAbi = Object.freeze([
489
+ {
490
+ inputs: [{ internalType: "uint256", name: "_rethAmount", type: "uint256" }],
491
+ name: "burn",
492
+ outputs: [],
493
+ stateMutability: "nonpayable",
494
+ type: "function"
495
+ },
496
+ {
497
+ inputs: [],
498
+ name: "getExchangeRate",
499
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
500
+ stateMutability: "view",
501
+ type: "function"
502
+ },
503
+ {
504
+ inputs: [{ internalType: "uint256", name: "_rethAmount", type: "uint256" }],
505
+ name: "getEthValue",
506
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
507
+ stateMutability: "view",
508
+ type: "function"
509
+ }
510
+ ]);
511
+ var rocketPool = Object.freeze({
512
+ reth,
513
+ rethAbi
514
+ });
515
+
516
+ // src/protocols/sky.ts
517
+ var sdai = {
518
+ [Chains.EthereumMainnet]: "0x83F20F44975D03b1b09e64809B757c47f942BEeA"
519
+ };
520
+ var sky = Object.freeze({
521
+ sdai,
522
+ /** Standard ERC-4626 surface — sDAI conforms exactly. */
523
+ vaultAbi: erc4626VaultAbi
524
+ });
525
+
526
+ // src/protocols/spark.ts
527
+ var pool2 = {
528
+ [Chains.EthereumMainnet]: "0xC13e21B648A5Ee794902342038FF3aDAB66BE987"
529
+ };
530
+ var spark = Object.freeze({
531
+ pool: pool2
532
+ });
533
+
534
+ // src/protocols/superfluid.ts
535
+ var cfaForwarder = {
536
+ [Chains.EthereumMainnet]: "0xcfA132E353cB4E398080B9700609bb008eceB125",
537
+ [Chains.BaseMainnet]: "0xcfA132E353cB4E398080B9700609bb008eceB125"
538
+ };
539
+ var cfaForwarderAbi = Object.freeze([
540
+ {
541
+ inputs: [
542
+ { internalType: "address", name: "token", type: "address" },
543
+ { internalType: "address", name: "receiver", type: "address" },
544
+ { internalType: "int96", name: "flowrate", type: "int96" }
545
+ ],
546
+ name: "setFlowrate",
547
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
548
+ stateMutability: "nonpayable",
549
+ type: "function"
550
+ },
551
+ {
552
+ inputs: [
553
+ { internalType: "address", name: "token", type: "address" },
554
+ { internalType: "address", name: "sender", type: "address" },
555
+ { internalType: "address", name: "receiver", type: "address" },
556
+ { internalType: "int96", name: "flowrate", type: "int96" },
557
+ { internalType: "bytes", name: "userData", type: "bytes" }
558
+ ],
559
+ name: "createFlow",
560
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
561
+ stateMutability: "nonpayable",
562
+ type: "function"
563
+ }
564
+ ]);
565
+ var superfluid = Object.freeze({
566
+ cfaForwarder,
567
+ cfaForwarderAbi
568
+ });
569
+
570
+ // src/protocols/uniswap-v3.ts
571
+ var swapRouter02 = {
572
+ [Chains.EthereumMainnet]: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",
573
+ [Chains.Sepolia]: "0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E",
574
+ [Chains.BaseMainnet]: "0x2626664c2603336E57B271c5C0b26F421741e481",
575
+ [Chains.BaseSepolia]: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4"
576
+ };
577
+ var quoterV2 = {
578
+ [Chains.EthereumMainnet]: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
579
+ [Chains.Sepolia]: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",
580
+ [Chains.BaseMainnet]: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
581
+ [Chains.BaseSepolia]: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27"
582
+ };
583
+ var permit2 = {
584
+ [Chains.EthereumMainnet]: "0x000000000022d473030F116dDEE9F6B43aC78BA3",
585
+ [Chains.Sepolia]: "0x000000000022d473030F116dDEE9F6B43aC78BA3",
586
+ [Chains.BaseMainnet]: "0x000000000022d473030F116dDEE9F6B43aC78BA3",
587
+ [Chains.BaseSepolia]: "0x000000000022d473030F116dDEE9F6B43aC78BA3"
588
+ };
589
+ var factory = {
590
+ [Chains.EthereumMainnet]: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
591
+ [Chains.Sepolia]: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c",
592
+ [Chains.BaseMainnet]: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
593
+ [Chains.BaseSepolia]: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24"
594
+ };
595
+ var nonfungiblePositionManager = {
596
+ [Chains.EthereumMainnet]: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
597
+ [Chains.Sepolia]: "0x1238536071E1c677A632429e3655c799b22cDA52",
598
+ [Chains.BaseMainnet]: "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
599
+ [Chains.BaseSepolia]: "0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2"
600
+ };
601
+ var universalRouter = {
602
+ [Chains.EthereumMainnet]: "0x66a9893cc07d91d95644aedd05d03f95e1dba8af",
603
+ [Chains.Sepolia]: "0x3A9D48AB9751398BbFa63ad67599Bb04e4BdF98b",
604
+ [Chains.BaseMainnet]: "0x6ff5693b99212da76ad316178a184ab56d299b43",
605
+ [Chains.BaseSepolia]: "0x492e6456d9528771018deb9e87ef7750ef184104"
606
+ };
607
+ var swapRouter02Abi = Object.freeze([
608
+ {
609
+ inputs: [
610
+ {
611
+ components: [
612
+ { internalType: "address", name: "tokenIn", type: "address" },
613
+ { internalType: "address", name: "tokenOut", type: "address" },
614
+ { internalType: "uint24", name: "fee", type: "uint24" },
615
+ { internalType: "address", name: "recipient", type: "address" },
616
+ { internalType: "uint256", name: "amountIn", type: "uint256" },
617
+ { internalType: "uint256", name: "amountOutMinimum", type: "uint256" },
618
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" }
619
+ ],
620
+ internalType: "struct IV3SwapRouter.ExactInputSingleParams",
621
+ name: "params",
622
+ type: "tuple"
623
+ }
624
+ ],
625
+ name: "exactInputSingle",
626
+ outputs: [{ internalType: "uint256", name: "amountOut", type: "uint256" }],
627
+ stateMutability: "payable",
628
+ type: "function"
629
+ },
630
+ {
631
+ inputs: [
632
+ {
633
+ components: [
634
+ { internalType: "address", name: "tokenIn", type: "address" },
635
+ { internalType: "address", name: "tokenOut", type: "address" },
636
+ { internalType: "uint24", name: "fee", type: "uint24" },
637
+ { internalType: "address", name: "recipient", type: "address" },
638
+ { internalType: "uint256", name: "amountOut", type: "uint256" },
639
+ { internalType: "uint256", name: "amountInMaximum", type: "uint256" },
640
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" }
641
+ ],
642
+ internalType: "struct IV3SwapRouter.ExactOutputSingleParams",
643
+ name: "params",
644
+ type: "tuple"
645
+ }
646
+ ],
647
+ name: "exactOutputSingle",
648
+ outputs: [{ internalType: "uint256", name: "amountIn", type: "uint256" }],
649
+ stateMutability: "payable",
650
+ type: "function"
651
+ }
652
+ ]);
653
+ var quoterV2Abi = Object.freeze([
654
+ {
655
+ inputs: [
656
+ {
657
+ components: [
658
+ { internalType: "address", name: "tokenIn", type: "address" },
659
+ { internalType: "address", name: "tokenOut", type: "address" },
660
+ { internalType: "uint256", name: "amountIn", type: "uint256" },
661
+ { internalType: "uint24", name: "fee", type: "uint24" },
662
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" }
663
+ ],
664
+ internalType: "struct IQuoterV2.QuoteExactInputSingleParams",
665
+ name: "params",
666
+ type: "tuple"
667
+ }
668
+ ],
669
+ name: "quoteExactInputSingle",
670
+ outputs: [
671
+ { internalType: "uint256", name: "amountOut", type: "uint256" },
672
+ { internalType: "uint160", name: "sqrtPriceX96After", type: "uint160" },
673
+ { internalType: "uint32", name: "initializedTicksCrossed", type: "uint32" },
674
+ { internalType: "uint256", name: "gasEstimate", type: "uint256" }
675
+ ],
676
+ stateMutability: "nonpayable",
677
+ type: "function"
678
+ }
679
+ ]);
680
+ var factoryAbi = Object.freeze([
681
+ {
682
+ inputs: [
683
+ { internalType: "address", name: "tokenA", type: "address" },
684
+ { internalType: "address", name: "tokenB", type: "address" },
685
+ { internalType: "uint24", name: "fee", type: "uint24" }
686
+ ],
687
+ name: "getPool",
688
+ outputs: [{ internalType: "address", name: "pool", type: "address" }],
689
+ stateMutability: "view",
690
+ type: "function"
691
+ }
692
+ ]);
693
+ var tokens2 = Object.freeze({
694
+ WETH: {
695
+ [Chains.Sepolia]: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
696
+ [Chains.EthereumMainnet]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
697
+ [Chains.BaseMainnet]: "0x4200000000000000000000000000000000000006",
698
+ [Chains.BaseSepolia]: "0x4200000000000000000000000000000000000006"
699
+ },
700
+ USDC: {
701
+ [Chains.Sepolia]: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
702
+ [Chains.EthereumMainnet]: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
703
+ [Chains.BaseMainnet]: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
704
+ [Chains.BaseSepolia]: "0x036CbD53842c5426634e7929541eC2318f3dCF7e"
705
+ }
706
+ });
707
+ var uniswapV3 = Object.freeze({
708
+ swapRouter02,
709
+ quoterV2,
710
+ permit2,
711
+ factory,
712
+ nonfungiblePositionManager,
713
+ universalRouter,
714
+ swapRouter02Abi,
715
+ quoterV2Abi,
716
+ factoryAbi,
717
+ tokens: tokens2
718
+ });
719
+
720
+ // src/protocols/wrapped.ts
721
+ var weth = {
722
+ [Chains.EthereumMainnet]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
723
+ [Chains.Sepolia]: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
724
+ [Chains.BaseMainnet]: "0x4200000000000000000000000000000000000006",
725
+ [Chains.BaseSepolia]: "0x4200000000000000000000000000000000000006"
726
+ };
727
+ var wethAbi = Object.freeze([
728
+ {
729
+ inputs: [],
730
+ name: "deposit",
731
+ outputs: [],
732
+ stateMutability: "payable",
733
+ type: "function"
734
+ },
735
+ {
736
+ inputs: [{ internalType: "uint256", name: "wad", type: "uint256" }],
737
+ name: "withdraw",
738
+ outputs: [],
739
+ stateMutability: "nonpayable",
740
+ type: "function"
741
+ },
742
+ {
743
+ inputs: [
744
+ { internalType: "address", name: "guy", type: "address" },
745
+ { internalType: "uint256", name: "wad", type: "uint256" }
746
+ ],
747
+ name: "approve",
748
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
749
+ stateMutability: "nonpayable",
750
+ type: "function"
751
+ },
752
+ {
753
+ inputs: [{ internalType: "address", name: "", type: "address" }],
754
+ name: "balanceOf",
755
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
756
+ stateMutability: "view",
757
+ type: "function"
758
+ }
759
+ ]);
760
+ var wrapped = Object.freeze({
761
+ weth,
762
+ wethAbi
763
+ });
764
+
765
+ // src/protocols/index.ts
766
+ var Protocols = Object.freeze({
767
+ aaveV3,
768
+ aerodrome,
769
+ chainlink,
770
+ compoundV3,
771
+ erc20,
772
+ ethena,
773
+ fraxEther,
774
+ lido,
775
+ morphoBlue,
776
+ rocketPool,
777
+ sky,
778
+ spark,
779
+ superfluid,
780
+ uniswapV3,
781
+ wrapped
782
+ });
783
+ export {
784
+ Chains,
785
+ Protocols,
786
+ aaveV3,
787
+ aerodrome,
788
+ aggregatorV3Abi,
789
+ chainlink,
790
+ compoundV3,
791
+ erc20,
792
+ erc4626VaultAbi,
793
+ ethena,
794
+ fraxEther,
795
+ lido,
796
+ morphoBlue,
797
+ rocketPool,
798
+ sky,
799
+ spark,
800
+ superfluid,
801
+ uniswapV3,
802
+ wrapped
803
+ };