@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.
Files changed (164) hide show
  1. package/README.md +5 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +8 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.d.ts +2 -0
  6. package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.d.ts.map +1 -0
  7. package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.js +97 -0
  8. package/dist/providers/aave-v3/__tests__/aave-v3-provider.test.js.map +1 -0
  9. package/dist/providers/aave-v3/aave-contracts.d.ts +8 -0
  10. package/dist/providers/aave-v3/aave-contracts.d.ts.map +1 -1
  11. package/dist/providers/aave-v3/aave-contracts.js +13 -0
  12. package/dist/providers/aave-v3/aave-contracts.js.map +1 -1
  13. package/dist/providers/aave-v3/aave-rpc.d.ts +10 -0
  14. package/dist/providers/aave-v3/aave-rpc.d.ts.map +1 -1
  15. package/dist/providers/aave-v3/aave-rpc.js +16 -0
  16. package/dist/providers/aave-v3/aave-rpc.js.map +1 -1
  17. package/dist/providers/aave-v3/index.d.ts +10 -2
  18. package/dist/providers/aave-v3/index.d.ts.map +1 -1
  19. package/dist/providers/aave-v3/index.js +128 -128
  20. package/dist/providers/aave-v3/index.js.map +1 -1
  21. package/dist/providers/across/index.d.ts.map +1 -1
  22. package/dist/providers/across/index.js +1 -0
  23. package/dist/providers/across/index.js.map +1 -1
  24. package/dist/providers/dcent-swap/auto-router.d.ts.map +1 -1
  25. package/dist/providers/dcent-swap/auto-router.js +8 -0
  26. package/dist/providers/dcent-swap/auto-router.js.map +1 -1
  27. package/dist/providers/dcent-swap/dcent-api-client.d.ts +1 -0
  28. package/dist/providers/dcent-swap/dcent-api-client.d.ts.map +1 -1
  29. package/dist/providers/dcent-swap/dcent-api-client.js.map +1 -1
  30. package/dist/providers/dcent-swap/dex-swap.d.ts +1 -0
  31. package/dist/providers/dcent-swap/dex-swap.d.ts.map +1 -1
  32. package/dist/providers/dcent-swap/dex-swap.js +13 -2
  33. package/dist/providers/dcent-swap/dex-swap.js.map +1 -1
  34. package/dist/providers/dcent-swap/index.d.ts +2 -2
  35. package/dist/providers/dcent-swap/index.d.ts.map +1 -1
  36. package/dist/providers/dcent-swap/index.js +56 -16
  37. package/dist/providers/dcent-swap/index.js.map +1 -1
  38. package/dist/providers/drift/config.d.ts +2 -0
  39. package/dist/providers/drift/config.d.ts.map +1 -1
  40. package/dist/providers/drift/config.js.map +1 -1
  41. package/dist/providers/drift/drift-sdk-wrapper.d.ts +12 -9
  42. package/dist/providers/drift/drift-sdk-wrapper.d.ts.map +1 -1
  43. package/dist/providers/drift/drift-sdk-wrapper.js +220 -20
  44. package/dist/providers/drift/drift-sdk-wrapper.js.map +1 -1
  45. package/dist/providers/drift/index.d.ts +2 -2
  46. package/dist/providers/drift/index.d.ts.map +1 -1
  47. package/dist/providers/drift/index.js +9 -4
  48. package/dist/providers/drift/index.js.map +1 -1
  49. package/dist/providers/erc8004/index.d.ts.map +1 -1
  50. package/dist/providers/erc8004/index.js +1 -0
  51. package/dist/providers/erc8004/index.js.map +1 -1
  52. package/dist/providers/hyperliquid/__tests__/perp-provider.test.js +13 -6
  53. package/dist/providers/hyperliquid/__tests__/perp-provider.test.js.map +1 -1
  54. package/dist/providers/hyperliquid/__tests__/spot-provider.test.js +11 -4
  55. package/dist/providers/hyperliquid/__tests__/spot-provider.test.js.map +1 -1
  56. package/dist/providers/hyperliquid/perp-provider.d.ts +2 -2
  57. package/dist/providers/hyperliquid/perp-provider.d.ts.map +1 -1
  58. package/dist/providers/hyperliquid/perp-provider.js +7 -3
  59. package/dist/providers/hyperliquid/perp-provider.js.map +1 -1
  60. package/dist/providers/hyperliquid/schemas.d.ts +14 -14
  61. package/dist/providers/hyperliquid/spot-provider.d.ts +2 -2
  62. package/dist/providers/hyperliquid/spot-provider.d.ts.map +1 -1
  63. package/dist/providers/hyperliquid/spot-provider.js +7 -3
  64. package/dist/providers/hyperliquid/spot-provider.js.map +1 -1
  65. package/dist/providers/hyperliquid/sub-account-provider.d.ts.map +1 -1
  66. package/dist/providers/hyperliquid/sub-account-provider.js +1 -0
  67. package/dist/providers/hyperliquid/sub-account-provider.js.map +1 -1
  68. package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.d.ts +2 -0
  69. package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.d.ts.map +1 -0
  70. package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.js +107 -0
  71. package/dist/providers/jito-staking/__tests__/jito-staking-provider.test.js.map +1 -0
  72. package/dist/providers/jito-staking/config.d.ts +12 -3
  73. package/dist/providers/jito-staking/config.d.ts.map +1 -1
  74. package/dist/providers/jito-staking/config.js +12 -3
  75. package/dist/providers/jito-staking/config.js.map +1 -1
  76. package/dist/providers/jito-staking/index.d.ts +2 -2
  77. package/dist/providers/jito-staking/index.d.ts.map +1 -1
  78. package/dist/providers/jito-staking/index.js +25 -8
  79. package/dist/providers/jito-staking/index.js.map +1 -1
  80. package/dist/providers/jito-staking/jito-migration.test.js +107 -1
  81. package/dist/providers/jito-staking/jito-migration.test.js.map +1 -1
  82. package/dist/providers/jito-staking/jito-stake-pool.d.ts +18 -5
  83. package/dist/providers/jito-staking/jito-stake-pool.d.ts.map +1 -1
  84. package/dist/providers/jito-staking/jito-stake-pool.js +61 -21
  85. package/dist/providers/jito-staking/jito-stake-pool.js.map +1 -1
  86. package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.d.ts +2 -0
  87. package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.d.ts.map +1 -0
  88. package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.js +177 -0
  89. package/dist/providers/jupiter-swap/__tests__/jupiter-swap-provider.test.js.map +1 -0
  90. package/dist/providers/jupiter-swap/index.d.ts.map +1 -1
  91. package/dist/providers/jupiter-swap/index.js +35 -1
  92. package/dist/providers/jupiter-swap/index.js.map +1 -1
  93. package/dist/providers/jupiter-swap/schemas.d.ts +30 -30
  94. package/dist/providers/jupiter-swap/schemas.js +2 -2
  95. package/dist/providers/jupiter-swap/schemas.js.map +1 -1
  96. package/dist/providers/kamino/config.d.ts +2 -0
  97. package/dist/providers/kamino/config.d.ts.map +1 -1
  98. package/dist/providers/kamino/config.js.map +1 -1
  99. package/dist/providers/kamino/index.d.ts +2 -2
  100. package/dist/providers/kamino/index.d.ts.map +1 -1
  101. package/dist/providers/kamino/index.js +11 -6
  102. package/dist/providers/kamino/index.js.map +1 -1
  103. package/dist/providers/kamino/kamino-sdk-wrapper.d.ts +12 -10
  104. package/dist/providers/kamino/kamino-sdk-wrapper.d.ts.map +1 -1
  105. package/dist/providers/kamino/kamino-sdk-wrapper.js +134 -20
  106. package/dist/providers/kamino/kamino-sdk-wrapper.js.map +1 -1
  107. package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.d.ts +2 -0
  108. package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.d.ts.map +1 -0
  109. package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.js +106 -0
  110. package/dist/providers/lido-staking/__tests__/lido-staking-provider.test.js.map +1 -0
  111. package/dist/providers/lido-staking/index.d.ts +10 -7
  112. package/dist/providers/lido-staking/index.d.ts.map +1 -1
  113. package/dist/providers/lido-staking/index.js +67 -47
  114. package/dist/providers/lido-staking/index.js.map +1 -1
  115. package/dist/providers/lido-staking/lido-contract.d.ts +16 -2
  116. package/dist/providers/lido-staking/lido-contract.d.ts.map +1 -1
  117. package/dist/providers/lido-staking/lido-contract.js +43 -2
  118. package/dist/providers/lido-staking/lido-contract.js.map +1 -1
  119. package/dist/providers/lifi/__tests__/lifi-provider.test.d.ts +2 -0
  120. package/dist/providers/lifi/__tests__/lifi-provider.test.d.ts.map +1 -0
  121. package/dist/providers/lifi/__tests__/lifi-provider.test.js +196 -0
  122. package/dist/providers/lifi/__tests__/lifi-provider.test.js.map +1 -0
  123. package/dist/providers/lifi/index.d.ts.map +1 -1
  124. package/dist/providers/lifi/index.js +1 -0
  125. package/dist/providers/lifi/index.js.map +1 -1
  126. package/dist/providers/pendle/__tests__/pendle-api-client.test.js +79 -0
  127. package/dist/providers/pendle/__tests__/pendle-api-client.test.js.map +1 -1
  128. package/dist/providers/pendle/__tests__/pendle-provider.test.js +28 -8
  129. package/dist/providers/pendle/__tests__/pendle-provider.test.js.map +1 -1
  130. package/dist/providers/pendle/config.d.ts +2 -0
  131. package/dist/providers/pendle/config.d.ts.map +1 -1
  132. package/dist/providers/pendle/config.js +2 -0
  133. package/dist/providers/pendle/config.js.map +1 -1
  134. package/dist/providers/pendle/index.d.ts +8 -4
  135. package/dist/providers/pendle/index.d.ts.map +1 -1
  136. package/dist/providers/pendle/index.js +82 -69
  137. package/dist/providers/pendle/index.js.map +1 -1
  138. package/dist/providers/pendle/pendle-api-client.d.ts +2 -2
  139. package/dist/providers/pendle/pendle-api-client.d.ts.map +1 -1
  140. package/dist/providers/pendle/pendle-api-client.js +9 -2
  141. package/dist/providers/pendle/pendle-api-client.js.map +1 -1
  142. package/dist/providers/pendle/schemas.d.ts +748 -32
  143. package/dist/providers/pendle/schemas.d.ts.map +1 -1
  144. package/dist/providers/pendle/schemas.js +17 -4
  145. package/dist/providers/pendle/schemas.js.map +1 -1
  146. package/dist/providers/polymarket/__tests__/infrastructure.test.d.ts +2 -0
  147. package/dist/providers/polymarket/__tests__/infrastructure.test.d.ts.map +1 -0
  148. package/dist/providers/polymarket/__tests__/infrastructure.test.js +117 -0
  149. package/dist/providers/polymarket/__tests__/infrastructure.test.js.map +1 -0
  150. package/dist/providers/polymarket/ctf-provider.d.ts.map +1 -1
  151. package/dist/providers/polymarket/ctf-provider.js +1 -0
  152. package/dist/providers/polymarket/ctf-provider.js.map +1 -1
  153. package/dist/providers/polymarket/order-provider.d.ts.map +1 -1
  154. package/dist/providers/polymarket/order-provider.js +1 -0
  155. package/dist/providers/polymarket/order-provider.js.map +1 -1
  156. package/dist/providers/polymarket/schemas.d.ts +20 -20
  157. package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.d.ts +2 -0
  158. package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.d.ts.map +1 -0
  159. package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.js +154 -0
  160. package/dist/providers/zerox-swap/__tests__/zerox-swap-provider.test.js.map +1 -0
  161. package/dist/providers/zerox-swap/index.d.ts.map +1 -1
  162. package/dist/providers/zerox-swap/index.js +1 -0
  163. package/dist/providers/zerox-swap/index.js.map +1 -1
  164. 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('PROVIDER_NOT_CONFIGURED', 'solana').
109
+ * all methods throw ChainError('INVALID_INSTRUCTION', 'solana').
110
110
  *
111
- * The real implementation converts TransactionInstruction results
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 throwNotConfigured;
119
- buildSupplyInstruction(_params: {
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(_params: {
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(_params: {
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(_params: {
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(_params: {
145
+ getObligation(params: {
144
146
  market: string;
145
147
  walletAddress: string;
146
148
  }): Promise<KaminoObligation | null>;
147
- getReserves(_market: string): Promise<KaminoReserve[]>;
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('PROVIDER_NOT_CONFIGURED', 'solana').
147
+ * all methods throw ChainError('INVALID_INSTRUCTION', 'solana').
148
148
  *
149
- * The real implementation converts TransactionInstruction results
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 throwNotConfigured() {
159
- const { ChainError } = await import('@waiaas/core');
160
- throw new ChainError('INVALID_INSTRUCTION', 'solana', {
161
- message: 'Kamino K-Lend SDK not available. Install @kamino-finance/klend-sdk and @solana/web3.js as dependencies.',
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
- async buildSupplyInstruction(_params) {
165
- return this.throwNotConfigured();
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
- async buildBorrowInstruction(_params) {
168
- return this.throwNotConfigured();
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 buildRepayInstruction(_params) {
171
- return this.throwNotConfigured();
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 buildWithdrawInstruction(_params) {
174
- return this.throwNotConfigured();
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 getObligation(_params) {
177
- return this.throwNotConfigured();
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 getReserves(_market) {
180
- return this.throwNotConfigured();
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lido-staking-provider.test.d.ts.map
@@ -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 for the given wallet and return
15
- * STAKING position updates. Returns [] on zero balances or RPC error.
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(walletId: string): Promise<PositionUpdate[]>;
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 ethCallUint256;
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;AAW5E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA0BrE,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;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,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,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyE/D,eAAe,IAAI,MAAM;IAIzB,sBAAsB,IAAI,gBAAgB,EAAE;IAQ5C;;OAEG;YACW,cAAc;IAe5B;;OAEG;IACH,OAAO,CAAC,SAAS;CAOlB"}
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, WSTETH_MAINNET, } from './lido-contract.js';
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 for the given wallet and return
138
- * STAKING position updates. Returns [] on zero balances or RPC error.
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(walletId) {
141
- if (!this.rpcUrl)
139
+ async getPositions(ctx) {
140
+ if (ctx.chain !== 'ethereum')
142
141
  return [];
143
- try {
144
- const positions = [];
145
- const now = Math.floor(Date.now() / 1000);
146
- // 1. Read stETH balance
147
- const stethBalance = await this.ethCallUint256(this.config.stethAddress, encodeBalanceOfCalldata(walletId));
148
- // 2. Read wstETH balance
149
- const wstethBalance = await this.ethCallUint256(WSTETH_MAINNET, encodeBalanceOfCalldata(walletId));
150
- // 3. Read stEthPerToken exchange rate (for wstETH -> stETH conversion)
151
- let stEthPerToken = 10n ** 18n; // default 1:1
152
- if (wstethBalance > 0n) {
153
- stEthPerToken = await this.ethCallUint256(WSTETH_MAINNET, encodeStEthPerTokenCalldata());
154
- }
155
- // 4. Build stETH position if non-zero
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: 'ethereum-mainnet',
164
- assetId: formatCaip19('eip155:1', 'erc20', this.config.stethAddress),
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
- catch {
194
- return [];
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 ethCallUint256(to, data) {
210
- const resp = await fetch(this.rpcUrl, {
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({