@emberai/onchain-actions-registry 2.0.0 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +528 -550
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +286 -2883
- package/dist/index.d.ts +286 -2883
- package/dist/index.js +532 -553
- package/dist/index.js.map +1 -1
- package/package.json +18 -13
package/dist/index.cjs
CHANGED
|
@@ -79,7 +79,6 @@ __export(index_exports, {
|
|
|
79
79
|
SwapTokensRequestSchema: () => SwapTokensRequestSchema,
|
|
80
80
|
SwapTokensResponseSchema: () => SwapTokensResponseSchema,
|
|
81
81
|
TokenIdentifierSchema: () => TokenIdentifierSchema,
|
|
82
|
-
TokenPositionSchema: () => TokenPositionSchema,
|
|
83
82
|
TokenSchema: () => TokenSchema,
|
|
84
83
|
TransactionPlanErrorSchema: () => TransactionPlanErrorSchema,
|
|
85
84
|
TransactionPlanSchema: () => TransactionPlanSchema,
|
|
@@ -93,40 +92,357 @@ __export(index_exports, {
|
|
|
93
92
|
});
|
|
94
93
|
module.exports = __toCommonJS(index_exports);
|
|
95
94
|
|
|
96
|
-
// src/
|
|
97
|
-
var
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
*/
|
|
111
|
-
registerDeferredPlugin(pluginPromise) {
|
|
112
|
-
this.deferredPlugins.push(pluginPromise);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Iterator for the registered Ember plugins.
|
|
116
|
-
*/
|
|
117
|
-
async *getPlugins() {
|
|
118
|
-
yield* this.plugins;
|
|
119
|
-
for (const pluginPromise of this.deferredPlugins) {
|
|
120
|
-
const plugin = await pluginPromise;
|
|
121
|
-
this.registerPlugin(plugin);
|
|
122
|
-
yield plugin;
|
|
123
|
-
}
|
|
124
|
-
this.deferredPlugins = [];
|
|
125
|
-
}
|
|
126
|
-
get emberPlugins() {
|
|
127
|
-
return this.plugins;
|
|
128
|
-
}
|
|
95
|
+
// src/aave-lending-plugin/adapter.ts
|
|
96
|
+
var import_contract_helpers2 = require("@aave/contract-helpers");
|
|
97
|
+
var import_ethers3 = require("ethers");
|
|
98
|
+
|
|
99
|
+
// src/core/schemas/core.ts
|
|
100
|
+
var import_zod2 = require("zod");
|
|
101
|
+
|
|
102
|
+
// src/core/schemas/enums.ts
|
|
103
|
+
var import_zod = require("zod");
|
|
104
|
+
var ChainTypeSchema = import_zod.z.enum(["UNSPECIFIED", "EVM", "SOLANA", "COSMOS"]);
|
|
105
|
+
var TransactionTypes = {
|
|
106
|
+
TRANSACTION_TYPE_UNSPECIFIED: "TRANSACTION_TYPE_UNSPECIFIED",
|
|
107
|
+
EVM_TX: "EVM_TX",
|
|
108
|
+
SOLANA_TX: "SOLANA_TX"
|
|
129
109
|
};
|
|
110
|
+
var TransactionTypeSchema = import_zod.z.enum(
|
|
111
|
+
Object.values(TransactionTypes)
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
// src/core/schemas/core.ts
|
|
115
|
+
var TokenIdentifierSchema = import_zod2.z.object({
|
|
116
|
+
chainId: import_zod2.z.string(),
|
|
117
|
+
address: import_zod2.z.string()
|
|
118
|
+
});
|
|
119
|
+
var TokenSchema = import_zod2.z.object({
|
|
120
|
+
tokenUid: TokenIdentifierSchema,
|
|
121
|
+
name: import_zod2.z.string(),
|
|
122
|
+
symbol: import_zod2.z.string(),
|
|
123
|
+
isNative: import_zod2.z.boolean(),
|
|
124
|
+
decimals: import_zod2.z.number().int(),
|
|
125
|
+
iconUri: import_zod2.z.string().nullish(),
|
|
126
|
+
isVetted: import_zod2.z.boolean()
|
|
127
|
+
});
|
|
128
|
+
var ChainSchema = import_zod2.z.object({
|
|
129
|
+
chainId: import_zod2.z.string(),
|
|
130
|
+
type: ChainTypeSchema,
|
|
131
|
+
iconUri: import_zod2.z.string(),
|
|
132
|
+
nativeToken: TokenSchema,
|
|
133
|
+
httpRpcUrl: import_zod2.z.string(),
|
|
134
|
+
name: import_zod2.z.string(),
|
|
135
|
+
blockExplorerUrls: import_zod2.z.array(import_zod2.z.string())
|
|
136
|
+
});
|
|
137
|
+
var FeeBreakdownSchema = import_zod2.z.object({
|
|
138
|
+
serviceFee: import_zod2.z.string(),
|
|
139
|
+
slippageCost: import_zod2.z.string(),
|
|
140
|
+
total: import_zod2.z.string(),
|
|
141
|
+
feeDenomination: import_zod2.z.string()
|
|
142
|
+
});
|
|
143
|
+
var TransactionPlanSchema = import_zod2.z.object({
|
|
144
|
+
type: TransactionTypeSchema,
|
|
145
|
+
to: import_zod2.z.string(),
|
|
146
|
+
data: import_zod2.z.string(),
|
|
147
|
+
value: import_zod2.z.string(),
|
|
148
|
+
chainId: import_zod2.z.string()
|
|
149
|
+
});
|
|
150
|
+
var TransactionPlanErrorSchema = import_zod2.z.object({
|
|
151
|
+
code: import_zod2.z.string(),
|
|
152
|
+
message: import_zod2.z.string(),
|
|
153
|
+
details: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.string())
|
|
154
|
+
});
|
|
155
|
+
var ProviderTrackingInfoSchema = import_zod2.z.object({
|
|
156
|
+
requestId: import_zod2.z.string(),
|
|
157
|
+
providerName: import_zod2.z.string(),
|
|
158
|
+
explorerUrl: import_zod2.z.string()
|
|
159
|
+
});
|
|
160
|
+
var SwapEstimationSchema = import_zod2.z.object({
|
|
161
|
+
effectivePrice: import_zod2.z.string(),
|
|
162
|
+
timeEstimate: import_zod2.z.string(),
|
|
163
|
+
expiration: import_zod2.z.string()
|
|
164
|
+
});
|
|
165
|
+
var ProviderTrackingStatusSchema = import_zod2.z.object({
|
|
166
|
+
requestId: import_zod2.z.string(),
|
|
167
|
+
transactionId: import_zod2.z.string(),
|
|
168
|
+
providerName: import_zod2.z.string(),
|
|
169
|
+
explorerUrl: import_zod2.z.string(),
|
|
170
|
+
status: import_zod2.z.string()
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// src/core/schemas/lending.ts
|
|
174
|
+
var import_zod3 = require("zod");
|
|
175
|
+
var BorrowTokensRequestSchema = import_zod3.z.object({
|
|
176
|
+
borrowToken: TokenSchema,
|
|
177
|
+
amount: import_zod3.z.bigint(),
|
|
178
|
+
walletAddress: import_zod3.z.string()
|
|
179
|
+
});
|
|
180
|
+
var BorrowTokensResponseSchema = import_zod3.z.object({
|
|
181
|
+
currentBorrowApy: import_zod3.z.string(),
|
|
182
|
+
liquidationThreshold: import_zod3.z.string(),
|
|
183
|
+
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
184
|
+
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
185
|
+
});
|
|
186
|
+
var RepayTokensRequestSchema = import_zod3.z.object({
|
|
187
|
+
repayToken: TokenSchema,
|
|
188
|
+
amount: import_zod3.z.bigint(),
|
|
189
|
+
walletAddress: import_zod3.z.string()
|
|
190
|
+
});
|
|
191
|
+
var RepayTokensResponseSchema = import_zod3.z.object({
|
|
192
|
+
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
193
|
+
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
194
|
+
});
|
|
195
|
+
var SupplyTokensRequestSchema = import_zod3.z.object({
|
|
196
|
+
supplyToken: TokenSchema,
|
|
197
|
+
amount: import_zod3.z.bigint(),
|
|
198
|
+
walletAddress: import_zod3.z.string()
|
|
199
|
+
});
|
|
200
|
+
var SupplyTokensResponseSchema = import_zod3.z.object({
|
|
201
|
+
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
202
|
+
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
203
|
+
});
|
|
204
|
+
var WithdrawTokensRequestSchema = import_zod3.z.object({
|
|
205
|
+
tokenToWithdraw: TokenSchema,
|
|
206
|
+
amount: import_zod3.z.bigint(),
|
|
207
|
+
walletAddress: import_zod3.z.string()
|
|
208
|
+
});
|
|
209
|
+
var WithdrawTokensResponseSchema = import_zod3.z.object({
|
|
210
|
+
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
211
|
+
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
212
|
+
});
|
|
213
|
+
var GetWalletLendingPositionsRequestSchema = import_zod3.z.object({
|
|
214
|
+
walletAddress: import_zod3.z.string()
|
|
215
|
+
});
|
|
216
|
+
var LendTokenDetailSchema = import_zod3.z.object({
|
|
217
|
+
tokenUid: TokenIdentifierSchema,
|
|
218
|
+
underlyingBalance: import_zod3.z.string(),
|
|
219
|
+
underlyingBalanceUsd: import_zod3.z.string(),
|
|
220
|
+
variableBorrows: import_zod3.z.string(),
|
|
221
|
+
variableBorrowsUsd: import_zod3.z.string(),
|
|
222
|
+
totalBorrows: import_zod3.z.string(),
|
|
223
|
+
totalBorrowsUsd: import_zod3.z.string()
|
|
224
|
+
});
|
|
225
|
+
var GetWalletLendingPositionsResponseSchema = import_zod3.z.object({
|
|
226
|
+
userReserves: import_zod3.z.array(LendTokenDetailSchema),
|
|
227
|
+
totalLiquidityUsd: import_zod3.z.string(),
|
|
228
|
+
totalCollateralUsd: import_zod3.z.string(),
|
|
229
|
+
totalBorrowsUsd: import_zod3.z.string(),
|
|
230
|
+
netWorthUsd: import_zod3.z.string(),
|
|
231
|
+
availableBorrowsUsd: import_zod3.z.string(),
|
|
232
|
+
currentLoanToValue: import_zod3.z.string(),
|
|
233
|
+
currentLiquidationThreshold: import_zod3.z.string(),
|
|
234
|
+
healthFactor: import_zod3.z.string()
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
// src/core/schemas/liquidity.ts
|
|
238
|
+
var import_zod4 = require("zod");
|
|
239
|
+
var LimitedLiquidityProvisionRangeSchema = import_zod4.z.object({
|
|
240
|
+
minPrice: import_zod4.z.string(),
|
|
241
|
+
maxPrice: import_zod4.z.string()
|
|
242
|
+
});
|
|
243
|
+
var LiquidityProvisionRangeSchema = import_zod4.z.discriminatedUnion("type", [
|
|
244
|
+
import_zod4.z.object({
|
|
245
|
+
type: import_zod4.z.literal("full")
|
|
246
|
+
}),
|
|
247
|
+
import_zod4.z.object({
|
|
248
|
+
type: import_zod4.z.literal("limited"),
|
|
249
|
+
minPrice: import_zod4.z.string(),
|
|
250
|
+
maxPrice: import_zod4.z.string()
|
|
251
|
+
})
|
|
252
|
+
]);
|
|
253
|
+
var LiquidityPositionRangeSchema = import_zod4.z.object({
|
|
254
|
+
fromPrice: import_zod4.z.string(),
|
|
255
|
+
toPrice: import_zod4.z.string()
|
|
256
|
+
});
|
|
257
|
+
var LiquiditySuppliedTokenSchema = import_zod4.z.object({
|
|
258
|
+
tokenUid: TokenIdentifierSchema,
|
|
259
|
+
suppliedAmount: import_zod4.z.string(),
|
|
260
|
+
owedTokens: import_zod4.z.string()
|
|
261
|
+
});
|
|
262
|
+
var LiquidityPositionSchema = import_zod4.z.object({
|
|
263
|
+
poolIdentifier: TokenIdentifierSchema,
|
|
264
|
+
operator: import_zod4.z.string(),
|
|
265
|
+
suppliedTokens: import_zod4.z.array(LiquiditySuppliedTokenSchema),
|
|
266
|
+
price: import_zod4.z.string(),
|
|
267
|
+
providerId: import_zod4.z.string(),
|
|
268
|
+
positionRange: LiquidityPositionRangeSchema.optional()
|
|
269
|
+
});
|
|
270
|
+
var LiquidityPoolTokens = import_zod4.z.object({
|
|
271
|
+
tokenUid: TokenIdentifierSchema
|
|
272
|
+
});
|
|
273
|
+
var LiquidityPoolSchema = import_zod4.z.object({
|
|
274
|
+
identifier: TokenIdentifierSchema,
|
|
275
|
+
tokens: import_zod4.z.array(LiquidityPoolTokens),
|
|
276
|
+
price: import_zod4.z.string(),
|
|
277
|
+
providerId: import_zod4.z.string()
|
|
278
|
+
});
|
|
279
|
+
var LiquidityPayTokensSchema = import_zod4.z.object({
|
|
280
|
+
token: TokenSchema,
|
|
281
|
+
supplyAmount: import_zod4.z.bigint()
|
|
282
|
+
});
|
|
283
|
+
var SupplyLiquidityRequestSchema = import_zod4.z.object({
|
|
284
|
+
walletAddress: import_zod4.z.string(),
|
|
285
|
+
poolToken: TokenSchema,
|
|
286
|
+
payTokens: import_zod4.z.array(LiquidityPayTokensSchema),
|
|
287
|
+
range: LiquidityProvisionRangeSchema.optional()
|
|
288
|
+
});
|
|
289
|
+
var SupplyLiquidityResponseSchema = import_zod4.z.object({
|
|
290
|
+
transactions: import_zod4.z.array(TransactionPlanSchema),
|
|
291
|
+
poolIdentifier: TokenIdentifierSchema
|
|
292
|
+
});
|
|
293
|
+
var WithdrawLiquidityRequestSchema = import_zod4.z.object({
|
|
294
|
+
poolToken: TokenSchema,
|
|
295
|
+
walletAddress: import_zod4.z.string()
|
|
296
|
+
});
|
|
297
|
+
var WithdrawLiquidityResponseSchema = import_zod4.z.object({
|
|
298
|
+
transactions: import_zod4.z.array(TransactionPlanSchema),
|
|
299
|
+
chainId: import_zod4.z.string()
|
|
300
|
+
});
|
|
301
|
+
var GetWalletLiquidityPositionsRequestSchema = import_zod4.z.object({
|
|
302
|
+
walletAddress: import_zod4.z.string()
|
|
303
|
+
});
|
|
304
|
+
var GetWalletLiquidityPositionsResponseSchema = import_zod4.z.object({
|
|
305
|
+
positions: import_zod4.z.array(LiquidityPositionSchema)
|
|
306
|
+
});
|
|
307
|
+
var GetLiquidityPoolsResponseSchema = import_zod4.z.object({
|
|
308
|
+
liquidityPools: import_zod4.z.array(LiquidityPoolSchema)
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
// src/core/schemas/perpetuals.ts
|
|
312
|
+
var import_orders = require("@gmx-io/sdk/types/orders");
|
|
313
|
+
var import_zod5 = require("zod");
|
|
314
|
+
var DecreasePositionSwapTypeSchema = import_zod5.z.nativeEnum(import_orders.DecreasePositionSwapType);
|
|
315
|
+
var PositionSideSchema = import_zod5.z.union([import_zod5.z.literal("long"), import_zod5.z.literal("short")]);
|
|
316
|
+
var PositionSchema = import_zod5.z.object({
|
|
317
|
+
chainId: import_zod5.z.string(),
|
|
318
|
+
key: import_zod5.z.string(),
|
|
319
|
+
contractKey: import_zod5.z.string(),
|
|
320
|
+
account: import_zod5.z.string(),
|
|
321
|
+
marketAddress: import_zod5.z.string(),
|
|
322
|
+
collateralTokenAddress: import_zod5.z.string(),
|
|
323
|
+
sizeInUsd: import_zod5.z.string(),
|
|
324
|
+
sizeInTokens: import_zod5.z.string(),
|
|
325
|
+
collateralAmount: import_zod5.z.string(),
|
|
326
|
+
pendingBorrowingFeesUsd: import_zod5.z.string(),
|
|
327
|
+
increasedAtTime: import_zod5.z.string(),
|
|
328
|
+
decreasedAtTime: import_zod5.z.string(),
|
|
329
|
+
positionSide: PositionSideSchema,
|
|
330
|
+
isLong: import_zod5.z.boolean(),
|
|
331
|
+
fundingFeeAmount: import_zod5.z.string(),
|
|
332
|
+
claimableLongTokenAmount: import_zod5.z.string(),
|
|
333
|
+
claimableShortTokenAmount: import_zod5.z.string(),
|
|
334
|
+
isOpening: import_zod5.z.boolean().optional(),
|
|
335
|
+
pnl: import_zod5.z.string(),
|
|
336
|
+
positionFeeAmount: import_zod5.z.string(),
|
|
337
|
+
traderDiscountAmount: import_zod5.z.string(),
|
|
338
|
+
uiFeeAmount: import_zod5.z.string(),
|
|
339
|
+
data: import_zod5.z.string().optional()
|
|
340
|
+
});
|
|
341
|
+
var PositionsDataSchema = import_zod5.z.array(PositionSchema);
|
|
342
|
+
var OrderSchema = import_zod5.z.object({
|
|
343
|
+
chainId: import_zod5.z.string(),
|
|
344
|
+
key: import_zod5.z.string(),
|
|
345
|
+
account: import_zod5.z.string(),
|
|
346
|
+
callbackContract: import_zod5.z.string(),
|
|
347
|
+
initialCollateralTokenAddress: import_zod5.z.string(),
|
|
348
|
+
marketAddress: import_zod5.z.string(),
|
|
349
|
+
decreasePositionSwapType: DecreasePositionSwapTypeSchema,
|
|
350
|
+
receiver: import_zod5.z.string(),
|
|
351
|
+
swapPath: import_zod5.z.array(import_zod5.z.string()),
|
|
352
|
+
contractAcceptablePrice: import_zod5.z.string(),
|
|
353
|
+
contractTriggerPrice: import_zod5.z.string(),
|
|
354
|
+
callbackGasLimit: import_zod5.z.string(),
|
|
355
|
+
executionFee: import_zod5.z.string(),
|
|
356
|
+
initialCollateralDeltaAmount: import_zod5.z.string(),
|
|
357
|
+
minOutputAmount: import_zod5.z.string(),
|
|
358
|
+
sizeDeltaUsd: import_zod5.z.string(),
|
|
359
|
+
updatedAtTime: import_zod5.z.string(),
|
|
360
|
+
isFrozen: import_zod5.z.boolean(),
|
|
361
|
+
positionSide: PositionSideSchema,
|
|
362
|
+
orderType: import_zod5.z.nativeEnum(import_orders.OrderType),
|
|
363
|
+
shouldUnwrapNativeToken: import_zod5.z.boolean(),
|
|
364
|
+
autoCancel: import_zod5.z.boolean(),
|
|
365
|
+
data: import_zod5.z.string().optional(),
|
|
366
|
+
uiFeeReceiver: import_zod5.z.string(),
|
|
367
|
+
validFromTime: import_zod5.z.string(),
|
|
368
|
+
title: import_zod5.z.string().optional()
|
|
369
|
+
});
|
|
370
|
+
var OrdersDataSchema = import_zod5.z.array(OrderSchema);
|
|
371
|
+
var CreatePerpetualsPositionRequestSchema = import_zod5.z.object({
|
|
372
|
+
amount: import_zod5.z.bigint(),
|
|
373
|
+
walletAddress: import_zod5.z.string(),
|
|
374
|
+
chainId: import_zod5.z.string(),
|
|
375
|
+
marketAddress: import_zod5.z.string(),
|
|
376
|
+
payTokenAddress: import_zod5.z.string(),
|
|
377
|
+
collateralTokenAddress: import_zod5.z.string(),
|
|
378
|
+
referralCode: import_zod5.z.string().optional(),
|
|
379
|
+
limitPrice: import_zod5.z.string().optional(),
|
|
380
|
+
leverage: import_zod5.z.string()
|
|
381
|
+
});
|
|
382
|
+
var CreatePerpetualsPositionResponseSchema = import_zod5.z.object({
|
|
383
|
+
transactions: import_zod5.z.array(TransactionPlanSchema)
|
|
384
|
+
});
|
|
385
|
+
var GetPerpetualsMarketsPositionsRequestSchema = import_zod5.z.object({
|
|
386
|
+
walletAddress: import_zod5.z.string().describe("User's wallet address")
|
|
387
|
+
});
|
|
388
|
+
var GetPerpetualsMarketsPositionsResponseSchema = import_zod5.z.object({
|
|
389
|
+
positions: PositionsDataSchema
|
|
390
|
+
});
|
|
391
|
+
var GetPerpetualsMarketsOrdersRequestSchema = import_zod5.z.object({
|
|
392
|
+
walletAddress: import_zod5.z.string().describe("User's wallet address")
|
|
393
|
+
});
|
|
394
|
+
var GetPerpetualsMarketsOrdersResponseSchema = import_zod5.z.object({
|
|
395
|
+
orders: OrdersDataSchema
|
|
396
|
+
});
|
|
397
|
+
var ClosePerpetualsOrdersRequestSchema = import_zod5.z.object({
|
|
398
|
+
walletAddress: import_zod5.z.string().describe("User's wallet address"),
|
|
399
|
+
key: import_zod5.z.string()
|
|
400
|
+
});
|
|
401
|
+
var ClosePerpetualsOrdersResponseSchema = import_zod5.z.object({
|
|
402
|
+
transactions: import_zod5.z.array(TransactionPlanSchema)
|
|
403
|
+
});
|
|
404
|
+
var GetPerpetualsMarketsRequestSchema = import_zod5.z.object({
|
|
405
|
+
chainIds: import_zod5.z.array(import_zod5.z.string())
|
|
406
|
+
});
|
|
407
|
+
var PerpetualMarketSchema = import_zod5.z.object({
|
|
408
|
+
marketToken: TokenIdentifierSchema,
|
|
409
|
+
indexToken: TokenIdentifierSchema,
|
|
410
|
+
longToken: TokenIdentifierSchema,
|
|
411
|
+
shortToken: TokenIdentifierSchema,
|
|
412
|
+
longFundingFee: import_zod5.z.string(),
|
|
413
|
+
shortFundingFee: import_zod5.z.string(),
|
|
414
|
+
longBorrowingFee: import_zod5.z.string(),
|
|
415
|
+
shortBorrowingFee: import_zod5.z.string(),
|
|
416
|
+
chainId: import_zod5.z.string(),
|
|
417
|
+
name: import_zod5.z.string()
|
|
418
|
+
});
|
|
419
|
+
var GetPerpetualsMarketsResponseSchema = import_zod5.z.object({
|
|
420
|
+
markets: import_zod5.z.array(PerpetualMarketSchema)
|
|
421
|
+
});
|
|
422
|
+
|
|
423
|
+
// src/core/schemas/swap.ts
|
|
424
|
+
var import_zod6 = require("zod");
|
|
425
|
+
var SwapTokensRequestSchema = import_zod6.z.object({
|
|
426
|
+
fromToken: TokenSchema,
|
|
427
|
+
toToken: TokenSchema,
|
|
428
|
+
amount: import_zod6.z.bigint(),
|
|
429
|
+
limitPrice: import_zod6.z.string().optional(),
|
|
430
|
+
slippageTolerance: import_zod6.z.string().optional(),
|
|
431
|
+
expiration: import_zod6.z.string().optional(),
|
|
432
|
+
recipient: import_zod6.z.string()
|
|
433
|
+
});
|
|
434
|
+
var SwapTokensResponseSchema = import_zod6.z.object({
|
|
435
|
+
fromToken: TokenSchema,
|
|
436
|
+
toToken: TokenSchema,
|
|
437
|
+
exactFromAmount: import_zod6.z.string(),
|
|
438
|
+
displayFromAmount: import_zod6.z.string(),
|
|
439
|
+
exactToAmount: import_zod6.z.string(),
|
|
440
|
+
displayToAmount: import_zod6.z.string(),
|
|
441
|
+
transactions: import_zod6.z.array(TransactionPlanSchema),
|
|
442
|
+
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
443
|
+
estimation: SwapEstimationSchema.optional(),
|
|
444
|
+
providerTracking: ProviderTrackingInfoSchema.optional()
|
|
445
|
+
});
|
|
130
446
|
|
|
131
447
|
// src/aave-lending-plugin/chain.ts
|
|
132
448
|
var import_ethers = require("ethers");
|
|
@@ -149,6 +465,23 @@ var Chain = class {
|
|
|
149
465
|
}
|
|
150
466
|
};
|
|
151
467
|
|
|
468
|
+
// src/aave-lending-plugin/dataProvider.ts
|
|
469
|
+
var import_contract_helpers = require("@aave/contract-helpers");
|
|
470
|
+
var UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN = {
|
|
471
|
+
11155111: import_contract_helpers.LegacyUiPoolDataProvider,
|
|
472
|
+
42161: import_contract_helpers.UiPoolDataProvider,
|
|
473
|
+
1: import_contract_helpers.UiPoolDataProvider
|
|
474
|
+
};
|
|
475
|
+
var getUiPoolDataProviderImpl = (chainId) => {
|
|
476
|
+
const res = UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN[chainId];
|
|
477
|
+
if (!res) {
|
|
478
|
+
throw new Error(
|
|
479
|
+
"UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN does not contain this chain ID. Edit providers/aave/dataProvider.ts."
|
|
480
|
+
);
|
|
481
|
+
}
|
|
482
|
+
return res;
|
|
483
|
+
};
|
|
484
|
+
|
|
152
485
|
// src/aave-lending-plugin/market.ts
|
|
153
486
|
var markets = __toESM(require("@bgd-labs/aave-address-book"), 1);
|
|
154
487
|
var marketMap = {
|
|
@@ -167,77 +500,11 @@ var getMarket = (chainId) => {
|
|
|
167
500
|
`AAVE: no market found for chain ID ${chainId}: modify providers/aave/market.ts`
|
|
168
501
|
);
|
|
169
502
|
}
|
|
170
|
-
const market = markets[marketKey];
|
|
171
|
-
if (!market) {
|
|
172
|
-
throw new Error(`No such market: ${marketKey}`);
|
|
173
|
-
}
|
|
174
|
-
return market;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
// src/aave-lending-plugin/userSummary.ts
|
|
178
|
-
var import_math_utils = require("@aave/math-utils");
|
|
179
|
-
function formatNumeric(value) {
|
|
180
|
-
const num = parseFloat(value);
|
|
181
|
-
if (Number.isInteger(num)) return num.toString();
|
|
182
|
-
return parseFloat(num.toFixed(2)).toString();
|
|
183
|
-
}
|
|
184
|
-
var UserSummary = class {
|
|
185
|
-
reserves;
|
|
186
|
-
/**
|
|
187
|
-
* @param userReservesResponse - The response from getUserReservesHumanized.
|
|
188
|
-
* @param reservesResponse - The response from getReservesHumanized.
|
|
189
|
-
*/
|
|
190
|
-
constructor(userReservesResponse, reservesResponse) {
|
|
191
|
-
const currentTimestamp = Date.now() / 1e3;
|
|
192
|
-
const formattedReserves = (0, import_math_utils.formatReserves)({
|
|
193
|
-
reserves: reservesResponse.reservesData,
|
|
194
|
-
currentTimestamp,
|
|
195
|
-
marketReferenceCurrencyDecimals: reservesResponse.baseCurrencyData.marketReferenceCurrencyDecimals,
|
|
196
|
-
marketReferencePriceInUsd: reservesResponse.baseCurrencyData.marketReferenceCurrencyPriceInUsd
|
|
197
|
-
});
|
|
198
|
-
this.reserves = (0, import_math_utils.formatUserSummary)({
|
|
199
|
-
currentTimestamp,
|
|
200
|
-
marketReferencePriceInUsd: reservesResponse.baseCurrencyData.marketReferenceCurrencyPriceInUsd,
|
|
201
|
-
marketReferenceCurrencyDecimals: reservesResponse.baseCurrencyData.marketReferenceCurrencyDecimals,
|
|
202
|
-
userReserves: userReservesResponse.userReserves,
|
|
203
|
-
formattedReserves,
|
|
204
|
-
userEmodeCategoryId: userReservesResponse.userEmodeCategoryId
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
toHumanReadable() {
|
|
208
|
-
let output = "User Positions:\n";
|
|
209
|
-
output += `Total Liquidity (USD): ${formatNumeric(this.reserves.totalLiquidityUSD)}
|
|
210
|
-
`;
|
|
211
|
-
output += `Total Collateral (USD): ${formatNumeric(this.reserves.totalCollateralUSD)}
|
|
212
|
-
`;
|
|
213
|
-
output += `Total Borrows (USD): ${formatNumeric(this.reserves.totalBorrowsUSD)}
|
|
214
|
-
`;
|
|
215
|
-
output += `Net Worth (USD): ${formatNumeric(this.reserves.netWorthUSD)}
|
|
216
|
-
`;
|
|
217
|
-
output += `Health Factor: ${formatNumeric(this.reserves.healthFactor)}
|
|
218
|
-
|
|
219
|
-
`;
|
|
220
|
-
output += "Deposits:\n";
|
|
221
|
-
for (const entry of this.reserves.userReservesData) {
|
|
222
|
-
if (parseFloat(entry.scaledATokenBalance) > 0) {
|
|
223
|
-
const underlying = entry.underlyingBalance;
|
|
224
|
-
const underlyingUSD = entry.underlyingBalanceUSD ? formatNumeric(entry.underlyingBalanceUSD) : "N/A";
|
|
225
|
-
output += `- ${entry.reserve.symbol}: ${underlying} (USD: ${underlyingUSD})
|
|
226
|
-
`;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
output += "\nLoans:\n";
|
|
230
|
-
for (const entry of this.reserves.userReservesData) {
|
|
231
|
-
const borrow = entry.totalBorrows || "0";
|
|
232
|
-
if (parseFloat(borrow) > 0) {
|
|
233
|
-
const totalBorrows = entry.totalBorrows;
|
|
234
|
-
const totalBorrowsUSD = entry.totalBorrowsUSD ? formatNumeric(entry.totalBorrowsUSD) : "N/A";
|
|
235
|
-
output += `- ${entry.reserve.symbol}: ${totalBorrows} (USD: ${totalBorrowsUSD})
|
|
236
|
-
`;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return output;
|
|
240
|
-
}
|
|
503
|
+
const market = markets[marketKey];
|
|
504
|
+
if (!market) {
|
|
505
|
+
throw new Error(`No such market: ${marketKey}`);
|
|
506
|
+
}
|
|
507
|
+
return market;
|
|
241
508
|
};
|
|
242
509
|
|
|
243
510
|
// src/aave-lending-plugin/populateTransaction.ts
|
|
@@ -608,407 +875,99 @@ function getAaveError(code) {
|
|
|
608
875
|
return null;
|
|
609
876
|
}
|
|
610
877
|
|
|
611
|
-
// src/aave-lending-plugin/populateTransaction.ts
|
|
612
|
-
async function populateTransaction(tx) {
|
|
613
|
-
let txData = null;
|
|
614
|
-
try {
|
|
615
|
-
txData = await tx.tx();
|
|
616
|
-
} catch (
|
|
617
|
-
const
|
|
618
|
-
const
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
var UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN = {
|
|
637
|
-
11155111: import_contract_helpers.LegacyUiPoolDataProvider,
|
|
638
|
-
42161: import_contract_helpers.UiPoolDataProvider,
|
|
639
|
-
1: import_contract_helpers.UiPoolDataProvider
|
|
640
|
-
};
|
|
641
|
-
var getUiPoolDataProviderImpl = (chainId) => {
|
|
642
|
-
const res = UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN[chainId];
|
|
643
|
-
if (!res) {
|
|
644
|
-
throw new Error(
|
|
645
|
-
"UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN does not contain this chain ID. Edit providers/aave/dataProvider.ts."
|
|
646
|
-
);
|
|
647
|
-
}
|
|
648
|
-
return res;
|
|
649
|
-
};
|
|
650
|
-
|
|
651
|
-
// src/aave-lending-plugin/adapter.ts
|
|
652
|
-
var import_ethers4 = require("ethers");
|
|
653
|
-
var import_contract_helpers2 = require("@aave/contract-helpers");
|
|
654
|
-
|
|
655
|
-
// src/core/schemas/core.ts
|
|
656
|
-
var import_zod2 = require("zod");
|
|
657
|
-
|
|
658
|
-
// src/core/schemas/enums.ts
|
|
659
|
-
var import_zod = require("zod");
|
|
660
|
-
var ChainTypeSchema = import_zod.z.enum(["UNSPECIFIED", "EVM", "SOLANA", "COSMOS"]);
|
|
661
|
-
var TransactionTypes = {
|
|
662
|
-
TRANSACTION_TYPE_UNSPECIFIED: "TRANSACTION_TYPE_UNSPECIFIED",
|
|
663
|
-
EVM_TX: "EVM_TX",
|
|
664
|
-
SOLANA_TX: "SOLANA_TX"
|
|
665
|
-
};
|
|
666
|
-
var TransactionTypeSchema = import_zod.z.enum(
|
|
667
|
-
Object.values(TransactionTypes)
|
|
668
|
-
);
|
|
669
|
-
|
|
670
|
-
// src/core/schemas/core.ts
|
|
671
|
-
var TokenIdentifierSchema = import_zod2.z.object({
|
|
672
|
-
chainId: import_zod2.z.string(),
|
|
673
|
-
address: import_zod2.z.string()
|
|
674
|
-
});
|
|
675
|
-
var TokenSchema = import_zod2.z.object({
|
|
676
|
-
tokenUid: TokenIdentifierSchema,
|
|
677
|
-
name: import_zod2.z.string(),
|
|
678
|
-
symbol: import_zod2.z.string(),
|
|
679
|
-
isNative: import_zod2.z.boolean(),
|
|
680
|
-
decimals: import_zod2.z.number().int(),
|
|
681
|
-
iconUri: import_zod2.z.string().nullish(),
|
|
682
|
-
isVetted: import_zod2.z.boolean()
|
|
683
|
-
});
|
|
684
|
-
var ChainSchema = import_zod2.z.object({
|
|
685
|
-
chainId: import_zod2.z.string(),
|
|
686
|
-
type: ChainTypeSchema,
|
|
687
|
-
iconUri: import_zod2.z.string(),
|
|
688
|
-
nativeToken: TokenSchema,
|
|
689
|
-
httpRpcUrl: import_zod2.z.string(),
|
|
690
|
-
name: import_zod2.z.string(),
|
|
691
|
-
blockExplorerUrls: import_zod2.z.array(import_zod2.z.string())
|
|
692
|
-
});
|
|
693
|
-
var FeeBreakdownSchema = import_zod2.z.object({
|
|
694
|
-
serviceFee: import_zod2.z.string(),
|
|
695
|
-
slippageCost: import_zod2.z.string(),
|
|
696
|
-
total: import_zod2.z.string(),
|
|
697
|
-
feeDenomination: import_zod2.z.string()
|
|
698
|
-
});
|
|
699
|
-
var TransactionPlanSchema = import_zod2.z.object({
|
|
700
|
-
type: TransactionTypeSchema,
|
|
701
|
-
to: import_zod2.z.string(),
|
|
702
|
-
data: import_zod2.z.string(),
|
|
703
|
-
value: import_zod2.z.string(),
|
|
704
|
-
chainId: import_zod2.z.string()
|
|
705
|
-
});
|
|
706
|
-
var TransactionPlanErrorSchema = import_zod2.z.object({
|
|
707
|
-
code: import_zod2.z.string(),
|
|
708
|
-
message: import_zod2.z.string(),
|
|
709
|
-
details: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.string())
|
|
710
|
-
});
|
|
711
|
-
var ProviderTrackingInfoSchema = import_zod2.z.object({
|
|
712
|
-
requestId: import_zod2.z.string(),
|
|
713
|
-
providerName: import_zod2.z.string(),
|
|
714
|
-
explorerUrl: import_zod2.z.string()
|
|
715
|
-
});
|
|
716
|
-
var SwapEstimationSchema = import_zod2.z.object({
|
|
717
|
-
effectivePrice: import_zod2.z.string(),
|
|
718
|
-
timeEstimate: import_zod2.z.string(),
|
|
719
|
-
expiration: import_zod2.z.string()
|
|
720
|
-
});
|
|
721
|
-
var ProviderTrackingStatusSchema = import_zod2.z.object({
|
|
722
|
-
requestId: import_zod2.z.string(),
|
|
723
|
-
transactionId: import_zod2.z.string(),
|
|
724
|
-
providerName: import_zod2.z.string(),
|
|
725
|
-
explorerUrl: import_zod2.z.string(),
|
|
726
|
-
status: import_zod2.z.string()
|
|
727
|
-
});
|
|
728
|
-
|
|
729
|
-
// src/core/schemas/lending.ts
|
|
730
|
-
var import_zod3 = require("zod");
|
|
731
|
-
var BorrowTokensRequestSchema = import_zod3.z.object({
|
|
732
|
-
borrowToken: TokenSchema,
|
|
733
|
-
amount: import_zod3.z.bigint(),
|
|
734
|
-
walletAddress: import_zod3.z.string()
|
|
735
|
-
});
|
|
736
|
-
var BorrowTokensResponseSchema = import_zod3.z.object({
|
|
737
|
-
currentBorrowApy: import_zod3.z.string(),
|
|
738
|
-
liquidationThreshold: import_zod3.z.string(),
|
|
739
|
-
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
740
|
-
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
741
|
-
});
|
|
742
|
-
var RepayTokensRequestSchema = import_zod3.z.object({
|
|
743
|
-
repayToken: TokenSchema,
|
|
744
|
-
amount: import_zod3.z.bigint(),
|
|
745
|
-
walletAddress: import_zod3.z.string()
|
|
746
|
-
});
|
|
747
|
-
var RepayTokensResponseSchema = import_zod3.z.object({
|
|
748
|
-
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
749
|
-
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
750
|
-
});
|
|
751
|
-
var SupplyTokensRequestSchema = import_zod3.z.object({
|
|
752
|
-
supplyToken: TokenSchema,
|
|
753
|
-
amount: import_zod3.z.bigint(),
|
|
754
|
-
walletAddress: import_zod3.z.string()
|
|
755
|
-
});
|
|
756
|
-
var SupplyTokensResponseSchema = import_zod3.z.object({
|
|
757
|
-
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
758
|
-
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
759
|
-
});
|
|
760
|
-
var WithdrawTokensRequestSchema = import_zod3.z.object({
|
|
761
|
-
tokenToWithdraw: TokenSchema,
|
|
762
|
-
amount: import_zod3.z.bigint(),
|
|
763
|
-
walletAddress: import_zod3.z.string()
|
|
764
|
-
});
|
|
765
|
-
var WithdrawTokensResponseSchema = import_zod3.z.object({
|
|
766
|
-
feeBreakdown: FeeBreakdownSchema.optional(),
|
|
767
|
-
transactions: import_zod3.z.array(TransactionPlanSchema)
|
|
768
|
-
});
|
|
769
|
-
var TokenPositionSchema = import_zod3.z.object({
|
|
770
|
-
underlyingToken: TokenSchema,
|
|
771
|
-
borrowRate: import_zod3.z.string(),
|
|
772
|
-
supplyBalance: import_zod3.z.string(),
|
|
773
|
-
borrowBalance: import_zod3.z.string(),
|
|
774
|
-
valueUsd: import_zod3.z.string()
|
|
775
|
-
});
|
|
776
|
-
var GetWalletLendingPositionsRequestSchema = import_zod3.z.object({
|
|
777
|
-
walletAddress: import_zod3.z.string()
|
|
778
|
-
});
|
|
779
|
-
var LendTokenDetailSchema = import_zod3.z.object({
|
|
780
|
-
token: TokenSchema,
|
|
781
|
-
underlyingBalance: import_zod3.z.string(),
|
|
782
|
-
underlyingBalanceUsd: import_zod3.z.string(),
|
|
783
|
-
variableBorrows: import_zod3.z.string(),
|
|
784
|
-
variableBorrowsUsd: import_zod3.z.string(),
|
|
785
|
-
totalBorrows: import_zod3.z.string(),
|
|
786
|
-
totalBorrowsUsd: import_zod3.z.string()
|
|
787
|
-
});
|
|
788
|
-
var GetWalletLendingPositionsResponseSchema = import_zod3.z.object({
|
|
789
|
-
userReserves: import_zod3.z.array(LendTokenDetailSchema),
|
|
790
|
-
totalLiquidityUsd: import_zod3.z.string(),
|
|
791
|
-
totalCollateralUsd: import_zod3.z.string(),
|
|
792
|
-
totalBorrowsUsd: import_zod3.z.string(),
|
|
793
|
-
netWorthUsd: import_zod3.z.string(),
|
|
794
|
-
availableBorrowsUsd: import_zod3.z.string(),
|
|
795
|
-
currentLoanToValue: import_zod3.z.string(),
|
|
796
|
-
currentLiquidationThreshold: import_zod3.z.string(),
|
|
797
|
-
healthFactor: import_zod3.z.string()
|
|
798
|
-
});
|
|
799
|
-
|
|
800
|
-
// src/core/schemas/liquidity.ts
|
|
801
|
-
var import_zod4 = require("zod");
|
|
802
|
-
var LimitedLiquidityProvisionRangeSchema = import_zod4.z.object({
|
|
803
|
-
minPrice: import_zod4.z.string(),
|
|
804
|
-
maxPrice: import_zod4.z.string()
|
|
805
|
-
});
|
|
806
|
-
var LiquidityProvisionRangeSchema = import_zod4.z.discriminatedUnion("type", [
|
|
807
|
-
import_zod4.z.object({
|
|
808
|
-
type: import_zod4.z.literal("full")
|
|
809
|
-
}),
|
|
810
|
-
import_zod4.z.object({
|
|
811
|
-
type: import_zod4.z.literal("limited"),
|
|
812
|
-
minPrice: import_zod4.z.string(),
|
|
813
|
-
maxPrice: import_zod4.z.string()
|
|
814
|
-
})
|
|
815
|
-
]);
|
|
816
|
-
var LiquidityPositionRangeSchema = import_zod4.z.object({
|
|
817
|
-
fromPrice: import_zod4.z.string(),
|
|
818
|
-
toPrice: import_zod4.z.string()
|
|
819
|
-
});
|
|
820
|
-
var LiquiditySuppliedTokenSchema = import_zod4.z.object({
|
|
821
|
-
tokenUid: TokenIdentifierSchema,
|
|
822
|
-
suppliedAmount: import_zod4.z.string(),
|
|
823
|
-
owedTokens: import_zod4.z.string()
|
|
824
|
-
});
|
|
825
|
-
var LiquidityPositionSchema = import_zod4.z.object({
|
|
826
|
-
poolIdentifier: TokenIdentifierSchema,
|
|
827
|
-
operator: import_zod4.z.string(),
|
|
828
|
-
suppliedTokens: import_zod4.z.array(LiquiditySuppliedTokenSchema),
|
|
829
|
-
price: import_zod4.z.string(),
|
|
830
|
-
providerId: import_zod4.z.string(),
|
|
831
|
-
positionRange: LiquidityPositionRangeSchema.optional()
|
|
832
|
-
});
|
|
833
|
-
var LiquidityPoolTokens = import_zod4.z.object({
|
|
834
|
-
tokenUid: TokenIdentifierSchema
|
|
835
|
-
});
|
|
836
|
-
var LiquidityPoolSchema = import_zod4.z.object({
|
|
837
|
-
identifier: TokenIdentifierSchema,
|
|
838
|
-
tokens: import_zod4.z.array(LiquidityPoolTokens),
|
|
839
|
-
price: import_zod4.z.string(),
|
|
840
|
-
providerId: import_zod4.z.string()
|
|
841
|
-
});
|
|
842
|
-
var LiquidityPayTokensSchema = import_zod4.z.object({
|
|
843
|
-
token: TokenSchema,
|
|
844
|
-
supplyAmount: import_zod4.z.bigint()
|
|
845
|
-
});
|
|
846
|
-
var SupplyLiquidityRequestSchema = import_zod4.z.object({
|
|
847
|
-
walletAddress: import_zod4.z.string(),
|
|
848
|
-
poolToken: TokenSchema,
|
|
849
|
-
payTokens: import_zod4.z.array(LiquidityPayTokensSchema),
|
|
850
|
-
range: LiquidityProvisionRangeSchema.optional()
|
|
851
|
-
});
|
|
852
|
-
var SupplyLiquidityResponseSchema = import_zod4.z.object({
|
|
853
|
-
transactions: import_zod4.z.array(TransactionPlanSchema),
|
|
854
|
-
poolIdentifier: TokenIdentifierSchema
|
|
855
|
-
});
|
|
856
|
-
var WithdrawLiquidityRequestSchema = import_zod4.z.object({
|
|
857
|
-
poolToken: TokenSchema,
|
|
858
|
-
walletAddress: import_zod4.z.string()
|
|
859
|
-
});
|
|
860
|
-
var WithdrawLiquidityResponseSchema = import_zod4.z.object({
|
|
861
|
-
transactions: import_zod4.z.array(TransactionPlanSchema),
|
|
862
|
-
chainId: import_zod4.z.string()
|
|
863
|
-
});
|
|
864
|
-
var GetWalletLiquidityPositionsRequestSchema = import_zod4.z.object({
|
|
865
|
-
walletAddress: import_zod4.z.string()
|
|
866
|
-
});
|
|
867
|
-
var GetWalletLiquidityPositionsResponseSchema = import_zod4.z.object({
|
|
868
|
-
positions: import_zod4.z.array(LiquidityPositionSchema)
|
|
869
|
-
});
|
|
870
|
-
var GetLiquidityPoolsResponseSchema = import_zod4.z.object({
|
|
871
|
-
liquidityPools: import_zod4.z.array(LiquidityPoolSchema)
|
|
872
|
-
});
|
|
878
|
+
// src/aave-lending-plugin/populateTransaction.ts
|
|
879
|
+
async function populateTransaction(tx) {
|
|
880
|
+
let txData = null;
|
|
881
|
+
try {
|
|
882
|
+
txData = await tx.tx();
|
|
883
|
+
} catch (unknownError) {
|
|
884
|
+
const reason = typeof unknownError === "object" && unknownError !== null && "reason" in unknownError && typeof unknownError.reason === "string" ? unknownError.reason : "";
|
|
885
|
+
const errorCode = reason.split(" ").pop();
|
|
886
|
+
const aaveError = getAaveError(errorCode);
|
|
887
|
+
if (aaveError !== null) {
|
|
888
|
+
throw aaveError;
|
|
889
|
+
} else {
|
|
890
|
+
throw unknownError;
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
if (!txData) {
|
|
894
|
+
throw new Error("Failed to populate transaction");
|
|
895
|
+
}
|
|
896
|
+
return {
|
|
897
|
+
value: import_ethers2.ethers.BigNumber.from(txData.value ?? 0),
|
|
898
|
+
from: txData.from,
|
|
899
|
+
to: txData.to,
|
|
900
|
+
data: txData.data
|
|
901
|
+
};
|
|
902
|
+
}
|
|
873
903
|
|
|
874
|
-
// src/
|
|
875
|
-
var
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
}
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
contractAcceptablePrice: import_zod5.z.string(),
|
|
916
|
-
contractTriggerPrice: import_zod5.z.string(),
|
|
917
|
-
callbackGasLimit: import_zod5.z.string(),
|
|
918
|
-
executionFee: import_zod5.z.string(),
|
|
919
|
-
initialCollateralDeltaAmount: import_zod5.z.string(),
|
|
920
|
-
minOutputAmount: import_zod5.z.string(),
|
|
921
|
-
sizeDeltaUsd: import_zod5.z.string(),
|
|
922
|
-
updatedAtTime: import_zod5.z.string(),
|
|
923
|
-
isFrozen: import_zod5.z.boolean(),
|
|
924
|
-
positionSide: PositionSideSchema,
|
|
925
|
-
orderType: import_zod5.z.nativeEnum(import_orders.OrderType),
|
|
926
|
-
shouldUnwrapNativeToken: import_zod5.z.boolean(),
|
|
927
|
-
autoCancel: import_zod5.z.boolean(),
|
|
928
|
-
data: import_zod5.z.string().optional(),
|
|
929
|
-
uiFeeReceiver: import_zod5.z.string(),
|
|
930
|
-
validFromTime: import_zod5.z.string(),
|
|
931
|
-
title: import_zod5.z.string().optional()
|
|
932
|
-
});
|
|
933
|
-
var OrdersDataSchema = import_zod5.z.array(OrderSchema);
|
|
934
|
-
var CreatePerpetualsPositionRequestSchema = import_zod5.z.object({
|
|
935
|
-
amount: import_zod5.z.bigint(),
|
|
936
|
-
walletAddress: import_zod5.z.string(),
|
|
937
|
-
chainId: import_zod5.z.string(),
|
|
938
|
-
marketAddress: import_zod5.z.string(),
|
|
939
|
-
payTokenAddress: import_zod5.z.string(),
|
|
940
|
-
collateralTokenAddress: import_zod5.z.string(),
|
|
941
|
-
referralCode: import_zod5.z.string().optional(),
|
|
942
|
-
limitPrice: import_zod5.z.string().optional(),
|
|
943
|
-
leverage: import_zod5.z.string()
|
|
944
|
-
});
|
|
945
|
-
var CreatePerpetualsPositionResponseSchema = import_zod5.z.object({
|
|
946
|
-
transactions: import_zod5.z.array(TransactionPlanSchema)
|
|
947
|
-
});
|
|
948
|
-
var GetPerpetualsMarketsPositionsRequestSchema = import_zod5.z.object({
|
|
949
|
-
walletAddress: import_zod5.z.string().describe("User's wallet address")
|
|
950
|
-
});
|
|
951
|
-
var GetPerpetualsMarketsPositionsResponseSchema = import_zod5.z.object({
|
|
952
|
-
positions: PositionsDataSchema
|
|
953
|
-
});
|
|
954
|
-
var GetPerpetualsMarketsOrdersRequestSchema = import_zod5.z.object({
|
|
955
|
-
walletAddress: import_zod5.z.string().describe("User's wallet address")
|
|
956
|
-
});
|
|
957
|
-
var GetPerpetualsMarketsOrdersResponseSchema = import_zod5.z.object({
|
|
958
|
-
orders: OrdersDataSchema
|
|
959
|
-
});
|
|
960
|
-
var ClosePerpetualsOrdersRequestSchema = import_zod5.z.object({
|
|
961
|
-
walletAddress: import_zod5.z.string().describe("User's wallet address"),
|
|
962
|
-
key: import_zod5.z.string()
|
|
963
|
-
});
|
|
964
|
-
var ClosePerpetualsOrdersResponseSchema = import_zod5.z.object({
|
|
965
|
-
transactions: import_zod5.z.array(TransactionPlanSchema)
|
|
966
|
-
});
|
|
967
|
-
var GetPerpetualsMarketsRequestSchema = import_zod5.z.object({
|
|
968
|
-
chainIds: import_zod5.z.array(import_zod5.z.string())
|
|
969
|
-
});
|
|
970
|
-
var PerpetualMarketSchema = import_zod5.z.object({
|
|
971
|
-
marketToken: TokenIdentifierSchema,
|
|
972
|
-
indexToken: TokenIdentifierSchema,
|
|
973
|
-
longToken: TokenIdentifierSchema,
|
|
974
|
-
shortToken: TokenIdentifierSchema,
|
|
975
|
-
longFundingFee: import_zod5.z.string(),
|
|
976
|
-
shortFundingFee: import_zod5.z.string(),
|
|
977
|
-
longBorrowingFee: import_zod5.z.string(),
|
|
978
|
-
shortBorrowingFee: import_zod5.z.string(),
|
|
979
|
-
chainId: import_zod5.z.string(),
|
|
980
|
-
name: import_zod5.z.string()
|
|
981
|
-
});
|
|
982
|
-
var GetPerpetualsMarketsResponseSchema = import_zod5.z.object({
|
|
983
|
-
markets: import_zod5.z.array(PerpetualMarketSchema)
|
|
984
|
-
});
|
|
904
|
+
// src/aave-lending-plugin/userSummary.ts
|
|
905
|
+
var import_math_utils = require("@aave/math-utils");
|
|
906
|
+
function formatNumeric(value) {
|
|
907
|
+
const num = parseFloat(value);
|
|
908
|
+
if (Number.isInteger(num)) return num.toString();
|
|
909
|
+
return parseFloat(num.toFixed(2)).toString();
|
|
910
|
+
}
|
|
911
|
+
var UserSummary = class {
|
|
912
|
+
reserves;
|
|
913
|
+
/**
|
|
914
|
+
* @param userReservesResponse - The response from getUserReservesHumanized.
|
|
915
|
+
* @param reservesResponse - The response from getReservesHumanized.
|
|
916
|
+
*/
|
|
917
|
+
constructor(userReservesResponse, reservesResponse) {
|
|
918
|
+
const currentTimestamp = Date.now() / 1e3;
|
|
919
|
+
const formattedReserves = (0, import_math_utils.formatReserves)({
|
|
920
|
+
reserves: reservesResponse.reservesData,
|
|
921
|
+
currentTimestamp,
|
|
922
|
+
marketReferenceCurrencyDecimals: reservesResponse.baseCurrencyData.marketReferenceCurrencyDecimals,
|
|
923
|
+
marketReferencePriceInUsd: reservesResponse.baseCurrencyData.marketReferenceCurrencyPriceInUsd
|
|
924
|
+
});
|
|
925
|
+
this.reserves = (0, import_math_utils.formatUserSummary)({
|
|
926
|
+
currentTimestamp,
|
|
927
|
+
marketReferencePriceInUsd: reservesResponse.baseCurrencyData.marketReferenceCurrencyPriceInUsd,
|
|
928
|
+
marketReferenceCurrencyDecimals: reservesResponse.baseCurrencyData.marketReferenceCurrencyDecimals,
|
|
929
|
+
userReserves: userReservesResponse.userReserves,
|
|
930
|
+
formattedReserves,
|
|
931
|
+
userEmodeCategoryId: userReservesResponse.userEmodeCategoryId
|
|
932
|
+
});
|
|
933
|
+
}
|
|
934
|
+
toHumanReadable() {
|
|
935
|
+
let output = "User Positions:\n";
|
|
936
|
+
output += `Total Liquidity (USD): ${formatNumeric(this.reserves.totalLiquidityUSD)}
|
|
937
|
+
`;
|
|
938
|
+
output += `Total Collateral (USD): ${formatNumeric(this.reserves.totalCollateralUSD)}
|
|
939
|
+
`;
|
|
940
|
+
output += `Total Borrows (USD): ${formatNumeric(this.reserves.totalBorrowsUSD)}
|
|
941
|
+
`;
|
|
942
|
+
output += `Net Worth (USD): ${formatNumeric(this.reserves.netWorthUSD)}
|
|
943
|
+
`;
|
|
944
|
+
output += `Health Factor: ${formatNumeric(this.reserves.healthFactor)}
|
|
985
945
|
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
}
|
|
946
|
+
`;
|
|
947
|
+
output += "Deposits:\n";
|
|
948
|
+
for (const entry of this.reserves.userReservesData) {
|
|
949
|
+
if (parseFloat(entry.scaledATokenBalance) > 0) {
|
|
950
|
+
const underlying = entry.underlyingBalance;
|
|
951
|
+
const underlyingUSD = entry.underlyingBalanceUSD ? formatNumeric(entry.underlyingBalanceUSD) : "N/A";
|
|
952
|
+
output += `- ${entry.reserve.symbol}: ${underlying} (USD: ${underlyingUSD})
|
|
953
|
+
`;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
output += "\nLoans:\n";
|
|
957
|
+
for (const entry of this.reserves.userReservesData) {
|
|
958
|
+
const borrow = entry.totalBorrows || "0";
|
|
959
|
+
if (parseFloat(borrow) > 0) {
|
|
960
|
+
const totalBorrows = entry.totalBorrows;
|
|
961
|
+
const totalBorrowsUSD = entry.totalBorrowsUSD ? formatNumeric(entry.totalBorrowsUSD) : "N/A";
|
|
962
|
+
output += `- ${entry.reserve.symbol}: ${totalBorrows} (USD: ${totalBorrowsUSD})
|
|
963
|
+
`;
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
return output;
|
|
967
|
+
}
|
|
968
|
+
};
|
|
1009
969
|
|
|
1010
970
|
// src/aave-lending-plugin/adapter.ts
|
|
1011
|
-
var import_locales = require("zod/v4/locales");
|
|
1012
971
|
var AAVE_ETH_PLACEHOLDER = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
1013
972
|
var AAVEAdapter = class {
|
|
1014
973
|
chain;
|
|
@@ -1056,7 +1015,7 @@ var AAVEAdapter = class {
|
|
|
1056
1015
|
const reservesResponse = await this.getReserves();
|
|
1057
1016
|
let reserveLiquidationThreshold = null;
|
|
1058
1017
|
for (const reserve of reservesResponse.reservesData) {
|
|
1059
|
-
const token =
|
|
1018
|
+
const token = import_ethers3.ethers.utils.getAddress(reserve.underlyingAsset);
|
|
1060
1019
|
if (token === normalizedTokenAddress) {
|
|
1061
1020
|
reserveLiquidationThreshold = reserve.reserveLiquidationThreshold;
|
|
1062
1021
|
}
|
|
@@ -1074,7 +1033,7 @@ var AAVEAdapter = class {
|
|
|
1074
1033
|
async createRepayTransaction(params) {
|
|
1075
1034
|
const { repayToken, amount, walletAddress: from } = params;
|
|
1076
1035
|
const normalizedAsset = this.normalizeTokenAddress(repayToken);
|
|
1077
|
-
const txs = await this.repay(normalizedAsset, amount.toString(), from);
|
|
1036
|
+
const txs = await this.repay(normalizedAsset, amount.toString(), from, repayToken.decimals);
|
|
1078
1037
|
return {
|
|
1079
1038
|
transactions: txs.map((t) => transactionPlanFromEthers(this.chain.id.toString(), t))
|
|
1080
1039
|
};
|
|
@@ -1082,7 +1041,12 @@ var AAVEAdapter = class {
|
|
|
1082
1041
|
async createRepayTransactionWithATokens(params) {
|
|
1083
1042
|
const { repayToken, amount, walletAddress: from } = params;
|
|
1084
1043
|
const normalizedAsset = this.normalizeTokenAddress(repayToken);
|
|
1085
|
-
const txs = await this.repayWithATokens(
|
|
1044
|
+
const txs = await this.repayWithATokens(
|
|
1045
|
+
normalizedAsset,
|
|
1046
|
+
amount.toString(),
|
|
1047
|
+
from,
|
|
1048
|
+
repayToken.decimals
|
|
1049
|
+
);
|
|
1086
1050
|
return {
|
|
1087
1051
|
transactions: txs.map((t) => transactionPlanFromEthers(this.chain.id.toString(), t))
|
|
1088
1052
|
};
|
|
@@ -1098,14 +1062,6 @@ var AAVEAdapter = class {
|
|
|
1098
1062
|
WETH_GATEWAY: this.market.WETH_GATEWAY
|
|
1099
1063
|
});
|
|
1100
1064
|
}
|
|
1101
|
-
async getTokenData(address) {
|
|
1102
|
-
let targetAddress = address;
|
|
1103
|
-
if (address === AAVE_ETH_PLACEHOLDER) {
|
|
1104
|
-
const poolData = await this.getPool(address);
|
|
1105
|
-
targetAddress = poolData.tokenAddress;
|
|
1106
|
-
}
|
|
1107
|
-
return await this.getPoolBundle().erc20Service.getTokenData(targetAddress);
|
|
1108
|
-
}
|
|
1109
1065
|
getPoolDataProvider() {
|
|
1110
1066
|
const provider = this.getProvider();
|
|
1111
1067
|
const DataProviderImpl = getUiPoolDataProviderImpl(this.chain.id);
|
|
@@ -1131,7 +1087,7 @@ var AAVEAdapter = class {
|
|
|
1131
1087
|
throw new Error(`No wrapped native token configured for chain ${this.chain.id}`);
|
|
1132
1088
|
}
|
|
1133
1089
|
const wrappedNativeTokenReserve = reservesResponse.reservesData.find(
|
|
1134
|
-
(r) =>
|
|
1090
|
+
(r) => import_ethers3.ethers.utils.getAddress(r.underlyingAsset) === configuredWrappedNativeToken
|
|
1135
1091
|
);
|
|
1136
1092
|
if (!wrappedNativeTokenReserve) {
|
|
1137
1093
|
throw new Error(`Wrapped native token reserve not found for native token operations`);
|
|
@@ -1139,7 +1095,7 @@ var AAVEAdapter = class {
|
|
|
1139
1095
|
targetAsset = wrappedNativeTokenReserve.underlyingAsset;
|
|
1140
1096
|
}
|
|
1141
1097
|
const reserve = reservesResponse.reservesData.find(
|
|
1142
|
-
(r) =>
|
|
1098
|
+
(r) => import_ethers3.ethers.utils.getAddress(r.underlyingAsset) === import_ethers3.ethers.utils.getAddress(targetAsset)
|
|
1143
1099
|
);
|
|
1144
1100
|
if (!reserve) {
|
|
1145
1101
|
throw new Error(`Asset ${asset} not found in reserves`);
|
|
@@ -1182,22 +1138,11 @@ var AAVEAdapter = class {
|
|
|
1182
1138
|
variableBorrowsUSD,
|
|
1183
1139
|
totalBorrows,
|
|
1184
1140
|
totalBorrowsUSD: totalBorrowsUSD2
|
|
1185
|
-
} of userReservesData.filter((
|
|
1186
|
-
const tokenData = await this.getTokenData(reserve.underlyingAsset);
|
|
1141
|
+
} of userReservesData.filter((ur) => ur.underlyingBalanceUSD !== "0")) {
|
|
1187
1142
|
userReservesFormatted.push({
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
tokenUid: {
|
|
1192
|
-
address: reserve.underlyingAsset,
|
|
1193
|
-
chainId: this.chain.id.toString()
|
|
1194
|
-
},
|
|
1195
|
-
isNative: false,
|
|
1196
|
-
name: tokenData.name,
|
|
1197
|
-
symbol: tokenData.symbol,
|
|
1198
|
-
decimals: tokenData.decimals,
|
|
1199
|
-
isVetted: true
|
|
1200
|
-
// assuming aave only lets really good assets in
|
|
1143
|
+
tokenUid: {
|
|
1144
|
+
address: reserve.underlyingAsset,
|
|
1145
|
+
chainId: this.chain.id.toString()
|
|
1201
1146
|
},
|
|
1202
1147
|
underlyingBalance,
|
|
1203
1148
|
underlyingBalanceUsd: underlyingBalanceUSD,
|
|
@@ -1220,7 +1165,7 @@ var AAVEAdapter = class {
|
|
|
1220
1165
|
};
|
|
1221
1166
|
}
|
|
1222
1167
|
async _getUserSummary(userAddress) {
|
|
1223
|
-
const validatedUser =
|
|
1168
|
+
const validatedUser = import_ethers3.ethers.utils.getAddress(userAddress);
|
|
1224
1169
|
const poolDataProvider = this.getPoolDataProvider();
|
|
1225
1170
|
const reservesResponse = await this.getReserves();
|
|
1226
1171
|
const userReservesResponse = await poolDataProvider.getUserReservesHumanized({
|
|
@@ -1229,9 +1174,9 @@ var AAVEAdapter = class {
|
|
|
1229
1174
|
});
|
|
1230
1175
|
return new UserSummary(userReservesResponse, reservesResponse);
|
|
1231
1176
|
}
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1177
|
+
borrow(asset, amount, from) {
|
|
1178
|
+
import_ethers3.ethers.utils.getAddress(asset);
|
|
1179
|
+
import_ethers3.ethers.utils.getAddress(from);
|
|
1235
1180
|
const bundle = this.getPoolBundle();
|
|
1236
1181
|
const tx = bundle.borrowTxBuilder.generateTxData({
|
|
1237
1182
|
user: from,
|
|
@@ -1239,7 +1184,7 @@ var AAVEAdapter = class {
|
|
|
1239
1184
|
amount,
|
|
1240
1185
|
interestRateMode: import_contract_helpers2.InterestRate.Variable
|
|
1241
1186
|
});
|
|
1242
|
-
return [tx];
|
|
1187
|
+
return Promise.resolve([tx]);
|
|
1243
1188
|
}
|
|
1244
1189
|
async createApproval({
|
|
1245
1190
|
asset,
|
|
@@ -1267,8 +1212,8 @@ var AAVEAdapter = class {
|
|
|
1267
1212
|
return approvalTx;
|
|
1268
1213
|
}
|
|
1269
1214
|
async supply(asset, amount, from) {
|
|
1270
|
-
|
|
1271
|
-
|
|
1215
|
+
import_ethers3.ethers.utils.getAddress(asset);
|
|
1216
|
+
import_ethers3.ethers.utils.getAddress(from);
|
|
1272
1217
|
const bundle = this.getPoolBundle();
|
|
1273
1218
|
const approvalTx = await this.createApproval({
|
|
1274
1219
|
asset,
|
|
@@ -1284,11 +1229,11 @@ var AAVEAdapter = class {
|
|
|
1284
1229
|
});
|
|
1285
1230
|
return (approvalTx ? [approvalTx] : []).concat([tx]);
|
|
1286
1231
|
}
|
|
1287
|
-
async repay(asset, amount_formatted, from) {
|
|
1288
|
-
|
|
1289
|
-
|
|
1232
|
+
async repay(asset, amount_formatted, from, tokenDecimals) {
|
|
1233
|
+
import_ethers3.ethers.utils.getAddress(asset);
|
|
1234
|
+
import_ethers3.ethers.utils.getAddress(from);
|
|
1290
1235
|
const bundle = this.getPoolBundle();
|
|
1291
|
-
const amount =
|
|
1236
|
+
const amount = import_ethers3.utils.parseUnits(amount_formatted, tokenDecimals).toString();
|
|
1292
1237
|
const tx = bundle.repayTxBuilder.generateTxData({
|
|
1293
1238
|
user: from,
|
|
1294
1239
|
reserve: asset,
|
|
@@ -1304,12 +1249,11 @@ var AAVEAdapter = class {
|
|
|
1304
1249
|
});
|
|
1305
1250
|
return (approvalTx ? [approvalTx] : []).concat([tx]);
|
|
1306
1251
|
}
|
|
1307
|
-
async repayWithATokens(asset, amount_formatted, from) {
|
|
1308
|
-
|
|
1309
|
-
|
|
1252
|
+
async repayWithATokens(asset, amount_formatted, from, tokenDecimals) {
|
|
1253
|
+
import_ethers3.ethers.utils.getAddress(asset);
|
|
1254
|
+
import_ethers3.ethers.utils.getAddress(from);
|
|
1310
1255
|
const bundle = this.getPoolBundle();
|
|
1311
|
-
const
|
|
1312
|
-
const amount = import_ethers4.utils.parseUnits(amount_formatted, tokenData.decimals).toString();
|
|
1256
|
+
const amount = import_ethers3.utils.parseUnits(amount_formatted, tokenDecimals).toString();
|
|
1313
1257
|
const tx = bundle.repayWithATokensTxBuilder.generateTxData({
|
|
1314
1258
|
user: from,
|
|
1315
1259
|
reserve: asset,
|
|
@@ -1319,9 +1263,9 @@ var AAVEAdapter = class {
|
|
|
1319
1263
|
return [tx];
|
|
1320
1264
|
}
|
|
1321
1265
|
async withdraw(asset, amount, to, from) {
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1266
|
+
import_ethers3.ethers.utils.getAddress(asset);
|
|
1267
|
+
import_ethers3.ethers.utils.getAddress(to);
|
|
1268
|
+
import_ethers3.ethers.utils.getAddress(from);
|
|
1325
1269
|
const pool = this.getPoolContract();
|
|
1326
1270
|
const txs = await pool.withdraw({
|
|
1327
1271
|
user: from,
|
|
@@ -1466,6 +1410,41 @@ function registerAave(chainConfig, registry) {
|
|
|
1466
1410
|
);
|
|
1467
1411
|
}
|
|
1468
1412
|
|
|
1413
|
+
// src/registry.ts
|
|
1414
|
+
var PublicEmberPluginRegistry = class {
|
|
1415
|
+
plugins = [];
|
|
1416
|
+
deferredPlugins = [];
|
|
1417
|
+
/**
|
|
1418
|
+
* Register a new Ember plugin.
|
|
1419
|
+
* @param plugin The plugin to register.
|
|
1420
|
+
*/
|
|
1421
|
+
registerPlugin(plugin) {
|
|
1422
|
+
this.plugins.push(plugin);
|
|
1423
|
+
}
|
|
1424
|
+
/**
|
|
1425
|
+
* Register a new deferred Ember plugin.
|
|
1426
|
+
* @param pluginPromise The promise resolving to the plugin to register.
|
|
1427
|
+
*/
|
|
1428
|
+
registerDeferredPlugin(pluginPromise) {
|
|
1429
|
+
this.deferredPlugins.push(pluginPromise);
|
|
1430
|
+
}
|
|
1431
|
+
/**
|
|
1432
|
+
* Iterator for the registered Ember plugins.
|
|
1433
|
+
*/
|
|
1434
|
+
async *getPlugins() {
|
|
1435
|
+
yield* this.plugins;
|
|
1436
|
+
for (const pluginPromise of this.deferredPlugins) {
|
|
1437
|
+
const plugin = await pluginPromise;
|
|
1438
|
+
this.registerPlugin(plugin);
|
|
1439
|
+
yield plugin;
|
|
1440
|
+
}
|
|
1441
|
+
this.deferredPlugins = [];
|
|
1442
|
+
}
|
|
1443
|
+
get emberPlugins() {
|
|
1444
|
+
return this.plugins;
|
|
1445
|
+
}
|
|
1446
|
+
};
|
|
1447
|
+
|
|
1469
1448
|
// src/index.ts
|
|
1470
1449
|
function initializePublicRegistry(chainConfigs) {
|
|
1471
1450
|
const registry = new PublicEmberPluginRegistry();
|
|
@@ -1525,7 +1504,6 @@ function initializePublicRegistry(chainConfigs) {
|
|
|
1525
1504
|
SwapTokensRequestSchema,
|
|
1526
1505
|
SwapTokensResponseSchema,
|
|
1527
1506
|
TokenIdentifierSchema,
|
|
1528
|
-
TokenPositionSchema,
|
|
1529
1507
|
TokenSchema,
|
|
1530
1508
|
TransactionPlanErrorSchema,
|
|
1531
1509
|
TransactionPlanSchema,
|