@emberai/onchain-actions-registry 1.0.0-alpha.3
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/aave-lending-plugin/adapter.d.ts +56 -0
- package/dist/aave-lending-plugin/adapter.d.ts.map +1 -0
- package/dist/aave-lending-plugin/adapter.js +326 -0
- package/dist/aave-lending-plugin/adapter.js.map +1 -0
- package/dist/aave-lending-plugin/chain.d.ts +30 -0
- package/dist/aave-lending-plugin/chain.d.ts.map +1 -0
- package/dist/aave-lending-plugin/chain.js +36 -0
- package/dist/aave-lending-plugin/chain.js.map +1 -0
- package/dist/aave-lending-plugin/dataProvider.d.ts +19 -0
- package/dist/aave-lending-plugin/dataProvider.d.ts.map +1 -0
- package/dist/aave-lending-plugin/dataProvider.js +18 -0
- package/dist/aave-lending-plugin/dataProvider.js.map +1 -0
- package/dist/aave-lending-plugin/errors.d.ts +13 -0
- package/dist/aave-lending-plugin/errors.d.ts.map +1 -0
- package/dist/aave-lending-plugin/errors.js +366 -0
- package/dist/aave-lending-plugin/errors.js.map +1 -0
- package/dist/aave-lending-plugin/index.d.ts +24 -0
- package/dist/aave-lending-plugin/index.d.ts.map +1 -0
- package/dist/aave-lending-plugin/index.js +136 -0
- package/dist/aave-lending-plugin/index.js.map +1 -0
- package/dist/aave-lending-plugin/market.d.ts +11 -0
- package/dist/aave-lending-plugin/market.d.ts.map +1 -0
- package/dist/aave-lending-plugin/market.js +22 -0
- package/dist/aave-lending-plugin/market.js.map +1 -0
- package/dist/aave-lending-plugin/populateTransaction.d.ts +4 -0
- package/dist/aave-lending-plugin/populateTransaction.d.ts.map +1 -0
- package/dist/aave-lending-plugin/populateTransaction.js +31 -0
- package/dist/aave-lending-plugin/populateTransaction.js.map +1 -0
- package/dist/aave-lending-plugin/userSummary.d.ts +15 -0
- package/dist/aave-lending-plugin/userSummary.d.ts.map +1 -0
- package/dist/aave-lending-plugin/userSummary.js +62 -0
- package/dist/aave-lending-plugin/userSummary.js.map +1 -0
- package/dist/chainConfig.d.ts +10 -0
- package/dist/chainConfig.d.ts.map +1 -0
- package/dist/chainConfig.js +2 -0
- package/dist/chainConfig.js.map +1 -0
- package/dist/core/actions/index.d.ts +6 -0
- package/dist/core/actions/index.d.ts.map +1 -0
- package/dist/core/actions/index.js +2 -0
- package/dist/core/actions/index.js.map +1 -0
- package/dist/core/actions/lending.d.ts +22 -0
- package/dist/core/actions/lending.d.ts.map +1 -0
- package/dist/core/actions/lending.js +2 -0
- package/dist/core/actions/lending.js.map +1 -0
- package/dist/core/actions/liquidity.d.ts +14 -0
- package/dist/core/actions/liquidity.d.ts.map +1 -0
- package/dist/core/actions/liquidity.js +2 -0
- package/dist/core/actions/liquidity.js.map +1 -0
- package/dist/core/actions/perpetuals.d.ts +6 -0
- package/dist/core/actions/perpetuals.d.ts.map +1 -0
- package/dist/core/actions/perpetuals.js +2 -0
- package/dist/core/actions/perpetuals.js.map +1 -0
- package/dist/core/actions/swap.d.ts +10 -0
- package/dist/core/actions/swap.d.ts.map +1 -0
- package/dist/core/actions/swap.js +2 -0
- package/dist/core/actions/swap.js.map +1 -0
- package/dist/core/actions/types.d.ts +70 -0
- package/dist/core/actions/types.d.ts.map +1 -0
- package/dist/core/actions/types.js +2 -0
- package/dist/core/actions/types.js.map +1 -0
- package/dist/core/index.d.ts +41 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/pluginType.d.ts +25 -0
- package/dist/core/pluginType.d.ts.map +1 -0
- package/dist/core/pluginType.js +2 -0
- package/dist/core/pluginType.js.map +1 -0
- package/dist/core/queries/index.d.ts +4 -0
- package/dist/core/queries/index.d.ts.map +1 -0
- package/dist/core/queries/index.js +4 -0
- package/dist/core/queries/index.js.map +1 -0
- package/dist/core/queries/lending.d.ts +12 -0
- package/dist/core/queries/lending.d.ts.map +1 -0
- package/dist/core/queries/lending.js +2 -0
- package/dist/core/queries/lending.js.map +1 -0
- package/dist/core/queries/liquidity.d.ts +17 -0
- package/dist/core/queries/liquidity.d.ts.map +1 -0
- package/dist/core/queries/liquidity.js +2 -0
- package/dist/core/queries/liquidity.js.map +1 -0
- package/dist/core/queries/perpetuals.d.ts +10 -0
- package/dist/core/queries/perpetuals.d.ts.map +1 -0
- package/dist/core/queries/perpetuals.js +2 -0
- package/dist/core/queries/perpetuals.js.map +1 -0
- package/dist/core/schemas/core.d.ts +315 -0
- package/dist/core/schemas/core.d.ts.map +1 -0
- package/dist/core/schemas/core.js +76 -0
- package/dist/core/schemas/core.js.map +1 -0
- package/dist/core/schemas/enums.d.ts +37 -0
- package/dist/core/schemas/enums.d.ts.map +1 -0
- package/dist/core/schemas/enums.js +36 -0
- package/dist/core/schemas/enums.js.map +1 -0
- package/dist/core/schemas/index.d.ts +9 -0
- package/dist/core/schemas/index.d.ts.map +1 -0
- package/dist/core/schemas/index.js +9 -0
- package/dist/core/schemas/index.js.map +1 -0
- package/dist/core/schemas/lending.d.ts +903 -0
- package/dist/core/schemas/lending.d.ts.map +1 -0
- package/dist/core/schemas/lending.js +71 -0
- package/dist/core/schemas/lending.js.map +1 -0
- package/dist/core/schemas/liquidity.d.ts +604 -0
- package/dist/core/schemas/liquidity.d.ts.map +1 -0
- package/dist/core/schemas/liquidity.js +74 -0
- package/dist/core/schemas/liquidity.js.map +1 -0
- package/dist/core/schemas/perpetuals.d.ts +974 -0
- package/dist/core/schemas/perpetuals.d.ts.map +1 -0
- package/dist/core/schemas/perpetuals.js +116 -0
- package/dist/core/schemas/perpetuals.js.map +1 -0
- package/dist/core/schemas/requests.d.ts +218 -0
- package/dist/core/schemas/requests.d.ts.map +1 -0
- package/dist/core/schemas/requests.js +15 -0
- package/dist/core/schemas/requests.js.map +1 -0
- package/dist/core/schemas/swap.d.ts +451 -0
- package/dist/core/schemas/swap.d.ts.map +1 -0
- package/dist/core/schemas/swap.js +37 -0
- package/dist/core/schemas/swap.js.map +1 -0
- package/dist/core/schemas/wallet.d.ts +69 -0
- package/dist/core/schemas/wallet.d.ts.map +1 -0
- package/dist/core/schemas/wallet.js +9 -0
- package/dist/core/schemas/wallet.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +24 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +38 -0
- package/dist/registry.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Chain } from './chain.js';
|
|
2
|
+
import { type AAVEMarket } from './market.js';
|
|
3
|
+
import { type PopulatedTransaction } from 'ethers';
|
|
4
|
+
import { type ReservesDataHumanized } from '@aave/contract-helpers';
|
|
5
|
+
import { type BorrowTokensRequest, type BorrowTokensResponse, type RepayTokensRequest, type RepayTokensResponse, type SupplyTokensRequest, type SupplyTokensResponse, type WithdrawTokensRequest, type WithdrawTokensResponse, type GetWalletLendingPositionsResponse, type GetWalletLendingPositionsRequest, type Token } from '../core/index.js';
|
|
6
|
+
export type EModeCategory = 'default' | 'stablecoins';
|
|
7
|
+
export interface PoolData {
|
|
8
|
+
tokenAddress: string;
|
|
9
|
+
poolAddress: string;
|
|
10
|
+
variableBorrowRate: string;
|
|
11
|
+
variableSupplyRate: string;
|
|
12
|
+
ltv: string;
|
|
13
|
+
availableLiquidity: string;
|
|
14
|
+
reserveSize: string;
|
|
15
|
+
}
|
|
16
|
+
export type AAVEAction = PopulatedTransaction[];
|
|
17
|
+
export interface AAVEAdapterParams {
|
|
18
|
+
chainId: number;
|
|
19
|
+
rpcUrl: string;
|
|
20
|
+
wrappedNativeToken?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* AAVEAdapter is the primary class wrapping Aave V3 interactions.
|
|
24
|
+
*/
|
|
25
|
+
export declare class AAVEAdapter {
|
|
26
|
+
chain: Chain;
|
|
27
|
+
market: AAVEMarket;
|
|
28
|
+
constructor(params: AAVEAdapterParams);
|
|
29
|
+
/**
|
|
30
|
+
* If the token is native, return AAVE's placeholder address instead of the ember address.
|
|
31
|
+
* @param token - The token to normalize.
|
|
32
|
+
* @returns The normalized token address.
|
|
33
|
+
*/
|
|
34
|
+
normalizeTokenAddress(token: Token): string;
|
|
35
|
+
createSupplyTransaction(params: SupplyTokensRequest): Promise<SupplyTokensResponse>;
|
|
36
|
+
createWithdrawTransaction(params: WithdrawTokensRequest): Promise<WithdrawTokensResponse>;
|
|
37
|
+
createBorrowTransaction(params: BorrowTokensRequest): Promise<BorrowTokensResponse>;
|
|
38
|
+
createRepayTransaction(params: RepayTokensRequest): Promise<RepayTokensResponse>;
|
|
39
|
+
createRepayTransactionWithATokens(params: RepayTokensRequest): Promise<RepayTokensResponse>;
|
|
40
|
+
private getProvider;
|
|
41
|
+
private getPoolBundle;
|
|
42
|
+
private getTokenData;
|
|
43
|
+
private getPoolDataProvider;
|
|
44
|
+
private getPoolContract;
|
|
45
|
+
private getPool;
|
|
46
|
+
getReserves(): Promise<ReservesDataHumanized>;
|
|
47
|
+
getUserSummary(params: GetWalletLendingPositionsRequest): Promise<GetWalletLendingPositionsResponse>;
|
|
48
|
+
private _getUserSummary;
|
|
49
|
+
private borrow;
|
|
50
|
+
private createApproval;
|
|
51
|
+
private supply;
|
|
52
|
+
private repay;
|
|
53
|
+
private repayWithATokens;
|
|
54
|
+
private withdraw;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/aave-lending-plugin/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,aAAa,CAAC;AAIzD,OAAO,EAAU,KAAK,oBAAoB,EAAS,MAAM,QAAQ,CAAC;AAClE,OAAO,EAIL,KAAK,qBAAqB,EAE3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EAEtC,KAAK,gCAAgC,EACrC,KAAK,KAAK,EACX,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC;AAEtD,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAKD;;GAEG;AACH,qBAAa,WAAW;IACf,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;gBAEd,MAAM,EAAE,iBAAiB;IAKrC;;;;OAIG;IACI,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAIrC,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAYnF,yBAAyB,CACpC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,CAAC;IAiBrB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8BnF,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAahF,iCAAiC,CAC5C,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,mBAAmB,CAAC;IAc/B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;YAQP,YAAY;IAY1B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,eAAe;YAQT,OAAO;IA6CR,WAAW,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAO7C,cAAc,CACzB,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,iCAAiC,CAAC;YA6D/B,eAAe;YAcf,MAAM;YAiBN,cAAc;YAiCd,MAAM;YAwBN,KAAK;YA6BL,gBAAgB;YAmBhB,QAAQ;CAwBvB"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { Chain } from './chain.js';
|
|
2
|
+
import { getMarket } from './market.js';
|
|
3
|
+
import { UserSummary } from './userSummary.js';
|
|
4
|
+
import { populateTransaction } from './populateTransaction.js';
|
|
5
|
+
import { getUiPoolDataProviderImpl } from './dataProvider.js';
|
|
6
|
+
import { ethers, utils } from 'ethers';
|
|
7
|
+
import { Pool, PoolBundle, InterestRate, } from '@aave/contract-helpers';
|
|
8
|
+
import { TransactionTypes, } from '../core/index.js';
|
|
9
|
+
// AAVE's ETH placeholder address used for native ETH operations
|
|
10
|
+
const AAVE_ETH_PLACEHOLDER = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
|
|
11
|
+
/**
|
|
12
|
+
* AAVEAdapter is the primary class wrapping Aave V3 interactions.
|
|
13
|
+
*/
|
|
14
|
+
export class AAVEAdapter {
|
|
15
|
+
chain;
|
|
16
|
+
market;
|
|
17
|
+
constructor(params) {
|
|
18
|
+
this.chain = new Chain(params.chainId, params.rpcUrl);
|
|
19
|
+
this.market = getMarket(this.chain.id);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* If the token is native, return AAVE's placeholder address instead of the ember address.
|
|
23
|
+
* @param token - The token to normalize.
|
|
24
|
+
* @returns The normalized token address.
|
|
25
|
+
*/
|
|
26
|
+
normalizeTokenAddress(token) {
|
|
27
|
+
return token.isNative ? AAVE_ETH_PLACEHOLDER : token.tokenUid.address;
|
|
28
|
+
}
|
|
29
|
+
async createSupplyTransaction(params) {
|
|
30
|
+
const { supplyToken: token, amount, walletAddress } = params;
|
|
31
|
+
const txs = await this.supply(this.normalizeTokenAddress(token), amount.toString(), walletAddress);
|
|
32
|
+
return {
|
|
33
|
+
transactions: txs.map(t => transactionPlanFromEthers(this.chain.id.toString(), t)),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async createWithdrawTransaction(params) {
|
|
37
|
+
const { tokenToWithdraw, amount, walletAddress } = params;
|
|
38
|
+
// Find aToken he wants to withdraw from
|
|
39
|
+
const alphaTokenAddress = (await this.getReserves()).reservesData.find(reserve => reserve.underlyingAsset === tokenToWithdraw.tokenUid.address)?.aTokenAddress;
|
|
40
|
+
if (!alphaTokenAddress) {
|
|
41
|
+
throw new Error('No position can generate the token to withdraw');
|
|
42
|
+
}
|
|
43
|
+
const txs = await this.withdraw(alphaTokenAddress, amount, walletAddress, walletAddress);
|
|
44
|
+
return {
|
|
45
|
+
transactions: txs.map(t => transactionPlanFromEthers(this.chain.id.toString(), t)),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async createBorrowTransaction(params) {
|
|
49
|
+
const { borrowToken, amount, walletAddress } = params;
|
|
50
|
+
const normalizedTokenAddress = this.normalizeTokenAddress(borrowToken);
|
|
51
|
+
// Get pool data to fetch APR
|
|
52
|
+
const poolData = await this.getPool(normalizedTokenAddress);
|
|
53
|
+
const reservesResponse = await this.getReserves();
|
|
54
|
+
let reserveLiquidationThreshold = null;
|
|
55
|
+
for (const reserve of reservesResponse.reservesData) {
|
|
56
|
+
const token = ethers.utils.getAddress(reserve.underlyingAsset);
|
|
57
|
+
if (token === normalizedTokenAddress) {
|
|
58
|
+
reserveLiquidationThreshold = reserve.reserveLiquidationThreshold;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (reserveLiquidationThreshold == null) {
|
|
62
|
+
throw new Error('Reserve not found in AAVE pool for a given token');
|
|
63
|
+
}
|
|
64
|
+
// Create borrow transaction
|
|
65
|
+
const txs = await this.borrow(normalizedTokenAddress, amount.toString(), walletAddress);
|
|
66
|
+
return {
|
|
67
|
+
liquidationThreshold: reserveLiquidationThreshold,
|
|
68
|
+
currentBorrowApy: poolData.variableBorrowRate,
|
|
69
|
+
transactions: txs.map(t => transactionPlanFromEthers(this.chain.id.toString(), t)),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async createRepayTransaction(params) {
|
|
73
|
+
const { repayToken, amount, walletAddress: from } = params;
|
|
74
|
+
const normalizedAsset = this.normalizeTokenAddress(repayToken);
|
|
75
|
+
// Choose repayment method based on useATokens flag
|
|
76
|
+
const txs = await this.repay(normalizedAsset, amount.toString(), from);
|
|
77
|
+
return {
|
|
78
|
+
transactions: txs.map(t => transactionPlanFromEthers(this.chain.id.toString(), t)),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async createRepayTransactionWithATokens(params) {
|
|
82
|
+
const { repayToken, amount, walletAddress: from } = params;
|
|
83
|
+
const normalizedAsset = this.normalizeTokenAddress(repayToken);
|
|
84
|
+
// Choose repayment method based on useATokens flag
|
|
85
|
+
const txs = await this.repayWithATokens(normalizedAsset, amount.toString(), from);
|
|
86
|
+
return {
|
|
87
|
+
transactions: txs.map(t => transactionPlanFromEthers(this.chain.id.toString(), t)),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// Private Methods
|
|
91
|
+
getProvider() {
|
|
92
|
+
return this.chain.getProvider();
|
|
93
|
+
}
|
|
94
|
+
getPoolBundle() {
|
|
95
|
+
const provider = this.getProvider();
|
|
96
|
+
return new PoolBundle(provider, {
|
|
97
|
+
POOL: this.market.POOL,
|
|
98
|
+
WETH_GATEWAY: this.market.WETH_GATEWAY,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async getTokenData(address) {
|
|
102
|
+
let targetAddress = address;
|
|
103
|
+
// If address is AAVE's native token placeholder, find the corresponding wrapped native token address
|
|
104
|
+
if (address === AAVE_ETH_PLACEHOLDER) {
|
|
105
|
+
const poolData = await this.getPool(address);
|
|
106
|
+
targetAddress = poolData.tokenAddress; // This will be the wrapped native token address
|
|
107
|
+
}
|
|
108
|
+
return await this.getPoolBundle().erc20Service.getTokenData(targetAddress);
|
|
109
|
+
}
|
|
110
|
+
getPoolDataProvider() {
|
|
111
|
+
const provider = this.getProvider();
|
|
112
|
+
const DataProviderImpl = getUiPoolDataProviderImpl(this.chain.id);
|
|
113
|
+
return new DataProviderImpl({
|
|
114
|
+
uiPoolDataProviderAddress: this.market.UI_POOL_DATA_PROVIDER,
|
|
115
|
+
provider,
|
|
116
|
+
chainId: this.chain.id,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
getPoolContract() {
|
|
120
|
+
const provider = this.getProvider();
|
|
121
|
+
return new Pool(provider, {
|
|
122
|
+
POOL: this.market.POOL,
|
|
123
|
+
WETH_GATEWAY: this.market.WETH_GATEWAY,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
async getPool(asset) {
|
|
127
|
+
const reservesResponse = await this.getReserves();
|
|
128
|
+
let targetAsset = asset;
|
|
129
|
+
// If asset is AAVE's native token placeholder, find the corresponding wrapped native token reserve
|
|
130
|
+
if (asset === AAVE_ETH_PLACEHOLDER) {
|
|
131
|
+
const configuredWrappedNativeToken = this.chain.wrappedNativeTokenAddress;
|
|
132
|
+
if (!configuredWrappedNativeToken) {
|
|
133
|
+
throw new Error(`No wrapped native token configured for chain ${this.chain.id}`);
|
|
134
|
+
}
|
|
135
|
+
const wrappedNativeTokenReserve = reservesResponse.reservesData.find((r) => ethers.utils.getAddress(r.underlyingAsset) === configuredWrappedNativeToken);
|
|
136
|
+
if (!wrappedNativeTokenReserve) {
|
|
137
|
+
throw new Error(`Wrapped native token reserve not found for native token operations`);
|
|
138
|
+
}
|
|
139
|
+
targetAsset = wrappedNativeTokenReserve.underlyingAsset;
|
|
140
|
+
}
|
|
141
|
+
const reserve = reservesResponse.reservesData.find((r) => ethers.utils.getAddress(r.underlyingAsset) === ethers.utils.getAddress(targetAsset));
|
|
142
|
+
if (!reserve) {
|
|
143
|
+
throw new Error(`Asset ${asset} not found in reserves`);
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
tokenAddress: reserve.underlyingAsset,
|
|
147
|
+
poolAddress: this.market.POOL,
|
|
148
|
+
variableBorrowRate: reserve.variableBorrowRate,
|
|
149
|
+
variableSupplyRate: reserve.liquidityRate,
|
|
150
|
+
ltv: reserve.baseLTVasCollateral,
|
|
151
|
+
availableLiquidity: reserve.availableLiquidity,
|
|
152
|
+
reserveSize: reserve.availableLiquidity,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
async getReserves() {
|
|
156
|
+
const reserves = this.getPoolDataProvider().getReservesHumanized({
|
|
157
|
+
lendingPoolAddressProvider: this.market.POOL_ADDRESSES_PROVIDER,
|
|
158
|
+
});
|
|
159
|
+
return reserves;
|
|
160
|
+
}
|
|
161
|
+
async getUserSummary(params) {
|
|
162
|
+
const userSummaryResponse = await this._getUserSummary(params.walletAddress);
|
|
163
|
+
const { totalLiquidityUSD, totalCollateralUSD, totalBorrowsUSD, netWorthUSD, availableBorrowsUSD, currentLoanToValue, currentLiquidationThreshold, healthFactor, userReservesData, } = userSummaryResponse.reserves;
|
|
164
|
+
const userReservesFormatted = [];
|
|
165
|
+
for (const { reserve, underlyingBalance, underlyingBalanceUSD, variableBorrows, variableBorrowsUSD, totalBorrows, totalBorrowsUSD, } of userReservesData) {
|
|
166
|
+
const tokenData = await this.getTokenData(reserve.underlyingAsset);
|
|
167
|
+
userReservesFormatted.push({
|
|
168
|
+
token: {
|
|
169
|
+
// TODO: ideally we should populate this object somewhere else,
|
|
170
|
+
// returning only tokenUid in this adapter
|
|
171
|
+
tokenUid: {
|
|
172
|
+
address: reserve.underlyingAsset,
|
|
173
|
+
chainId: this.chain.id.toString(),
|
|
174
|
+
},
|
|
175
|
+
isNative: false,
|
|
176
|
+
name: tokenData.name,
|
|
177
|
+
symbol: tokenData.symbol,
|
|
178
|
+
decimals: tokenData.decimals,
|
|
179
|
+
isVetted: true, // assuming aave only lets really good assets in
|
|
180
|
+
},
|
|
181
|
+
underlyingBalance,
|
|
182
|
+
underlyingBalanceUsd: underlyingBalanceUSD,
|
|
183
|
+
variableBorrows,
|
|
184
|
+
variableBorrowsUsd: variableBorrowsUSD,
|
|
185
|
+
totalBorrows,
|
|
186
|
+
totalBorrowsUsd: totalBorrowsUSD,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
userReserves: userReservesFormatted,
|
|
191
|
+
totalLiquidityUsd: totalLiquidityUSD,
|
|
192
|
+
totalCollateralUsd: totalCollateralUSD,
|
|
193
|
+
totalBorrowsUsd: totalBorrowsUSD,
|
|
194
|
+
netWorthUsd: netWorthUSD,
|
|
195
|
+
availableBorrowsUsd: availableBorrowsUSD,
|
|
196
|
+
currentLoanToValue,
|
|
197
|
+
currentLiquidationThreshold,
|
|
198
|
+
healthFactor,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
async _getUserSummary(userAddress) {
|
|
202
|
+
const validatedUser = ethers.utils.getAddress(userAddress);
|
|
203
|
+
const poolDataProvider = this.getPoolDataProvider();
|
|
204
|
+
const reservesResponse = await this.getReserves();
|
|
205
|
+
const userReservesResponse = await poolDataProvider.getUserReservesHumanized({
|
|
206
|
+
lendingPoolAddressProvider: this.market.POOL_ADDRESSES_PROVIDER,
|
|
207
|
+
user: validatedUser,
|
|
208
|
+
});
|
|
209
|
+
return new UserSummary(userReservesResponse, reservesResponse);
|
|
210
|
+
}
|
|
211
|
+
async borrow(asset, amount, from) {
|
|
212
|
+
// validate
|
|
213
|
+
ethers.utils.getAddress(asset);
|
|
214
|
+
ethers.utils.getAddress(from);
|
|
215
|
+
const bundle = this.getPoolBundle();
|
|
216
|
+
const tx = bundle.borrowTxBuilder.generateTxData({
|
|
217
|
+
user: from,
|
|
218
|
+
reserve: asset,
|
|
219
|
+
amount,
|
|
220
|
+
interestRateMode: InterestRate.Variable,
|
|
221
|
+
});
|
|
222
|
+
return [tx];
|
|
223
|
+
}
|
|
224
|
+
async createApproval({ asset, amount_raw, user, spender, }) {
|
|
225
|
+
const bundle = this.getPoolBundle();
|
|
226
|
+
let approvalTx = null;
|
|
227
|
+
const isApprovedEnough = await bundle.erc20Service.isApproved({
|
|
228
|
+
user: user,
|
|
229
|
+
token: asset,
|
|
230
|
+
spender,
|
|
231
|
+
amount: amount_raw,
|
|
232
|
+
nativeDecimals: true,
|
|
233
|
+
});
|
|
234
|
+
if (!isApprovedEnough) {
|
|
235
|
+
approvalTx = bundle.erc20Service.approveTxData({
|
|
236
|
+
user,
|
|
237
|
+
token: asset,
|
|
238
|
+
spender,
|
|
239
|
+
amount: amount_raw,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
return approvalTx;
|
|
243
|
+
}
|
|
244
|
+
async supply(asset, amount, from) {
|
|
245
|
+
// validate
|
|
246
|
+
ethers.utils.getAddress(asset);
|
|
247
|
+
ethers.utils.getAddress(from);
|
|
248
|
+
const bundle = this.getPoolBundle();
|
|
249
|
+
const approvalTx = await this.createApproval({
|
|
250
|
+
asset,
|
|
251
|
+
amount_raw: amount,
|
|
252
|
+
user: from,
|
|
253
|
+
spender: bundle.poolAddress,
|
|
254
|
+
});
|
|
255
|
+
const tx = bundle.supplyTxBuilder.generateTxData({
|
|
256
|
+
user: from,
|
|
257
|
+
reserve: asset,
|
|
258
|
+
amount,
|
|
259
|
+
onBehalfOf: from,
|
|
260
|
+
});
|
|
261
|
+
return (approvalTx ? [approvalTx] : []).concat([tx]);
|
|
262
|
+
}
|
|
263
|
+
async repay(asset, amount_formatted, from) {
|
|
264
|
+
// validate
|
|
265
|
+
ethers.utils.getAddress(asset);
|
|
266
|
+
ethers.utils.getAddress(from);
|
|
267
|
+
const bundle = this.getPoolBundle();
|
|
268
|
+
const amount = utils
|
|
269
|
+
.parseUnits(amount_formatted, (await this.getTokenData(asset)).decimals)
|
|
270
|
+
.toString();
|
|
271
|
+
const tx = bundle.repayTxBuilder.generateTxData({
|
|
272
|
+
user: from,
|
|
273
|
+
reserve: asset,
|
|
274
|
+
amount: amount,
|
|
275
|
+
interestRateMode: InterestRate.Variable,
|
|
276
|
+
onBehalfOf: from,
|
|
277
|
+
});
|
|
278
|
+
const approvalTx = await this.createApproval({
|
|
279
|
+
asset,
|
|
280
|
+
amount_raw: amount,
|
|
281
|
+
user: from,
|
|
282
|
+
spender: bundle.poolAddress,
|
|
283
|
+
});
|
|
284
|
+
return (approvalTx ? [approvalTx] : []).concat([tx]);
|
|
285
|
+
}
|
|
286
|
+
async repayWithATokens(asset, amount_formatted, from) {
|
|
287
|
+
ethers.utils.getAddress(asset);
|
|
288
|
+
ethers.utils.getAddress(from);
|
|
289
|
+
const bundle = this.getPoolBundle();
|
|
290
|
+
const tokenData = await this.getTokenData(asset);
|
|
291
|
+
const amount = utils.parseUnits(amount_formatted, tokenData.decimals).toString();
|
|
292
|
+
const tx = bundle.repayWithATokensTxBuilder.generateTxData({
|
|
293
|
+
user: from,
|
|
294
|
+
reserve: asset,
|
|
295
|
+
amount,
|
|
296
|
+
rateMode: InterestRate.Variable,
|
|
297
|
+
});
|
|
298
|
+
return [tx];
|
|
299
|
+
}
|
|
300
|
+
async withdraw(asset, amount, to, from) {
|
|
301
|
+
ethers.utils.getAddress(asset);
|
|
302
|
+
ethers.utils.getAddress(to);
|
|
303
|
+
ethers.utils.getAddress(from);
|
|
304
|
+
const pool = this.getPoolContract();
|
|
305
|
+
const txs = await pool.withdraw({
|
|
306
|
+
user: from,
|
|
307
|
+
reserve: asset,
|
|
308
|
+
amount: amount.toString(),
|
|
309
|
+
});
|
|
310
|
+
if (txs.length !== 1) {
|
|
311
|
+
throw new Error('AAVEInstance.withdraw: impossible happened');
|
|
312
|
+
}
|
|
313
|
+
// Null coercion is safe here because we checked txs.length above
|
|
314
|
+
return [await populateTransaction(txs[0])];
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
const transactionPlanFromEthers = (chainId, tx) => {
|
|
318
|
+
return {
|
|
319
|
+
type: TransactionTypes.EVM_TX,
|
|
320
|
+
to: tx.to,
|
|
321
|
+
value: tx.value?.toString() || '0',
|
|
322
|
+
data: tx.data,
|
|
323
|
+
chainId,
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/aave-lending-plugin/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a blockchain network configuration used to create JSON-RPC providers and
|
|
4
|
+
* hold basic chain-specific metadata.
|
|
5
|
+
*
|
|
6
|
+
* The Chain class encapsulates:
|
|
7
|
+
* - a numeric chain identifier (id),
|
|
8
|
+
* - an RPC URL to connect to the chain (rpcUrl),
|
|
9
|
+
* - an optional wrapped native token address (wrappedNativeTokenAddress).
|
|
10
|
+
*
|
|
11
|
+
* @param id - The numeric identifier for the chain (e.g., 1 for Ethereum mainnet).
|
|
12
|
+
* @param rpcUrl - The JSON-RPC endpoint URL used to create providers for this chain.
|
|
13
|
+
* @param wrappedNativeTokenAddress - Optional address of the chain's wrapped native token (if applicable).
|
|
14
|
+
*/
|
|
15
|
+
export declare class Chain {
|
|
16
|
+
id: number;
|
|
17
|
+
rpcUrl: string;
|
|
18
|
+
wrappedNativeTokenAddress?: string | undefined;
|
|
19
|
+
constructor(id: number, rpcUrl: string, wrappedNativeTokenAddress?: string | undefined);
|
|
20
|
+
/**
|
|
21
|
+
* Create and return an ethers.js JsonRpcProvider configured with this chain's RPC URL.
|
|
22
|
+
*
|
|
23
|
+
* This method constructs a new ethers.providers.JsonRpcProvider each time it is called.
|
|
24
|
+
* Consumers may cache the provider if they intend to reuse it to avoid allocating multiple instances.
|
|
25
|
+
*
|
|
26
|
+
* @returns An instance of ethers.providers.JsonRpcProvider configured with the chain's rpcUrl.
|
|
27
|
+
*/
|
|
28
|
+
getProvider(): ethers.providers.JsonRpcProvider;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/aave-lending-plugin/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,qBAAa,KAAK;IAEP,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,MAAM;IACd,yBAAyB,CAAC,EAAE,MAAM;gBAFlC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,yBAAyB,CAAC,EAAE,MAAM,YAAA;IAG3C;;;;;;;OAOG;IACI,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe;CAGvD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a blockchain network configuration used to create JSON-RPC providers and
|
|
4
|
+
* hold basic chain-specific metadata.
|
|
5
|
+
*
|
|
6
|
+
* The Chain class encapsulates:
|
|
7
|
+
* - a numeric chain identifier (id),
|
|
8
|
+
* - an RPC URL to connect to the chain (rpcUrl),
|
|
9
|
+
* - an optional wrapped native token address (wrappedNativeTokenAddress).
|
|
10
|
+
*
|
|
11
|
+
* @param id - The numeric identifier for the chain (e.g., 1 for Ethereum mainnet).
|
|
12
|
+
* @param rpcUrl - The JSON-RPC endpoint URL used to create providers for this chain.
|
|
13
|
+
* @param wrappedNativeTokenAddress - Optional address of the chain's wrapped native token (if applicable).
|
|
14
|
+
*/
|
|
15
|
+
export class Chain {
|
|
16
|
+
id;
|
|
17
|
+
rpcUrl;
|
|
18
|
+
wrappedNativeTokenAddress;
|
|
19
|
+
constructor(id, rpcUrl, wrappedNativeTokenAddress) {
|
|
20
|
+
this.id = id;
|
|
21
|
+
this.rpcUrl = rpcUrl;
|
|
22
|
+
this.wrappedNativeTokenAddress = wrappedNativeTokenAddress;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create and return an ethers.js JsonRpcProvider configured with this chain's RPC URL.
|
|
26
|
+
*
|
|
27
|
+
* This method constructs a new ethers.providers.JsonRpcProvider each time it is called.
|
|
28
|
+
* Consumers may cache the provider if they intend to reuse it to avoid allocating multiple instances.
|
|
29
|
+
*
|
|
30
|
+
* @returns An instance of ethers.providers.JsonRpcProvider configured with the chain's rpcUrl.
|
|
31
|
+
*/
|
|
32
|
+
getProvider() {
|
|
33
|
+
return new ethers.providers.JsonRpcProvider(this.rpcUrl);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/aave-lending-plugin/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,KAAK;IAEP;IACA;IACA;IAHT,YACS,EAAU,EACV,MAAc,EACd,yBAAkC;QAFlC,OAAE,GAAF,EAAE,CAAQ;QACV,WAAM,GAAN,MAAM,CAAQ;QACd,8BAAyB,GAAzB,yBAAyB,CAAS;IACxC,CAAC;IAEJ;;;;;;;OAOG;IACI,WAAW;QAChB,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { type ReservesDataHumanized, type ReservesHelperInput, type UserReservesHelperInput, type EModeData, type EmodeDataHumanized, type UserReserveDataHumanized } from '@aave/contract-helpers';
|
|
3
|
+
export interface IUiPoolDataProvider {
|
|
4
|
+
getReservesHumanized: (args: ReservesHelperInput) => Promise<ReservesDataHumanized>;
|
|
5
|
+
getUserReservesHumanized: (args: UserReservesHelperInput) => Promise<{
|
|
6
|
+
userReserves: UserReserveDataHumanized[];
|
|
7
|
+
userEmodeCategoryId: number;
|
|
8
|
+
}>;
|
|
9
|
+
getEModes: (args: ReservesHelperInput) => Promise<EModeData[]>;
|
|
10
|
+
getEModesHumanized: (args: ReservesHelperInput) => Promise<EmodeDataHumanized[]>;
|
|
11
|
+
}
|
|
12
|
+
export type IUiPoolDataProviderConstructor = new ({ uiPoolDataProviderAddress, provider, chainId, }: {
|
|
13
|
+
uiPoolDataProviderAddress: string;
|
|
14
|
+
provider: ethers.providers.JsonRpcProvider;
|
|
15
|
+
chainId: number;
|
|
16
|
+
}) => IUiPoolDataProvider;
|
|
17
|
+
export declare const UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN: Record<number, IUiPoolDataProviderConstructor>;
|
|
18
|
+
export declare const getUiPoolDataProviderImpl: (chainId: number) => IUiPoolDataProviderConstructor;
|
|
19
|
+
//# sourceMappingURL=dataProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataProvider.d.ts","sourceRoot":"","sources":["../../src/aave-lending-plugin/dataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAShC,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpF,wBAAwB,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC;QACnE,YAAY,EAAE,wBAAwB,EAAE,CAAC;QACzC,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/D,kBAAkB,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;CAClF;AAED,MAAM,MAAM,8BAA8B,GAAG,KAAK,EAChD,yBAAyB,EACzB,QAAQ,EACR,OAAO,GACR,EAAE;IACD,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB,KAAK,mBAAmB,CAAC;AAI1B,eAAO,MAAM,yCAAyC,EAAE,MAAM,CAC5D,MAAM,EACN,8BAA8B,CAK/B,CAAC;AAGF,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,8BAQ3D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { LegacyUiPoolDataProvider, UiPoolDataProvider, } from '@aave/contract-helpers';
|
|
3
|
+
// which class to use: LegacyUiPoolDataProvider or UiPoolDataProvider
|
|
4
|
+
// When adding new chains, either compare the interfaces or bruteforce the correct option.
|
|
5
|
+
export const UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN = {
|
|
6
|
+
11155111: LegacyUiPoolDataProvider,
|
|
7
|
+
42161: UiPoolDataProvider,
|
|
8
|
+
1: UiPoolDataProvider,
|
|
9
|
+
};
|
|
10
|
+
// Use this function to get the correct pool data provider implementation.
|
|
11
|
+
export const getUiPoolDataProviderImpl = (chainId) => {
|
|
12
|
+
const res = UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN[chainId];
|
|
13
|
+
if (!res) {
|
|
14
|
+
throw new Error('UI_POOL_DATA_PROVIDER_INTERFACE_PER_CHAIN does not contain this chain ID. Edit providers/aave/dataProvider.ts.');
|
|
15
|
+
}
|
|
16
|
+
return res;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=dataProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataProvider.js","sourceRoot":"","sources":["../../src/aave-lending-plugin/dataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAOnB,MAAM,wBAAwB,CAAC;AA6BhC,qEAAqE;AACrE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,yCAAyC,GAGlD;IACF,QAAQ,EAAE,wBAA0D;IACpE,KAAK,EAAE,kBAAoD;IAC3D,CAAC,EAAE,kBAAoD;CACxD,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAkC,EAAE;IAC3F,MAAM,GAAG,GAAG,yCAAyC,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare class AaveError extends Error {
|
|
2
|
+
description: string;
|
|
3
|
+
message: string;
|
|
4
|
+
constructor(code: string, name: string, description: string);
|
|
5
|
+
}
|
|
6
|
+
type AaveErrorData = {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const AAVE_ERROR_CODES: Record<string, AaveErrorData>;
|
|
11
|
+
export declare function getAaveError(code: string): AaveError | null;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/aave-lending-plugin/errors.ts"],"names":[],"mappings":"AAEA,cAAM,SAAU,SAAQ,KAAK;IACpB,WAAW,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAU5D;AAED,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAwV1D,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAM3D"}
|