@waiaas/actions 2.11.0-rc.8 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.d.ts +2 -0
- package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.d.ts.map +1 -0
- package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.js +97 -0
- package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.js.map +1 -0
- package/dist/providers/aave-v3/aave-contracts.d.ts +8 -0
- package/dist/providers/aave-v3/aave-contracts.d.ts.map +1 -1
- package/dist/providers/aave-v3/aave-contracts.js +13 -0
- package/dist/providers/aave-v3/aave-contracts.js.map +1 -1
- package/dist/providers/aave-v3/aave-rpc.d.ts +10 -0
- package/dist/providers/aave-v3/aave-rpc.d.ts.map +1 -1
- package/dist/providers/aave-v3/aave-rpc.js +16 -0
- package/dist/providers/aave-v3/aave-rpc.js.map +1 -1
- package/dist/providers/aave-v3/index.d.ts +10 -2
- package/dist/providers/aave-v3/index.d.ts.map +1 -1
- package/dist/providers/aave-v3/index.js +128 -128
- package/dist/providers/aave-v3/index.js.map +1 -1
- package/dist/providers/across/index.d.ts.map +1 -1
- package/dist/providers/across/index.js +1 -0
- package/dist/providers/across/index.js.map +1 -1
- package/dist/providers/dcent-swap/auto-router.d.ts.map +1 -1
- package/dist/providers/dcent-swap/auto-router.js +8 -0
- package/dist/providers/dcent-swap/auto-router.js.map +1 -1
- package/dist/providers/dcent-swap/dcent-api-client.d.ts +1 -0
- package/dist/providers/dcent-swap/dcent-api-client.d.ts.map +1 -1
- package/dist/providers/dcent-swap/dcent-api-client.js.map +1 -1
- package/dist/providers/dcent-swap/dex-swap.d.ts +1 -0
- package/dist/providers/dcent-swap/dex-swap.d.ts.map +1 -1
- package/dist/providers/dcent-swap/dex-swap.js +13 -2
- package/dist/providers/dcent-swap/dex-swap.js.map +1 -1
- package/dist/providers/dcent-swap/index.d.ts +2 -2
- package/dist/providers/dcent-swap/index.d.ts.map +1 -1
- package/dist/providers/dcent-swap/index.js +56 -16
- package/dist/providers/dcent-swap/index.js.map +1 -1
- package/dist/providers/drift/config.d.ts +2 -0
- package/dist/providers/drift/config.d.ts.map +1 -1
- package/dist/providers/drift/config.js.map +1 -1
- package/dist/providers/drift/drift-sdk-wrapper.d.ts +12 -9
- package/dist/providers/drift/drift-sdk-wrapper.d.ts.map +1 -1
- package/dist/providers/drift/drift-sdk-wrapper.js +220 -20
- package/dist/providers/drift/drift-sdk-wrapper.js.map +1 -1
- package/dist/providers/drift/index.d.ts +2 -2
- package/dist/providers/drift/index.d.ts.map +1 -1
- package/dist/providers/drift/index.js +9 -4
- package/dist/providers/drift/index.js.map +1 -1
- package/dist/providers/erc8004/index.d.ts.map +1 -1
- package/dist/providers/erc8004/index.js +1 -0
- package/dist/providers/erc8004/index.js.map +1 -1
- package/dist/providers/hyperliquid/__tests__/perp-provider.test.js +13 -6
- package/dist/providers/hyperliquid/__tests__/perp-provider.test.js.map +1 -1
- package/dist/providers/hyperliquid/__tests__/spot-provider.test.js +11 -4
- package/dist/providers/hyperliquid/__tests__/spot-provider.test.js.map +1 -1
- package/dist/providers/hyperliquid/perp-provider.d.ts +2 -2
- package/dist/providers/hyperliquid/perp-provider.d.ts.map +1 -1
- package/dist/providers/hyperliquid/perp-provider.js +7 -3
- package/dist/providers/hyperliquid/perp-provider.js.map +1 -1
- package/dist/providers/hyperliquid/schemas.d.ts +14 -14
- package/dist/providers/hyperliquid/spot-provider.d.ts +2 -2
- package/dist/providers/hyperliquid/spot-provider.d.ts.map +1 -1
- package/dist/providers/hyperliquid/spot-provider.js +7 -3
- package/dist/providers/hyperliquid/spot-provider.js.map +1 -1
- package/dist/providers/hyperliquid/sub-account-provider.d.ts.map +1 -1
- package/dist/providers/hyperliquid/sub-account-provider.js +1 -0
- package/dist/providers/hyperliquid/sub-account-provider.js.map +1 -1
- package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.d.ts +2 -0
- package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.d.ts.map +1 -0
- package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.js +107 -0
- package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.js.map +1 -0
- package/dist/providers/jito-staking/config.d.ts +12 -3
- package/dist/providers/jito-staking/config.d.ts.map +1 -1
- package/dist/providers/jito-staking/config.js +12 -3
- package/dist/providers/jito-staking/config.js.map +1 -1
- package/dist/providers/jito-staking/index.d.ts +2 -2
- package/dist/providers/jito-staking/index.d.ts.map +1 -1
- package/dist/providers/jito-staking/index.js +25 -8
- package/dist/providers/jito-staking/index.js.map +1 -1
- package/dist/providers/jito-staking/jito-migration.test.js +107 -1
- package/dist/providers/jito-staking/jito-migration.test.js.map +1 -1
- package/dist/providers/jito-staking/jito-stake-pool.d.ts +18 -5
- package/dist/providers/jito-staking/jito-stake-pool.d.ts.map +1 -1
- package/dist/providers/jito-staking/jito-stake-pool.js +61 -21
- package/dist/providers/jito-staking/jito-stake-pool.js.map +1 -1
- package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.d.ts +2 -0
- package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.d.ts.map +1 -0
- package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.js +177 -0
- package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.js.map +1 -0
- package/dist/providers/jupiter-swap/index.d.ts.map +1 -1
- package/dist/providers/jupiter-swap/index.js +35 -1
- package/dist/providers/jupiter-swap/index.js.map +1 -1
- package/dist/providers/jupiter-swap/schemas.d.ts +30 -30
- package/dist/providers/jupiter-swap/schemas.js +2 -2
- package/dist/providers/jupiter-swap/schemas.js.map +1 -1
- package/dist/providers/kamino/config.d.ts +2 -0
- package/dist/providers/kamino/config.d.ts.map +1 -1
- package/dist/providers/kamino/config.js.map +1 -1
- package/dist/providers/kamino/index.d.ts +2 -2
- package/dist/providers/kamino/index.d.ts.map +1 -1
- package/dist/providers/kamino/index.js +11 -6
- package/dist/providers/kamino/index.js.map +1 -1
- package/dist/providers/kamino/kamino-sdk-wrapper.d.ts +12 -10
- package/dist/providers/kamino/kamino-sdk-wrapper.d.ts.map +1 -1
- package/dist/providers/kamino/kamino-sdk-wrapper.js +134 -20
- package/dist/providers/kamino/kamino-sdk-wrapper.js.map +1 -1
- package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.d.ts +2 -0
- package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.d.ts.map +1 -0
- package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.js +106 -0
- package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.js.map +1 -0
- package/dist/providers/lido-staking/index.d.ts +10 -7
- package/dist/providers/lido-staking/index.d.ts.map +1 -1
- package/dist/providers/lido-staking/index.js +67 -47
- package/dist/providers/lido-staking/index.js.map +1 -1
- package/dist/providers/lido-staking/lido-contract.d.ts +16 -2
- package/dist/providers/lido-staking/lido-contract.d.ts.map +1 -1
- package/dist/providers/lido-staking/lido-contract.js +43 -2
- package/dist/providers/lido-staking/lido-contract.js.map +1 -1
- package/dist/providers/lifi/__tests__/lifi-provider.test.d.ts +2 -0
- package/dist/providers/lifi/__tests__/lifi-provider.test.d.ts.map +1 -0
- package/dist/providers/lifi/__tests__/lifi-provider.test.js +196 -0
- package/dist/providers/lifi/__tests__/lifi-provider.test.js.map +1 -0
- package/dist/providers/lifi/index.d.ts.map +1 -1
- package/dist/providers/lifi/index.js +1 -0
- package/dist/providers/lifi/index.js.map +1 -1
- package/dist/providers/pendle/__tests__/pendle-api-client.test.js +79 -0
- package/dist/providers/pendle/__tests__/pendle-api-client.test.js.map +1 -1
- package/dist/providers/pendle/__tests__/pendle-provider.test.js +28 -8
- package/dist/providers/pendle/__tests__/pendle-provider.test.js.map +1 -1
- package/dist/providers/pendle/config.d.ts +2 -0
- package/dist/providers/pendle/config.d.ts.map +1 -1
- package/dist/providers/pendle/config.js +2 -0
- package/dist/providers/pendle/config.js.map +1 -1
- package/dist/providers/pendle/index.d.ts +8 -4
- package/dist/providers/pendle/index.d.ts.map +1 -1
- package/dist/providers/pendle/index.js +82 -69
- package/dist/providers/pendle/index.js.map +1 -1
- package/dist/providers/pendle/pendle-api-client.d.ts +2 -2
- package/dist/providers/pendle/pendle-api-client.d.ts.map +1 -1
- package/dist/providers/pendle/pendle-api-client.js +9 -2
- package/dist/providers/pendle/pendle-api-client.js.map +1 -1
- package/dist/providers/pendle/schemas.d.ts +748 -32
- package/dist/providers/pendle/schemas.d.ts.map +1 -1
- package/dist/providers/pendle/schemas.js +17 -4
- package/dist/providers/pendle/schemas.js.map +1 -1
- package/dist/providers/polymarket/__tests__/infrastructure.test.d.ts +2 -0
- package/dist/providers/polymarket/__tests__/infrastructure.test.d.ts.map +1 -0
- package/dist/providers/polymarket/__tests__/infrastructure.test.js +117 -0
- package/dist/providers/polymarket/__tests__/infrastructure.test.js.map +1 -0
- package/dist/providers/polymarket/ctf-provider.d.ts.map +1 -1
- package/dist/providers/polymarket/ctf-provider.js +1 -0
- package/dist/providers/polymarket/ctf-provider.js.map +1 -1
- package/dist/providers/polymarket/order-provider.d.ts.map +1 -1
- package/dist/providers/polymarket/order-provider.js +1 -0
- package/dist/providers/polymarket/order-provider.js.map +1 -1
- package/dist/providers/polymarket/schemas.d.ts +20 -20
- package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.d.ts +2 -0
- package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.d.ts.map +1 -0
- package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.js +154 -0
- package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.js.map +1 -0
- package/dist/providers/zerox-swap/index.d.ts.map +1 -1
- package/dist/providers/zerox-swap/index.js +1 -0
- package/dist/providers/zerox-swap/index.js.map +1 -1
- package/package.json +7 -2
|
@@ -106,44 +106,46 @@ export declare class MockKaminoSdkWrapper implements IKaminoSdkWrapper {
|
|
|
106
106
|
* KaminoSdkWrapper: wraps @kamino-finance/klend-sdk.
|
|
107
107
|
*
|
|
108
108
|
* Lazily imports the SDK at first use. If the SDK is not installed,
|
|
109
|
-
* all methods throw ChainError('
|
|
109
|
+
* all methods throw ChainError('INVALID_INSTRUCTION', 'solana').
|
|
110
110
|
*
|
|
111
|
-
*
|
|
111
|
+
* Converts TransactionInstruction results from the SDK
|
|
112
112
|
* to KaminoInstruction format (programId + base64 + accounts).
|
|
113
113
|
*/
|
|
114
114
|
export declare class KaminoSdkWrapper implements IKaminoSdkWrapper {
|
|
115
|
-
/** RPC URL for future SDK connection. Stored for when klend-sdk is installed. */
|
|
116
115
|
readonly rpcUrl: string;
|
|
116
|
+
private _sdk;
|
|
117
117
|
constructor(rpcUrl: string);
|
|
118
|
-
private
|
|
119
|
-
|
|
118
|
+
private loadSdk;
|
|
119
|
+
private loadMarket;
|
|
120
|
+
private convertInstructions;
|
|
121
|
+
buildSupplyInstruction(params: {
|
|
120
122
|
market: string;
|
|
121
123
|
asset: string;
|
|
122
124
|
amount: bigint;
|
|
123
125
|
walletAddress: string;
|
|
124
126
|
}): Promise<KaminoInstruction[]>;
|
|
125
|
-
buildBorrowInstruction(
|
|
127
|
+
buildBorrowInstruction(params: {
|
|
126
128
|
market: string;
|
|
127
129
|
asset: string;
|
|
128
130
|
amount: bigint;
|
|
129
131
|
walletAddress: string;
|
|
130
132
|
}): Promise<KaminoInstruction[]>;
|
|
131
|
-
buildRepayInstruction(
|
|
133
|
+
buildRepayInstruction(params: {
|
|
132
134
|
market: string;
|
|
133
135
|
asset: string;
|
|
134
136
|
amount: bigint | 'max';
|
|
135
137
|
walletAddress: string;
|
|
136
138
|
}): Promise<KaminoInstruction[]>;
|
|
137
|
-
buildWithdrawInstruction(
|
|
139
|
+
buildWithdrawInstruction(params: {
|
|
138
140
|
market: string;
|
|
139
141
|
asset: string;
|
|
140
142
|
amount: bigint | 'max';
|
|
141
143
|
walletAddress: string;
|
|
142
144
|
}): Promise<KaminoInstruction[]>;
|
|
143
|
-
getObligation(
|
|
145
|
+
getObligation(params: {
|
|
144
146
|
market: string;
|
|
145
147
|
walletAddress: string;
|
|
146
148
|
}): Promise<KaminoObligation | null>;
|
|
147
|
-
getReserves(
|
|
149
|
+
getReserves(market: string): Promise<KaminoReserve[]>;
|
|
148
150
|
}
|
|
149
151
|
//# sourceMappingURL=kamino-sdk-wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kamino-sdk-wrapper.d.ts","sourceRoot":"","sources":["../../../src/providers/kamino/kamino-sdk-wrapper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kamino-sdk-wrapper.d.ts","sourceRoot":"","sources":["../../../src/providers/kamino/kamino-sdk-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,40 +144,154 @@ export class MockKaminoSdkWrapper {
|
|
|
144
144
|
* KaminoSdkWrapper: wraps @kamino-finance/klend-sdk.
|
|
145
145
|
*
|
|
146
146
|
* Lazily imports the SDK at first use. If the SDK is not installed,
|
|
147
|
-
* all methods throw ChainError('
|
|
147
|
+
* all methods throw ChainError('INVALID_INSTRUCTION', 'solana').
|
|
148
148
|
*
|
|
149
|
-
*
|
|
149
|
+
* Converts TransactionInstruction results from the SDK
|
|
150
150
|
* to KaminoInstruction format (programId + base64 + accounts).
|
|
151
151
|
*/
|
|
152
152
|
export class KaminoSdkWrapper {
|
|
153
|
-
/** RPC URL for future SDK connection. Stored for when klend-sdk is installed. */
|
|
154
153
|
rpcUrl;
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
155
|
+
_sdk = null;
|
|
155
156
|
constructor(rpcUrl) {
|
|
156
157
|
this.rpcUrl = rpcUrl;
|
|
157
158
|
}
|
|
158
|
-
async
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
async loadSdk() {
|
|
160
|
+
if (this._sdk)
|
|
161
|
+
return this._sdk;
|
|
162
|
+
try {
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
164
|
+
// @ts-ignore — optional dependency, may not be installed in CI
|
|
165
|
+
const solana = await import('@solana/web3.js');
|
|
166
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
167
|
+
// @ts-ignore — optional dependency, may not be installed in CI
|
|
168
|
+
const klend = await import('@kamino-finance/klend-sdk');
|
|
169
|
+
this._sdk = {
|
|
170
|
+
Connection: solana.Connection,
|
|
171
|
+
PublicKey: solana.PublicKey,
|
|
172
|
+
KaminoMarket: klend.KaminoMarket,
|
|
173
|
+
KaminoAction: klend.KaminoAction,
|
|
174
|
+
VanillaObligation: klend.VanillaObligation,
|
|
175
|
+
};
|
|
176
|
+
return this._sdk;
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
const { ChainError } = await import('@waiaas/core');
|
|
180
|
+
throw new ChainError('INVALID_INSTRUCTION', 'solana', {
|
|
181
|
+
message: 'Kamino K-Lend SDK not available. Install @kamino-finance/klend-sdk and @solana/web3.js as dependencies.',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
163
184
|
}
|
|
164
|
-
|
|
165
|
-
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
+
async loadMarket(marketAddress) {
|
|
187
|
+
const sdk = await this.loadSdk();
|
|
188
|
+
const connection = new sdk.Connection(this.rpcUrl, 'confirmed');
|
|
189
|
+
const marketPubkey = new sdk.PublicKey(marketAddress);
|
|
190
|
+
const market = await sdk.KaminoMarket.load(connection, marketPubkey);
|
|
191
|
+
if (!market) {
|
|
192
|
+
const { ChainError } = await import('@waiaas/core');
|
|
193
|
+
throw new ChainError('INVALID_INSTRUCTION', 'solana', {
|
|
194
|
+
message: `Kamino market not found: ${marketAddress}`,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return { market, connection };
|
|
166
198
|
}
|
|
167
|
-
|
|
168
|
-
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
+
convertInstructions(ixs) {
|
|
201
|
+
return ixs.map((ix) => ({
|
|
202
|
+
programId: ix.programId.toBase58(),
|
|
203
|
+
instructionData: Buffer.from(ix.data).toString('base64'),
|
|
204
|
+
accounts: ix.keys.map((k) => ({
|
|
205
|
+
pubkey: k.pubkey.toBase58(),
|
|
206
|
+
isSigner: k.isSigner,
|
|
207
|
+
isWritable: k.isWritable,
|
|
208
|
+
})),
|
|
209
|
+
}));
|
|
169
210
|
}
|
|
170
|
-
async
|
|
171
|
-
|
|
211
|
+
async buildSupplyInstruction(params) {
|
|
212
|
+
const sdk = await this.loadSdk();
|
|
213
|
+
const { market } = await this.loadMarket(params.market);
|
|
214
|
+
const wallet = new sdk.PublicKey(params.walletAddress);
|
|
215
|
+
const mint = new sdk.PublicKey(params.asset);
|
|
216
|
+
const action = await sdk.KaminoAction.buildDepositTxns(market, params.amount.toString(), mint, wallet, new sdk.VanillaObligation(new sdk.PublicKey(KAMINO_PROGRAM_ID)));
|
|
217
|
+
const allIxs = [...(action.setupIxs || []), ...action.lendingIxs, ...(action.cleanupIxs || [])];
|
|
218
|
+
return this.convertInstructions(allIxs.filter((ix) => ix != null));
|
|
172
219
|
}
|
|
173
|
-
async
|
|
174
|
-
|
|
220
|
+
async buildBorrowInstruction(params) {
|
|
221
|
+
const sdk = await this.loadSdk();
|
|
222
|
+
const { market } = await this.loadMarket(params.market);
|
|
223
|
+
const wallet = new sdk.PublicKey(params.walletAddress);
|
|
224
|
+
const mint = new sdk.PublicKey(params.asset);
|
|
225
|
+
const action = await sdk.KaminoAction.buildBorrowTxns(market, params.amount.toString(), mint, wallet, new sdk.VanillaObligation(new sdk.PublicKey(KAMINO_PROGRAM_ID)));
|
|
226
|
+
const allIxs = [...(action.setupIxs || []), ...action.lendingIxs, ...(action.cleanupIxs || [])];
|
|
227
|
+
return this.convertInstructions(allIxs.filter((ix) => ix != null));
|
|
175
228
|
}
|
|
176
|
-
async
|
|
177
|
-
|
|
229
|
+
async buildRepayInstruction(params) {
|
|
230
|
+
const sdk = await this.loadSdk();
|
|
231
|
+
const { market } = await this.loadMarket(params.market);
|
|
232
|
+
const wallet = new sdk.PublicKey(params.walletAddress);
|
|
233
|
+
const mint = new sdk.PublicKey(params.asset);
|
|
234
|
+
const amountStr = params.amount === 'max' ? 'max' : params.amount.toString();
|
|
235
|
+
const action = await sdk.KaminoAction.buildRepayTxns(market, amountStr, mint, wallet, new sdk.VanillaObligation(new sdk.PublicKey(KAMINO_PROGRAM_ID)));
|
|
236
|
+
const allIxs = [...(action.setupIxs || []), ...action.lendingIxs, ...(action.cleanupIxs || [])];
|
|
237
|
+
return this.convertInstructions(allIxs.filter((ix) => ix != null));
|
|
178
238
|
}
|
|
179
|
-
async
|
|
180
|
-
|
|
239
|
+
async buildWithdrawInstruction(params) {
|
|
240
|
+
const sdk = await this.loadSdk();
|
|
241
|
+
const { market } = await this.loadMarket(params.market);
|
|
242
|
+
const wallet = new sdk.PublicKey(params.walletAddress);
|
|
243
|
+
const mint = new sdk.PublicKey(params.asset);
|
|
244
|
+
const amountStr = params.amount === 'max' ? 'max' : params.amount.toString();
|
|
245
|
+
const action = await sdk.KaminoAction.buildWithdrawTxns(market, amountStr, mint, wallet, new sdk.VanillaObligation(new sdk.PublicKey(KAMINO_PROGRAM_ID)));
|
|
246
|
+
const allIxs = [...(action.setupIxs || []), ...action.lendingIxs, ...(action.cleanupIxs || [])];
|
|
247
|
+
return this.convertInstructions(allIxs.filter((ix) => ix != null));
|
|
248
|
+
}
|
|
249
|
+
async getObligation(params) {
|
|
250
|
+
const sdk = await this.loadSdk();
|
|
251
|
+
const { market } = await this.loadMarket(params.market);
|
|
252
|
+
const wallet = new sdk.PublicKey(params.walletAddress);
|
|
253
|
+
await market.loadReserves();
|
|
254
|
+
const obligations = await market.getObligationByWallet(wallet, new sdk.VanillaObligation(new sdk.PublicKey(KAMINO_PROGRAM_ID)));
|
|
255
|
+
if (!obligations)
|
|
256
|
+
return null;
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
258
|
+
const deposits = obligations.deposits
|
|
259
|
+
.filter((d) => Number(d.amount.toString()) > 0)
|
|
260
|
+
.map((d) => ({
|
|
261
|
+
mintAddress: String(d.mintAddress.toBase58?.() ?? d.mintAddress),
|
|
262
|
+
amount: d.amount.toBigInt ? d.amount.toBigInt() : BigInt(d.amount.toString()),
|
|
263
|
+
marketValueUsd: d.marketValueSf ? Number(d.marketValueSf.toString()) / 1e12 : 0,
|
|
264
|
+
}));
|
|
265
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
266
|
+
const borrows = obligations.borrows
|
|
267
|
+
.filter((b) => Number(b.amount.toString()) > 0)
|
|
268
|
+
.map((b) => ({
|
|
269
|
+
mintAddress: String(b.mintAddress.toBase58?.() ?? b.mintAddress),
|
|
270
|
+
amount: b.amount.toBigInt ? b.amount.toBigInt() : BigInt(b.amount.toString()),
|
|
271
|
+
marketValueUsd: b.marketValueSf ? Number(b.marketValueSf.toString()) / 1e12 : 0,
|
|
272
|
+
}));
|
|
273
|
+
const loanToValue = obligations.loanToValue?.() ?? 0;
|
|
274
|
+
return { deposits, borrows, loanToValue };
|
|
275
|
+
}
|
|
276
|
+
async getReserves(market) {
|
|
277
|
+
const { market: kaminoMarket } = await this.loadMarket(market);
|
|
278
|
+
await kaminoMarket.loadReserves();
|
|
279
|
+
const reserves = kaminoMarket.reserves;
|
|
280
|
+
const result = [];
|
|
281
|
+
for (const [, reserve] of reserves) {
|
|
282
|
+
const stats = reserve.stats;
|
|
283
|
+
if (!stats)
|
|
284
|
+
continue;
|
|
285
|
+
result.push({
|
|
286
|
+
mintAddress: reserve.getLiquidityMint().toBase58(),
|
|
287
|
+
symbol: stats.symbol ?? reserve.getLiquidityMint().toBase58().slice(0, 6),
|
|
288
|
+
supplyApy: stats.supplyInterestAPY ?? 0,
|
|
289
|
+
borrowApy: stats.borrowInterestAPY ?? 0,
|
|
290
|
+
ltvPct: (stats.loanToValuePct ?? 0),
|
|
291
|
+
availableLiquidity: stats.availableAmount?.toString() ?? '0',
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
return result;
|
|
181
295
|
}
|
|
182
296
|
}
|
|
183
297
|
//# sourceMappingURL=kamino-sdk-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kamino-sdk-wrapper.js","sourceRoot":"","sources":["../../../src/providers/kamino/kamino-sdk-wrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kamino-sdk-wrapper.js","sourceRoot":"","sources":["../../../src/providers/kamino/kamino-sdk-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lido-staking-provider.test.d.ts","sourceRoot":"","sources":["../../../../src/providers/lido-staking/__tests__/lido-staking-provider.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LidoStakingActionProvider supplementary unit tests.
|
|
3
|
+
*
|
|
4
|
+
* Focuses on paths not covered by existing lido-staking.test.ts:
|
|
5
|
+
* - humanAmount + decimals conversion for stake/unstake
|
|
6
|
+
* - humanAmount without decimals error
|
|
7
|
+
* - network parameter for resolve (network-specific addresses)
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from 'vitest';
|
|
10
|
+
import { LidoStakingActionProvider } from '../index.js';
|
|
11
|
+
import { LIDO_MAINNET_ADDRESSES } from '../config.js';
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Shared context
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
const CONTEXT = {
|
|
16
|
+
walletAddress: '0x1234567890123456789012345678901234567890',
|
|
17
|
+
chain: 'ethereum',
|
|
18
|
+
walletId: '00000000-0000-0000-0000-000000000001',
|
|
19
|
+
};
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// humanAmount conversion tests
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
describe('LidoStakingActionProvider - humanAmount conversion', () => {
|
|
24
|
+
it('stake: humanAmount="2.5" with decimals=18 converts to 2500000000000000000 wei', async () => {
|
|
25
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
26
|
+
const result = await provider.resolve('stake', {
|
|
27
|
+
humanAmount: '2.5',
|
|
28
|
+
decimals: 18,
|
|
29
|
+
}, CONTEXT);
|
|
30
|
+
const req = result;
|
|
31
|
+
expect(req.type).toBe('CONTRACT_CALL');
|
|
32
|
+
expect(req.value).toBe('2500000000000000000');
|
|
33
|
+
});
|
|
34
|
+
it('stake: humanAmount="0.01" with decimals=18 converts to 10000000000000000 wei', async () => {
|
|
35
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
36
|
+
const result = await provider.resolve('stake', {
|
|
37
|
+
humanAmount: '0.01',
|
|
38
|
+
decimals: 18,
|
|
39
|
+
}, CONTEXT);
|
|
40
|
+
const req = result;
|
|
41
|
+
expect(req.value).toBe('10000000000000000');
|
|
42
|
+
});
|
|
43
|
+
it('unstake: humanAmount="1.0" with decimals=18 returns [approve, requestWithdrawals]', async () => {
|
|
44
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
45
|
+
const result = await provider.resolve('unstake', {
|
|
46
|
+
humanAmount: '1.0',
|
|
47
|
+
decimals: 18,
|
|
48
|
+
}, CONTEXT);
|
|
49
|
+
expect(Array.isArray(result)).toBe(true);
|
|
50
|
+
const arr = result;
|
|
51
|
+
expect(arr).toHaveLength(2);
|
|
52
|
+
expect(arr[0].calldata).toMatch(/^0x095ea7b3/);
|
|
53
|
+
expect(arr[1].calldata).toMatch(/^0xd669a4e2/);
|
|
54
|
+
});
|
|
55
|
+
it('stake: throws when humanAmount given without decimals', async () => {
|
|
56
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
57
|
+
await expect(provider.resolve('stake', { humanAmount: '1.0' }, CONTEXT)).rejects.toThrow('decimals');
|
|
58
|
+
});
|
|
59
|
+
it('unstake: throws when humanAmount given without decimals', async () => {
|
|
60
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
61
|
+
await expect(provider.resolve('unstake', { humanAmount: '1.0' }, CONTEXT)).rejects.toThrow('decimals');
|
|
62
|
+
});
|
|
63
|
+
it('stake: throws when neither amount nor humanAmount provided', async () => {
|
|
64
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
65
|
+
await expect(provider.resolve('stake', {}, CONTEXT)).rejects.toThrow();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// Network parameter tests
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
describe('LidoStakingActionProvider - network parameter', () => {
|
|
72
|
+
it('stake with network=ethereum-mainnet uses mainnet stETH address', async () => {
|
|
73
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
74
|
+
const result = await provider.resolve('stake', {
|
|
75
|
+
amount: '1.0',
|
|
76
|
+
network: 'ethereum-mainnet',
|
|
77
|
+
}, CONTEXT);
|
|
78
|
+
const req = result;
|
|
79
|
+
expect(req.to).toBe(LIDO_MAINNET_ADDRESSES.stethAddress);
|
|
80
|
+
});
|
|
81
|
+
it('unstake targets correct withdrawalQueue and stETH addresses on mainnet', async () => {
|
|
82
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
83
|
+
const result = await provider.resolve('unstake', {
|
|
84
|
+
amount: '1.0',
|
|
85
|
+
}, CONTEXT);
|
|
86
|
+
const arr = result;
|
|
87
|
+
expect(arr[0].to).toBe(LIDO_MAINNET_ADDRESSES.stethAddress);
|
|
88
|
+
expect(arr[1].to).toBe(LIDO_MAINNET_ADDRESSES.withdrawalQueueAddress);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
// Edge cases
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
describe('LidoStakingActionProvider - edge cases', () => {
|
|
95
|
+
it('negative amount throws', async () => {
|
|
96
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
97
|
+
await expect(provider.resolve('stake', { amount: '-1.0' }, CONTEXT)).rejects.toThrow();
|
|
98
|
+
});
|
|
99
|
+
it('very large amount is faithfully encoded', async () => {
|
|
100
|
+
const provider = new LidoStakingActionProvider({ enabled: true });
|
|
101
|
+
const result = await provider.resolve('stake', { amount: '1000.0' }, CONTEXT);
|
|
102
|
+
const req = result;
|
|
103
|
+
expect(req.value).toBe('1000000000000000000000');
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=lido-staking-provider.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lido-staking-provider.test.js","sourceRoot":"","sources":["../../../../src/providers/lido-staking/__tests__/lido-staking-provider.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
import type { IActionProvider, ActionProviderMetadata, ActionDefinition, ActionContext, ContractCallRequest } from '@waiaas/core';
|
|
2
2
|
import { type LidoStakingConfig } from './config.js';
|
|
3
|
-
import type { PositionUpdate, PositionCategory } from '@waiaas/core';
|
|
3
|
+
import type { PositionUpdate, PositionCategory, PositionQueryContext } from '@waiaas/core';
|
|
4
4
|
export declare class LidoStakingActionProvider implements IActionProvider {
|
|
5
5
|
readonly metadata: ActionProviderMetadata;
|
|
6
6
|
readonly actions: readonly ActionDefinition[];
|
|
7
7
|
private readonly config;
|
|
8
|
-
private readonly rpcUrl?;
|
|
9
8
|
constructor(config?: Partial<LidoStakingConfig>);
|
|
10
9
|
resolve(actionName: string, params: Record<string, unknown>, context: ActionContext): Promise<ContractCallRequest | ContractCallRequest[]>;
|
|
11
10
|
private resolveStake;
|
|
12
11
|
private resolveUnstake;
|
|
13
12
|
/**
|
|
14
|
-
* Query stETH and wstETH balances
|
|
15
|
-
*
|
|
13
|
+
* Query stETH and wstETH balances across all supported networks in ctx.networks.
|
|
14
|
+
* Uses Promise.allSettled for partial failure resilience (MCHN-06, MCHN-07).
|
|
16
15
|
*/
|
|
17
|
-
getPositions(
|
|
16
|
+
getPositions(ctx: PositionQueryContext): Promise<PositionUpdate[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Query stETH + wstETH positions on a single network.
|
|
19
|
+
*/
|
|
20
|
+
private queryNetworkPositions;
|
|
18
21
|
getProviderName(): string;
|
|
19
22
|
getSupportedCategories(): PositionCategory[];
|
|
20
23
|
/**
|
|
21
|
-
* Execute a single eth_call and decode the result as uint256.
|
|
24
|
+
* Execute a single eth_call with explicit rpcUrl and decode the result as uint256.
|
|
22
25
|
*/
|
|
23
|
-
private
|
|
26
|
+
private ethCallUint256WithRpc;
|
|
24
27
|
/**
|
|
25
28
|
* Format a wei-denominated bigint to a human-readable decimal string (18 decimals).
|
|
26
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/lido-staking/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/lido-staking/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAa5E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AA0B3F,qBAAa,yBAA0B,YAAW,eAAe;IAC/D,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAmCzC,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IAkBvD,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,cAAc;IAwCtB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0BxE;;OAEG;YACW,qBAAqB;IA8EnC,eAAe,IAAI,MAAM;IAIzB,sBAAsB,IAAI,gBAAgB,EAAE;IAQ5C;;OAEG;YACW,qBAAqB;IAenC;;OAEG;IACH,OAAO,CAAC,SAAS;CAOlB"}
|
|
@@ -13,7 +13,7 @@ import { ChainError } from '@waiaas/core';
|
|
|
13
13
|
import { migrateAmount } from '../../common/migrate-amount.js';
|
|
14
14
|
import { resolveProviderHumanAmount } from '../../common/resolve-human-amount.js';
|
|
15
15
|
import { LIDO_STAKING_DEFAULTS } from './config.js';
|
|
16
|
-
import { encodeSubmitCalldata, encodeRequestWithdrawalsCalldata, encodeApproveCalldata, encodeBalanceOfCalldata, encodeStEthPerTokenCalldata, decodeUint256Result,
|
|
16
|
+
import { encodeSubmitCalldata, encodeRequestWithdrawalsCalldata, encodeApproveCalldata, encodeBalanceOfCalldata, encodeStEthPerTokenCalldata, decodeUint256Result, LIDO_NETWORK_CONFIG, LIDO_TESTNET_NETWORK_CONFIG, } from './lido-contract.js';
|
|
17
17
|
import { formatCaip19 } from '@waiaas/core';
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
19
|
// Input schemas (Zod SSoT)
|
|
@@ -39,12 +39,11 @@ export class LidoStakingActionProvider {
|
|
|
39
39
|
metadata;
|
|
40
40
|
actions;
|
|
41
41
|
config;
|
|
42
|
-
rpcUrl;
|
|
43
42
|
constructor(config) {
|
|
44
43
|
this.config = { ...LIDO_STAKING_DEFAULTS, ...config };
|
|
45
|
-
this.rpcUrl = this.config.rpcUrl;
|
|
46
44
|
this.metadata = {
|
|
47
45
|
name: 'lido_staking',
|
|
46
|
+
displayName: 'Lido Staking',
|
|
48
47
|
description: 'Lido liquid staking protocol for ETH to stETH conversion with withdrawal support',
|
|
49
48
|
version: '1.0.0',
|
|
50
49
|
chains: ['ethereum'],
|
|
@@ -134,25 +133,40 @@ export class LidoStakingActionProvider {
|
|
|
134
133
|
// IPositionProvider methods (duck-type, no formal implements)
|
|
135
134
|
// -------------------------------------------------------------------------
|
|
136
135
|
/**
|
|
137
|
-
* Query stETH and wstETH balances
|
|
138
|
-
*
|
|
136
|
+
* Query stETH and wstETH balances across all supported networks in ctx.networks.
|
|
137
|
+
* Uses Promise.allSettled for partial failure resilience (MCHN-06, MCHN-07).
|
|
139
138
|
*/
|
|
140
|
-
async getPositions(
|
|
141
|
-
if (
|
|
139
|
+
async getPositions(ctx) {
|
|
140
|
+
if (ctx.chain !== 'ethereum')
|
|
142
141
|
return [];
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
142
|
+
const walletAddress = ctx.walletAddress;
|
|
143
|
+
// Select config map based on environment (MCHN-10)
|
|
144
|
+
const networkConfig = ctx.environment === 'testnet'
|
|
145
|
+
? LIDO_TESTNET_NETWORK_CONFIG
|
|
146
|
+
: LIDO_NETWORK_CONFIG;
|
|
147
|
+
// Filter ctx.networks to only Lido-supported networks
|
|
148
|
+
const supportedNetworks = ctx.networks.filter(n => networkConfig[n]);
|
|
149
|
+
if (supportedNetworks.length === 0)
|
|
150
|
+
return [];
|
|
151
|
+
// Query each network in parallel via Promise.allSettled (MCHN-06)
|
|
152
|
+
const results = await Promise.allSettled(supportedNetworks.map(network => {
|
|
153
|
+
const rpcUrl = ctx.rpcUrls[network];
|
|
154
|
+
if (!rpcUrl)
|
|
155
|
+
return Promise.resolve([]);
|
|
156
|
+
return this.queryNetworkPositions(ctx.walletId, walletAddress, network, networkConfig[network], rpcUrl);
|
|
157
|
+
}));
|
|
158
|
+
// Collect only fulfilled results (MCHN-07)
|
|
159
|
+
return results.flatMap(r => r.status === 'fulfilled' ? r.value : []);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Query stETH + wstETH positions on a single network.
|
|
163
|
+
*/
|
|
164
|
+
async queryNetworkPositions(walletId, walletAddress, network, config, rpcUrl) {
|
|
165
|
+
const positions = [];
|
|
166
|
+
const now = Math.floor(Date.now() / 1000);
|
|
167
|
+
// 1. Read stETH balance (only on networks that have stETH deployed)
|
|
168
|
+
if (config.stethAddress) {
|
|
169
|
+
const stethBalance = await this.ethCallUint256WithRpc(rpcUrl, config.stethAddress, encodeBalanceOfCalldata(walletAddress));
|
|
156
170
|
if (stethBalance > 0n) {
|
|
157
171
|
const amount = this.formatWei(stethBalance);
|
|
158
172
|
positions.push({
|
|
@@ -160,8 +174,8 @@ export class LidoStakingActionProvider {
|
|
|
160
174
|
category: 'STAKING',
|
|
161
175
|
provider: 'lido_staking',
|
|
162
176
|
chain: 'ethereum',
|
|
163
|
-
network
|
|
164
|
-
assetId: formatCaip19(
|
|
177
|
+
network,
|
|
178
|
+
assetId: formatCaip19(config.caip2, 'erc20', config.stethAddress),
|
|
165
179
|
amount,
|
|
166
180
|
amountUsd: null,
|
|
167
181
|
metadata: { token: 'stETH', underlyingAmount: amount },
|
|
@@ -169,30 +183,36 @@ export class LidoStakingActionProvider {
|
|
|
169
183
|
openedAt: now,
|
|
170
184
|
});
|
|
171
185
|
}
|
|
172
|
-
// 5. Build wstETH position if non-zero
|
|
173
|
-
if (wstethBalance > 0n) {
|
|
174
|
-
const amount = this.formatWei(wstethBalance);
|
|
175
|
-
const underlyingRaw = (wstethBalance * stEthPerToken) / (10n ** 18n);
|
|
176
|
-
const underlyingAmount = this.formatWei(underlyingRaw);
|
|
177
|
-
positions.push({
|
|
178
|
-
walletId,
|
|
179
|
-
category: 'STAKING',
|
|
180
|
-
provider: 'lido_staking',
|
|
181
|
-
chain: 'ethereum',
|
|
182
|
-
network: 'ethereum-mainnet',
|
|
183
|
-
assetId: formatCaip19('eip155:1', 'erc20', WSTETH_MAINNET),
|
|
184
|
-
amount,
|
|
185
|
-
amountUsd: null,
|
|
186
|
-
metadata: { token: 'wstETH', underlyingAmount },
|
|
187
|
-
status: 'ACTIVE',
|
|
188
|
-
openedAt: now,
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
return positions;
|
|
192
186
|
}
|
|
193
|
-
|
|
194
|
-
|
|
187
|
+
// 2. Read wstETH balance
|
|
188
|
+
const wstethBalance = await this.ethCallUint256WithRpc(rpcUrl, config.wstethAddress, encodeBalanceOfCalldata(walletAddress));
|
|
189
|
+
if (wstethBalance > 0n) {
|
|
190
|
+
// 3. Read stEthPerToken exchange rate
|
|
191
|
+
let stEthPerToken = 10n ** 18n; // default 1:1
|
|
192
|
+
try {
|
|
193
|
+
stEthPerToken = await this.ethCallUint256WithRpc(rpcUrl, config.wstethAddress, encodeStEthPerTokenCalldata());
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// Fallback to 1:1 if stEthPerToken fails (L2 wstETH may not have this method)
|
|
197
|
+
}
|
|
198
|
+
const amount = this.formatWei(wstethBalance);
|
|
199
|
+
const underlyingRaw = (wstethBalance * stEthPerToken) / (10n ** 18n);
|
|
200
|
+
const underlyingAmount = this.formatWei(underlyingRaw);
|
|
201
|
+
positions.push({
|
|
202
|
+
walletId,
|
|
203
|
+
category: 'STAKING',
|
|
204
|
+
provider: 'lido_staking',
|
|
205
|
+
chain: 'ethereum',
|
|
206
|
+
network,
|
|
207
|
+
assetId: formatCaip19(config.caip2, 'erc20', config.wstethAddress),
|
|
208
|
+
amount,
|
|
209
|
+
amountUsd: null,
|
|
210
|
+
metadata: { token: 'wstETH', underlyingAmount },
|
|
211
|
+
status: 'ACTIVE',
|
|
212
|
+
openedAt: now,
|
|
213
|
+
});
|
|
195
214
|
}
|
|
215
|
+
return positions;
|
|
196
216
|
}
|
|
197
217
|
getProviderName() {
|
|
198
218
|
return 'lido_staking';
|
|
@@ -204,10 +224,10 @@ export class LidoStakingActionProvider {
|
|
|
204
224
|
// Internal helpers
|
|
205
225
|
// -------------------------------------------------------------------------
|
|
206
226
|
/**
|
|
207
|
-
* Execute a single eth_call and decode the result as uint256.
|
|
227
|
+
* Execute a single eth_call with explicit rpcUrl and decode the result as uint256.
|
|
208
228
|
*/
|
|
209
|
-
async
|
|
210
|
-
const resp = await fetch(
|
|
229
|
+
async ethCallUint256WithRpc(rpcUrl, to, data) {
|
|
230
|
+
const resp = await fetch(rpcUrl, {
|
|
211
231
|
method: 'POST',
|
|
212
232
|
headers: { 'Content-Type': 'application/json' },
|
|
213
233
|
body: JSON.stringify({
|