@pendle/sdk-boros 1.0.12 → 1.0.13-cross-deposit-2

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 (98) hide show
  1. package/dist/addresses.d.ts +11 -1
  2. package/dist/addresses.js +23 -1
  3. package/dist/addresses.js.map +1 -1
  4. package/dist/backend/secrettune/BorosCoreSDK.d.ts +257 -21
  5. package/dist/backend/secrettune/BorosCoreSDK.js +125 -7
  6. package/dist/backend/secrettune/BorosCoreSDK.js.map +1 -1
  7. package/dist/backend/secrettune/BorosSendTxsBotSDK.d.ts +10 -4
  8. package/dist/backend/secrettune/BorosSendTxsBotSDK.js +1 -1
  9. package/dist/backend/secrettune/BorosSendTxsBotSDK.js.map +1 -1
  10. package/dist/backend/secrettune/PendleV2SDK.d.ts +2281 -0
  11. package/dist/backend/secrettune/PendleV2SDK.js +970 -0
  12. package/dist/backend/secrettune/PendleV2SDK.js.map +1 -0
  13. package/dist/backend/secrettune/module.d.ts +6 -0
  14. package/dist/backend/secrettune/module.js +25 -0
  15. package/dist/backend/secrettune/module.js.map +1 -1
  16. package/dist/common/chainId.d.ts +12 -0
  17. package/dist/common/chainId.js +17 -0
  18. package/dist/common/chainId.js.map +1 -0
  19. package/dist/contracts/abis/viemAbiDepositBoxFactory.d.ts +75 -0
  20. package/dist/contracts/abis/viemAbiDepositBoxFactory.js +103 -0
  21. package/dist/contracts/abis/viemAbiDepositBoxFactory.js.map +1 -0
  22. package/dist/contracts/abis/viemAbiRouter.d.ts +1983 -0
  23. package/dist/contracts/abis/viemAbiRouter.js +2549 -0
  24. package/dist/contracts/abis/viemAbiRouter.js.map +1 -0
  25. package/dist/contracts/contracts.factory.d.ts +9 -3
  26. package/dist/contracts/contracts.factory.js +16 -4
  27. package/dist/contracts/contracts.factory.js.map +1 -1
  28. package/dist/contracts/deposit-box-factory.d.ts +86 -0
  29. package/dist/contracts/deposit-box-factory.js +16 -0
  30. package/dist/contracts/deposit-box-factory.js.map +1 -0
  31. package/dist/contracts/erc20.d.ts +158 -0
  32. package/dist/contracts/erc20.js +52 -0
  33. package/dist/contracts/erc20.js.map +1 -0
  34. package/dist/contracts/router.d.ts +1987 -0
  35. package/dist/contracts/router.js +12 -0
  36. package/dist/contracts/router.js.map +1 -0
  37. package/dist/entities/crossChainDeposit/AggregatorHelper.d.ts +119 -0
  38. package/dist/entities/crossChainDeposit/AggregatorHelper.js +26 -0
  39. package/dist/entities/crossChainDeposit/AggregatorHelper.js.map +1 -0
  40. package/dist/entities/crossChainDeposit/AggregatorHelperErrors.d.ts +83 -0
  41. package/dist/entities/crossChainDeposit/AggregatorHelperErrors.js +116 -0
  42. package/dist/entities/crossChainDeposit/AggregatorHelperErrors.js.map +1 -0
  43. package/dist/entities/crossChainDeposit/Depositor.d.ts +32 -0
  44. package/dist/entities/crossChainDeposit/Depositor.js +67 -0
  45. package/dist/entities/crossChainDeposit/Depositor.js.map +1 -0
  46. package/dist/entities/crossChainDeposit/Withdrawer.d.ts +28 -0
  47. package/dist/entities/crossChainDeposit/Withdrawer.js +59 -0
  48. package/dist/entities/crossChainDeposit/Withdrawer.js.map +1 -0
  49. package/dist/entities/crossChainDeposit/aggregators/Boros/BorosHelper.d.ts +51 -0
  50. package/dist/entities/crossChainDeposit/aggregators/Boros/BorosHelper.js +268 -0
  51. package/dist/entities/crossChainDeposit/aggregators/Boros/BorosHelper.js.map +1 -0
  52. package/dist/entities/crossChainDeposit/aggregators/Boros/index.d.ts +2 -0
  53. package/dist/entities/crossChainDeposit/aggregators/Boros/index.js +19 -0
  54. package/dist/entities/crossChainDeposit/aggregators/Boros/index.js.map +1 -0
  55. package/dist/entities/crossChainDeposit/aggregators/Boros/types.d.ts +10 -0
  56. package/dist/entities/crossChainDeposit/aggregators/Boros/types.js +3 -0
  57. package/dist/entities/crossChainDeposit/aggregators/Boros/types.js.map +1 -0
  58. package/dist/entities/crossChainDeposit/aggregators/Lifi/index.d.ts +52 -0
  59. package/dist/entities/crossChainDeposit/aggregators/Lifi/index.js +231 -0
  60. package/dist/entities/crossChainDeposit/aggregators/Lifi/index.js.map +1 -0
  61. package/dist/entities/crossChainDeposit/aggregators/Lifi/types.d.ts +186 -0
  62. package/dist/entities/crossChainDeposit/aggregators/Lifi/types.js +28 -0
  63. package/dist/entities/crossChainDeposit/aggregators/Lifi/types.js.map +1 -0
  64. package/dist/entities/crossChainDeposit/aggregators/Pendle/index.d.ts +54 -0
  65. package/dist/entities/crossChainDeposit/aggregators/Pendle/index.js +250 -0
  66. package/dist/entities/crossChainDeposit/aggregators/Pendle/index.js.map +1 -0
  67. package/dist/entities/crossChainDeposit/helpers/TokenHelper.d.ts +29 -0
  68. package/dist/entities/crossChainDeposit/helpers/TokenHelper.js +116 -0
  69. package/dist/entities/crossChainDeposit/helpers/TokenHelper.js.map +1 -0
  70. package/dist/entities/crossChainDeposit/helpers/utils.d.ts +4 -0
  71. package/dist/entities/crossChainDeposit/helpers/utils.js +25 -0
  72. package/dist/entities/crossChainDeposit/helpers/utils.js.map +1 -0
  73. package/dist/entities/crossChainDeposit/index.d.ts +3 -0
  74. package/dist/entities/crossChainDeposit/index.js +20 -0
  75. package/dist/entities/crossChainDeposit/index.js.map +1 -0
  76. package/dist/entities/index.d.ts +2 -0
  77. package/dist/entities/index.js +2 -0
  78. package/dist/entities/index.js.map +1 -1
  79. package/dist/entities/token/Token.d.ts +34 -0
  80. package/dist/entities/token/Token.js +65 -0
  81. package/dist/entities/token/Token.js.map +1 -0
  82. package/dist/entities/token/index.d.ts +1 -0
  83. package/dist/entities/token/index.js +18 -0
  84. package/dist/entities/token/index.js.map +1 -0
  85. package/dist/errors/PendleSdkError.d.ts +7 -0
  86. package/dist/errors/PendleSdkError.js +15 -0
  87. package/dist/errors/PendleSdkError.js.map +1 -0
  88. package/dist/index.d.ts +1 -1
  89. package/dist/index.js +1 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/types/common.d.ts +24 -0
  92. package/dist/utils/signing/index.d.ts +1 -1
  93. package/dist/utils/signing/index.js +2 -1
  94. package/dist/utils/signing/index.js.map +1 -1
  95. package/dist/utils/signing/sensitive.d.ts +2 -1
  96. package/dist/utils/signing/sensitive.js +29 -0
  97. package/dist/utils/signing/sensitive.js.map +1 -1
  98. package/package.json +1 -1
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BorosLzBridgeHelper = exports.BorosWithdrawResult = exports.BorosLzBridgeResult = exports.LAYER_ZERO_SCAN_API = void 0;
13
+ const axios_1 = __importDefault(require("axios"));
14
+ const viem_1 = require("viem");
15
+ const chains_1 = require("viem/chains");
16
+ const addresses_1 = require("../../../../addresses");
17
+ const cacheDecorators_1 = require("../../../../common/cacheDecorators");
18
+ const constants_1 = require("../../../../multicall/constants");
19
+ const token_1 = require("../../../token");
20
+ const AggregatorHelper_1 = require("../../AggregatorHelper");
21
+ const AggregatorHelperErrors_1 = require("../../AggregatorHelperErrors");
22
+ const utils_1 = require("../../helpers/utils");
23
+ exports.LAYER_ZERO_SCAN_API = 'https://scan.layerzero-api.com/v1';
24
+ class BorosLzBridgeResult {
25
+ routes = [];
26
+ rawResult;
27
+ req;
28
+ constructor(params) {
29
+ const { req, res, tokenLookupTable } = params;
30
+ this.req = req;
31
+ this.rawResult = res;
32
+ const fromToken = tokenLookupTable.lookup(chains_1.bsc.id, res.fromToken, true);
33
+ const toToken = tokenLookupTable.lookup(chains_1.arbitrum.id, res.toToken, true);
34
+ this.routes = [
35
+ {
36
+ id: 'boros',
37
+ inputTokenAmount: new token_1.TokenAmount(fromToken, BigInt(res.fromAmount)),
38
+ outputTokenAmount: new token_1.TokenAmount(toToken, BigInt(res.toAmount)),
39
+ minOutputTokenAmount: new token_1.TokenAmount(toToken, BigInt(res.minToAmount)),
40
+ steps: [
41
+ {
42
+ fromTokenAmount: new token_1.TokenAmount(fromToken, BigInt(res.fromAmount)),
43
+ toTokenAmount: new token_1.TokenAmount(toToken, BigInt(res.toAmount)),
44
+ executionDuration: 20,
45
+ feeCosts: res.feeCosts.map((feeCost) => ({
46
+ name: feeCost.name,
47
+ amountUSD: Number(feeCost.amountUsd),
48
+ })),
49
+ gasCosts: res.gasCosts.flatMap((gasCost) => {
50
+ const token = tokenLookupTable.lookup(gasCost.chainId, gasCost.token);
51
+ if (token == null) {
52
+ return [];
53
+ }
54
+ return {
55
+ tokenAmount: new token_1.TokenAmount(token, BigInt(gasCost.amount)),
56
+ amountUSD: Number(gasCost.amountUsd),
57
+ };
58
+ }),
59
+ tool: {
60
+ key: 'boros',
61
+ name: 'LayerZero',
62
+ logoURI: 'https://storage.googleapis.com/prod-pendle-bucket-a/images/assets/pro/ea33e392-1876-46a5-b7ce-c8434b5a7e71.svg',
63
+ },
64
+ },
65
+ ],
66
+ },
67
+ ];
68
+ }
69
+ getAggregatorName() {
70
+ return AggregatorHelper_1.AggregatorName.BOROS;
71
+ }
72
+ selectRoute() {
73
+ return this.rawResult;
74
+ }
75
+ async getRouteData() {
76
+ (0, utils_1.ensureDepositBoxAddress)(this.req.fromAddress, this.req.boxId, this.rawResult.tx.to);
77
+ return {
78
+ transferData: {
79
+ aggregatorName: AggregatorHelper_1.AggregatorName.BOROS,
80
+ approvalAddress: (0, addresses_1.toAddress)(this.rawResult.tx.to),
81
+ calldata: this.rawResult.tx.calldata,
82
+ value: BigInt(this.rawResult.tx.value),
83
+ from: (0, addresses_1.toAddress)(this.rawResult.tx.from),
84
+ to: (0, addresses_1.toAddress)(this.rawResult.tx.to),
85
+ chainId: chains_1.bsc.id,
86
+ },
87
+ swapData: {
88
+ tokenSpent: (0, addresses_1.toAddress)(this.req.toToken),
89
+ amountSpent: BigInt(this.rawResult.toAmount),
90
+ minAmountSpent: BigInt(this.rawResult.minToAmount),
91
+ extRouter: viem_1.zeroAddress,
92
+ extCalldata: '0x',
93
+ },
94
+ };
95
+ }
96
+ }
97
+ exports.BorosLzBridgeResult = BorosLzBridgeResult;
98
+ class BorosWithdrawResult {
99
+ routes = [];
100
+ rawResult;
101
+ req;
102
+ constructor(params) {
103
+ const { req, res, tokenLookupTable } = params;
104
+ this.req = req;
105
+ this.rawResult = res;
106
+ const fromToken = tokenLookupTable.lookup(chains_1.arbitrum.id, res.fromToken, true);
107
+ const toToken = tokenLookupTable.lookup(chains_1.bsc.id, res.toToken, true);
108
+ this.routes = [
109
+ {
110
+ id: 'boros',
111
+ inputTokenAmount: new token_1.TokenAmount(fromToken, BigInt(res.fromAmount)),
112
+ outputTokenAmount: new token_1.TokenAmount(toToken, BigInt(res.toAmount)),
113
+ minOutputTokenAmount: new token_1.TokenAmount(toToken, BigInt(res.minToAmount)),
114
+ steps: [
115
+ {
116
+ fromTokenAmount: new token_1.TokenAmount(fromToken, BigInt(res.fromAmount)),
117
+ toTokenAmount: new token_1.TokenAmount(toToken, BigInt(res.toAmount)),
118
+ executionDuration: 20,
119
+ feeCosts: res.feeCosts.map((feeCost) => ({
120
+ name: feeCost.name,
121
+ amountUSD: Number(feeCost.amountUsd),
122
+ })),
123
+ gasCosts: res.gasCosts.flatMap((gasCost) => {
124
+ const token = tokenLookupTable.lookup(gasCost.chainId, gasCost.token);
125
+ if (token == null) {
126
+ return [];
127
+ }
128
+ return {
129
+ tokenAmount: new token_1.TokenAmount(token, BigInt(gasCost.amount)),
130
+ amountUSD: Number(gasCost.amountUsd),
131
+ };
132
+ }),
133
+ tool: {
134
+ key: 'boros',
135
+ name: 'LayerZero',
136
+ logoURI: 'https://storage.googleapis.com/prod-pendle-bucket-a/images/assets/pro/ea33e392-1876-46a5-b7ce-c8434b5a7e71.svg',
137
+ },
138
+ },
139
+ ],
140
+ },
141
+ ];
142
+ }
143
+ getAggregatorName() {
144
+ return AggregatorHelper_1.AggregatorName.BOROS;
145
+ }
146
+ selectRoute() {
147
+ return this.rawResult;
148
+ }
149
+ async getRouteData(_routeId) {
150
+ return {
151
+ transferData: {
152
+ aggregatorName: AggregatorHelper_1.AggregatorName.BOROS,
153
+ approvalAddress: (0, addresses_1.toAddress)(this.rawResult.tx.to),
154
+ calldata: this.rawResult.tx.calldata,
155
+ value: BigInt(this.rawResult.tx.value),
156
+ from: (0, addresses_1.toAddress)(this.rawResult.tx.from),
157
+ to: (0, addresses_1.toAddress)(this.rawResult.tx.to),
158
+ chainId: chains_1.arbitrum.id,
159
+ },
160
+ };
161
+ }
162
+ }
163
+ exports.BorosWithdrawResult = BorosWithdrawResult;
164
+ class BorosLzBridgeHelper {
165
+ borosCoreSdk;
166
+ tokenHelper;
167
+ layerZeroApiUrl;
168
+ aggregatorName = AggregatorHelper_1.AggregatorName.BOROS;
169
+ axios;
170
+ constructor(borosCoreSdk, tokenHelper, layerZeroApiUrl = exports.LAYER_ZERO_SCAN_API) {
171
+ this.borosCoreSdk = borosCoreSdk;
172
+ this.tokenHelper = tokenHelper;
173
+ this.layerZeroApiUrl = layerZeroApiUrl;
174
+ this.axios = axios_1.default.create();
175
+ }
176
+ async getChains() {
177
+ return [
178
+ {
179
+ chainId: chains_1.bsc.id,
180
+ name: 'Binance Smart Chain',
181
+ key: 'bsc',
182
+ coin: 'BNB',
183
+ logoURI: 'https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/chains/bsc.svg',
184
+ },
185
+ ];
186
+ }
187
+ async getTokenLookupTable() {
188
+ return this.tokenHelper.getTokenLookupTable();
189
+ }
190
+ async getRouteStatus(txHash) {
191
+ try {
192
+ let lzData;
193
+ try {
194
+ const response = await this.axios.get(`${this.layerZeroApiUrl}/messages/tx/${txHash}`);
195
+ lzData = response.data;
196
+ }
197
+ catch (lzError) {
198
+ if (axios_1.default.isAxiosError(lzError) && lzError.response?.status === 404) {
199
+ return AggregatorHelper_1.AggregatorRouteStatus.PENDING;
200
+ }
201
+ throw lzError;
202
+ }
203
+ switch (lzData.data[0].status.name) {
204
+ case 'DELIVERED':
205
+ return AggregatorHelper_1.AggregatorRouteStatus.DONE;
206
+ case 'FAILED':
207
+ return AggregatorHelper_1.AggregatorRouteStatus.FAILED;
208
+ case 'UNKNOWN':
209
+ return AggregatorHelper_1.AggregatorRouteStatus.NOT_FOUND;
210
+ case 'PAYLOAD_STORED':
211
+ case 'CONFIRMING':
212
+ case 'INFLIGHT':
213
+ return AggregatorHelper_1.AggregatorRouteStatus.PENDING;
214
+ }
215
+ }
216
+ catch (error) {
217
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.BOROS, error, [500, 502, 503, 504], 'getRouteStatus', txHash, () => undefined);
218
+ }
219
+ }
220
+ async getLayerZeroStatus(txHash) {
221
+ const response = await this.axios.get(`${this.layerZeroApiUrl}/messages/tx/${txHash}`);
222
+ return response.data;
223
+ }
224
+ async quoteDeposit(params) {
225
+ const req = {
226
+ fromToken: params.fromToken,
227
+ toToken: params.toToken,
228
+ amount: params.fromAmount.toString(),
229
+ fromAddress: params.fromAddress,
230
+ boxId: params.boxId,
231
+ };
232
+ try {
233
+ const [{ data }, tokenLookupTable] = await Promise.all([
234
+ this.borosCoreSdk.depositBox.depositBoxControllerQuoteBscBridgeV2(req),
235
+ this.getTokenLookupTable(),
236
+ ]);
237
+ return new BorosLzBridgeResult({ req, res: data, tokenLookupTable });
238
+ }
239
+ catch (error) {
240
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.BOROS, error, [500, 502, 503, 504], 'quote', req, () => undefined);
241
+ }
242
+ }
243
+ async quoteWithdraw(params) {
244
+ const tokenLookupTable = await this.getTokenLookupTable();
245
+ const tokenId = tokenLookupTable.lookupTokenId(chains_1.arbitrum.id, params.fromToken);
246
+ const req = {
247
+ fromAddress: params.fromAddress,
248
+ tokenId,
249
+ amount: params.fromAmount.toString(),
250
+ toAddress: params.fromAddress,
251
+ };
252
+ try {
253
+ const { data } = await this.borosCoreSdk.depositBox.depositBoxControllerQuoteWithdrawBsc(req);
254
+ return new BorosWithdrawResult({ req: params, res: data, tokenLookupTable });
255
+ }
256
+ catch (error) {
257
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.BOROS, error, [500, 502, 503, 504], 'quoteWithdraw', req, () => undefined);
258
+ }
259
+ }
260
+ }
261
+ exports.BorosLzBridgeHelper = BorosLzBridgeHelper;
262
+ __decorate([
263
+ (0, cacheDecorators_1.GlobalCache)({
264
+ generateLookupKey: () => 'BorosLzBridgeHelper.getTokenLookupTable',
265
+ ttl_ms: constants_1.MILLISECONDS_IN_A_MINUTE * 10,
266
+ })
267
+ ], BorosLzBridgeHelper.prototype, "getTokenLookupTable", null);
268
+ //# sourceMappingURL=BorosHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BorosHelper.js","sourceRoot":"","sources":["../../../../../src/entities/crossChainDeposit/aggregators/Boros/BorosHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './BorosHelper';
2
+ export * from './types';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./BorosHelper"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/crossChainDeposit/aggregators/Boros/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,0CAAwB"}
@@ -0,0 +1,10 @@
1
+ export type LayerZeroMessageStatus = 'UNKNOWN' | 'CONFIRMING' | 'INFLIGHT' | 'DELIVERED' | 'FAILED' | 'PAYLOAD_STORED';
2
+ export type LayerZeroMessageResponse = {
3
+ data: [
4
+ {
5
+ status: {
6
+ name: LayerZeroMessageStatus;
7
+ };
8
+ }
9
+ ];
10
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/entities/crossChainDeposit/aggregators/Boros/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import { Hex } from 'viem';
2
+ import { DepositBoxFactoryContract } from '../../../../contracts/deposit-box-factory';
3
+ import { AggregatorTransferData, AggregatorHelper, AggregatorName, AggregatorResult, AggregatorRoute, AggregatorRouteStatus, AggregatorSwapData, QuoteDepositParams, QuoteWithdrawParams } from '../../AggregatorHelper';
4
+ import { LifiGetRoutesRequest, LifiGetRoutesResponse, LifiGetRoutesStep } from './types';
5
+ export declare const LIFI_API = "https://li.quest/v1";
6
+ export declare class LifiAggregatorResult implements AggregatorResult {
7
+ private readonly aggregatorHelper;
8
+ routes: AggregatorRoute[];
9
+ private rawResult;
10
+ private req;
11
+ constructor(params: {
12
+ req: LifiGetRoutesRequest;
13
+ res: LifiGetRoutesResponse;
14
+ aggregatorHelper: LifiAggregatorHelper;
15
+ });
16
+ private isValidRoute;
17
+ getAggregatorName(): AggregatorName;
18
+ getRouteData: (routeId: string) => Promise<{
19
+ transferData: AggregatorTransferData;
20
+ swapData: AggregatorSwapData;
21
+ }>;
22
+ }
23
+ export declare class LifiWithdrawResult implements AggregatorResult {
24
+ private readonly aggregatorHelper;
25
+ routes: AggregatorRoute[];
26
+ private rawResult;
27
+ private req;
28
+ constructor(params: {
29
+ req: LifiGetRoutesRequest;
30
+ res: LifiGetRoutesResponse;
31
+ aggregatorHelper: LifiAggregatorHelper;
32
+ });
33
+ private isValidRoute;
34
+ getAggregatorName(): AggregatorName;
35
+ getRouteData: (routeId: string) => Promise<{
36
+ transferData: AggregatorTransferData;
37
+ }>;
38
+ }
39
+ export declare class LifiAggregatorHelper implements AggregatorHelper {
40
+ private readonly depositBoxFactoryContract;
41
+ private readonly apiUrl;
42
+ aggregatorName: AggregatorName;
43
+ private readonly axios;
44
+ constructor(depositBoxFactoryContract: DepositBoxFactoryContract, apiUrl?: string);
45
+ quoteDeposit(params: QuoteDepositParams): Promise<LifiAggregatorResult>;
46
+ quoteWithdraw(params: QuoteWithdrawParams): Promise<LifiWithdrawResult>;
47
+ quote(callParams: LifiGetRoutesRequest): Promise<LifiAggregatorResult>;
48
+ assemble(params: LifiGetRoutesStep): Promise<AggregatorTransferData>;
49
+ getRouteStatus(txHash: Hex, options?: {
50
+ fromChain: number;
51
+ }): Promise<AggregatorRouteStatus>;
52
+ }
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LifiAggregatorHelper = exports.LifiWithdrawResult = exports.LifiAggregatorResult = exports.LIFI_API = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const viem_1 = require("viem");
9
+ const chains_1 = require("viem/chains");
10
+ const Token_1 = require("../../../token/Token");
11
+ const AggregatorHelper_1 = require("../../AggregatorHelper");
12
+ const AggregatorHelperErrors_1 = require("../../AggregatorHelperErrors");
13
+ const utils_1 = require("../../helpers/utils");
14
+ const types_1 = require("./types");
15
+ const addresses_1 = require("../../../../addresses");
16
+ exports.LIFI_API = 'https://li.quest/v1';
17
+ class LifiAggregatorResult {
18
+ aggregatorHelper;
19
+ routes;
20
+ rawResult;
21
+ req;
22
+ constructor(params) {
23
+ const { req, res, aggregatorHelper } = params;
24
+ this.req = req;
25
+ const validRoutes = res.routes.filter((route) => this.isValidRoute(route));
26
+ this.routes = validRoutes.map(({ id, fromAmount, fromToken, toAmount, toToken, steps, toAmountMin }) => ({
27
+ id,
28
+ inputTokenAmount: Token_1.TokenAmount.createFromLifi(fromToken, fromAmount),
29
+ outputTokenAmount: Token_1.TokenAmount.createFromLifi(toToken, toAmount),
30
+ minOutputTokenAmount: Token_1.TokenAmount.createFromLifi(toToken, toAmountMin),
31
+ steps: steps.map((step) => ({
32
+ fromTokenAmount: Token_1.TokenAmount.createFromLifi(step.action.fromToken, step.action.fromAmount),
33
+ toTokenAmount: Token_1.TokenAmount.createFromLifi(step.action.toToken, step.estimate.toAmount),
34
+ executionDuration: step.estimate.executionDuration,
35
+ feeCosts: step.estimate.feeCosts?.map((feeCost) => ({
36
+ name: feeCost.name,
37
+ amountUSD: Number(feeCost.amountUSD),
38
+ })),
39
+ gasCosts: step.estimate.gasCosts?.map((gasCost) => ({
40
+ tokenAmount: Token_1.TokenAmount.createFromLifi(gasCost.token, gasCost.amount),
41
+ amountUSD: Number(gasCost.amountUSD),
42
+ })),
43
+ tool: {
44
+ key: step.toolDetails.key,
45
+ name: step.toolDetails.name,
46
+ logoURI: step.toolDetails.logoURI,
47
+ },
48
+ })),
49
+ }));
50
+ this.rawResult = validRoutes;
51
+ this.aggregatorHelper = aggregatorHelper;
52
+ }
53
+ isValidRoute(route) {
54
+ return route.steps.length === 1;
55
+ }
56
+ getAggregatorName() {
57
+ return AggregatorHelper_1.AggregatorName.LIFI;
58
+ }
59
+ getRouteData = async (routeId) => {
60
+ const route = this.rawResult.find((route) => route.id === routeId);
61
+ if (route == null) {
62
+ throw new Error(`Route not found: ${routeId}`);
63
+ }
64
+ const [step] = route.steps;
65
+ const result = await this.aggregatorHelper.assemble(step);
66
+ (0, utils_1.ensureCalldataHasBoxAddress)(result.calldata, this.req.toAddress);
67
+ return {
68
+ transferData: result,
69
+ swapData: {
70
+ tokenSpent: (0, addresses_1.toAddress)(this.req.toTokenAddress),
71
+ amountSpent: BigInt(route.toAmount),
72
+ minAmountSpent: BigInt(route.toAmountMin),
73
+ extRouter: viem_1.zeroAddress,
74
+ extCalldata: '0x',
75
+ },
76
+ };
77
+ };
78
+ }
79
+ exports.LifiAggregatorResult = LifiAggregatorResult;
80
+ class LifiWithdrawResult {
81
+ aggregatorHelper;
82
+ routes;
83
+ rawResult;
84
+ req;
85
+ constructor(params) {
86
+ const { req, res, aggregatorHelper } = params;
87
+ this.req = req;
88
+ const validRoutes = res.routes.filter((route) => this.isValidRoute(route));
89
+ this.routes = validRoutes.map(({ id, fromAmount, fromToken, toAmount, toToken, steps, toAmountMin }) => ({
90
+ id,
91
+ inputTokenAmount: Token_1.TokenAmount.createFromLifi(fromToken, fromAmount),
92
+ outputTokenAmount: Token_1.TokenAmount.createFromLifi(toToken, toAmount),
93
+ minOutputTokenAmount: Token_1.TokenAmount.createFromLifi(toToken, toAmountMin),
94
+ steps: steps.map((step) => ({
95
+ fromTokenAmount: Token_1.TokenAmount.createFromLifi(step.action.fromToken, step.action.fromAmount),
96
+ toTokenAmount: Token_1.TokenAmount.createFromLifi(step.action.toToken, step.estimate.toAmount),
97
+ executionDuration: step.estimate.executionDuration,
98
+ feeCosts: step.estimate.feeCosts?.map((feeCost) => ({
99
+ name: feeCost.name,
100
+ amountUSD: Number(feeCost.amountUSD),
101
+ })),
102
+ gasCosts: step.estimate.gasCosts?.map((gasCost) => ({
103
+ tokenAmount: Token_1.TokenAmount.createFromLifi(gasCost.token, gasCost.amount),
104
+ amountUSD: Number(gasCost.amountUSD),
105
+ })),
106
+ tool: {
107
+ key: step.toolDetails.key,
108
+ name: step.toolDetails.name,
109
+ logoURI: step.toolDetails.logoURI,
110
+ },
111
+ })),
112
+ }));
113
+ this.rawResult = validRoutes;
114
+ this.aggregatorHelper = aggregatorHelper;
115
+ }
116
+ isValidRoute(route) {
117
+ return route.steps.length === 1;
118
+ }
119
+ getAggregatorName() {
120
+ return AggregatorHelper_1.AggregatorName.LIFI;
121
+ }
122
+ getRouteData = async (routeId) => {
123
+ const route = this.rawResult.find((route) => route.id === routeId);
124
+ if (route == null) {
125
+ throw new Error(`Route not found: ${routeId}`);
126
+ }
127
+ const [step] = route.steps;
128
+ const result = await this.aggregatorHelper.assemble(step);
129
+ return {
130
+ transferData: result,
131
+ };
132
+ };
133
+ }
134
+ exports.LifiWithdrawResult = LifiWithdrawResult;
135
+ class LifiAggregatorHelper {
136
+ depositBoxFactoryContract;
137
+ apiUrl;
138
+ aggregatorName = AggregatorHelper_1.AggregatorName.LIFI;
139
+ axios;
140
+ constructor(depositBoxFactoryContract, apiUrl = exports.LIFI_API) {
141
+ this.depositBoxFactoryContract = depositBoxFactoryContract;
142
+ this.apiUrl = apiUrl;
143
+ this.axios = axios_1.default.create();
144
+ }
145
+ async quoteDeposit(params) {
146
+ const { box } = await this.depositBoxFactoryContract.computeDepositBox(params.fromAddress, params.boxId);
147
+ const callParams = {
148
+ fromChainId: params.fromChainId,
149
+ toChainId: chains_1.arbitrum.id,
150
+ fromTokenAddress: params.fromToken,
151
+ toTokenAddress: params.toToken,
152
+ fromAmount: params.fromAmount.toString(),
153
+ fromAddress: params.fromAddress,
154
+ toAddress: box,
155
+ options: {
156
+ integrator: 'pendle',
157
+ allowDestinationCall: false,
158
+ order: types_1.GetRoutesOrder.FASTEST,
159
+ slippage: params.slippage,
160
+ maxPriceImpact: 0.005,
161
+ },
162
+ };
163
+ (0, utils_1.ensureDepositBoxAddress)(callParams.fromAddress, params.boxId, callParams.toAddress);
164
+ return this.quote(callParams);
165
+ }
166
+ async quoteWithdraw(params) {
167
+ const callParams = {
168
+ fromChainId: chains_1.arbitrum.id,
169
+ toChainId: params.toChainId,
170
+ fromTokenAddress: params.fromToken,
171
+ toTokenAddress: params.toToken,
172
+ fromAmount: params.fromAmount.toString(),
173
+ fromAddress: params.fromAddress,
174
+ toAddress: params.fromAddress,
175
+ options: {
176
+ integrator: 'pendle',
177
+ allowDestinationCall: false,
178
+ order: types_1.GetRoutesOrder.FASTEST,
179
+ slippage: params.slippage,
180
+ maxPriceImpact: 0.005,
181
+ },
182
+ };
183
+ try {
184
+ const { data } = await this.axios.post(`${this.apiUrl}/advanced/routes`, callParams);
185
+ return new LifiWithdrawResult({ req: callParams, res: data, aggregatorHelper: this });
186
+ }
187
+ catch (error) {
188
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.LIFI, error, [500, 502, 503, 504], 'quote', callParams, () => undefined);
189
+ }
190
+ }
191
+ async quote(callParams) {
192
+ try {
193
+ const { data } = await this.axios.post(`${this.apiUrl}/advanced/routes`, callParams);
194
+ return new LifiAggregatorResult({ req: callParams, res: data, aggregatorHelper: this });
195
+ }
196
+ catch (error) {
197
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.LIFI, error, [500, 502, 503, 504], 'quote', callParams, () => undefined);
198
+ }
199
+ }
200
+ async assemble(params) {
201
+ try {
202
+ const { data } = await this.axios.post(`${this.apiUrl}/advanced/stepTransaction`, params);
203
+ return {
204
+ aggregatorName: AggregatorHelper_1.AggregatorName.LIFI,
205
+ approvalAddress: params.estimate.approvalAddress,
206
+ calldata: data.transactionRequest.data,
207
+ value: BigInt(data.transactionRequest.value),
208
+ from: data.transactionRequest.from,
209
+ to: data.transactionRequest.to,
210
+ chainId: data.transactionRequest.chainId,
211
+ gasPrice: BigInt(data.transactionRequest.gasPrice),
212
+ gasLimit: BigInt(data.transactionRequest.gasLimit),
213
+ };
214
+ }
215
+ catch (error) {
216
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.LIFI, error, [500, 502, 503, 504], 'assemble', params, () => undefined);
217
+ }
218
+ }
219
+ async getRouteStatus(txHash, options) {
220
+ const params = { txHash, fromChain: options?.fromChain };
221
+ try {
222
+ const { data } = await this.axios.get(`${this.apiUrl}/status`, { params });
223
+ return data.status;
224
+ }
225
+ catch (error) {
226
+ throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.LIFI, error, [500, 502, 503, 504], 'getRouteStatus', { txHash }, () => undefined);
227
+ }
228
+ }
229
+ }
230
+ exports.LifiAggregatorHelper = LifiAggregatorHelper;
231
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/crossChainDeposit/aggregators/Lifi/index.ts"],"names":[],"mappings":"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"}