@waiaas/actions 2.9.0-rc.1 → 2.9.0-rc.10

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 (77) hide show
  1. package/dist/index.d.ts +15 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +53 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/providers/drift/config.d.ts +15 -0
  6. package/dist/providers/drift/config.d.ts.map +1 -0
  7. package/dist/providers/drift/config.js +19 -0
  8. package/dist/providers/drift/config.js.map +1 -0
  9. package/dist/providers/drift/drift-market-data.d.ts +19 -0
  10. package/dist/providers/drift/drift-market-data.d.ts.map +1 -0
  11. package/dist/providers/drift/drift-market-data.js +23 -0
  12. package/dist/providers/drift/drift-market-data.js.map +1 -0
  13. package/dist/providers/drift/drift-sdk-wrapper.d.ts +170 -0
  14. package/dist/providers/drift/drift-sdk-wrapper.d.ts.map +1 -0
  15. package/dist/providers/drift/drift-sdk-wrapper.js +211 -0
  16. package/dist/providers/drift/drift-sdk-wrapper.js.map +1 -0
  17. package/dist/providers/drift/index.d.ts +26 -0
  18. package/dist/providers/drift/index.d.ts.map +1 -0
  19. package/dist/providers/drift/index.js +296 -0
  20. package/dist/providers/drift/index.js.map +1 -0
  21. package/dist/providers/drift/schemas.d.ts +117 -0
  22. package/dist/providers/drift/schemas.d.ts.map +1 -0
  23. package/dist/providers/drift/schemas.js +79 -0
  24. package/dist/providers/drift/schemas.js.map +1 -0
  25. package/dist/providers/kamino/config.d.ts +26 -0
  26. package/dist/providers/kamino/config.d.ts.map +1 -0
  27. package/dist/providers/kamino/config.js +34 -0
  28. package/dist/providers/kamino/config.js.map +1 -0
  29. package/dist/providers/kamino/hf-simulation.d.ts +52 -0
  30. package/dist/providers/kamino/hf-simulation.d.ts.map +1 -0
  31. package/dist/providers/kamino/hf-simulation.js +84 -0
  32. package/dist/providers/kamino/hf-simulation.js.map +1 -0
  33. package/dist/providers/kamino/index.d.ts +25 -0
  34. package/dist/providers/kamino/index.d.ts.map +1 -0
  35. package/dist/providers/kamino/index.js +381 -0
  36. package/dist/providers/kamino/index.js.map +1 -0
  37. package/dist/providers/kamino/kamino-sdk-wrapper.d.ts +149 -0
  38. package/dist/providers/kamino/kamino-sdk-wrapper.d.ts.map +1 -0
  39. package/dist/providers/kamino/kamino-sdk-wrapper.js +183 -0
  40. package/dist/providers/kamino/kamino-sdk-wrapper.js.map +1 -0
  41. package/dist/providers/kamino/schemas.d.ts +73 -0
  42. package/dist/providers/kamino/schemas.d.ts.map +1 -0
  43. package/dist/providers/kamino/schemas.js +53 -0
  44. package/dist/providers/kamino/schemas.js.map +1 -0
  45. package/dist/providers/pendle/__tests__/pendle-api-client.test.d.ts +2 -0
  46. package/dist/providers/pendle/__tests__/pendle-api-client.test.d.ts.map +1 -0
  47. package/dist/providers/pendle/__tests__/pendle-api-client.test.js +252 -0
  48. package/dist/providers/pendle/__tests__/pendle-api-client.test.js.map +1 -0
  49. package/dist/providers/pendle/__tests__/pendle-provider.test.d.ts +2 -0
  50. package/dist/providers/pendle/__tests__/pendle-provider.test.d.ts.map +1 -0
  51. package/dist/providers/pendle/__tests__/pendle-provider.test.js +229 -0
  52. package/dist/providers/pendle/__tests__/pendle-provider.test.js.map +1 -0
  53. package/dist/providers/pendle/__tests__/pendle-redeem-lp.test.d.ts +2 -0
  54. package/dist/providers/pendle/__tests__/pendle-redeem-lp.test.d.ts.map +1 -0
  55. package/dist/providers/pendle/__tests__/pendle-redeem-lp.test.js +200 -0
  56. package/dist/providers/pendle/__tests__/pendle-redeem-lp.test.js.map +1 -0
  57. package/dist/providers/pendle/config.d.ts +25 -0
  58. package/dist/providers/pendle/config.d.ts.map +1 -0
  59. package/dist/providers/pendle/config.js +37 -0
  60. package/dist/providers/pendle/config.js.map +1 -0
  61. package/dist/providers/pendle/index.d.ts +39 -0
  62. package/dist/providers/pendle/index.d.ts.map +1 -0
  63. package/dist/providers/pendle/index.js +261 -0
  64. package/dist/providers/pendle/index.js.map +1 -0
  65. package/dist/providers/pendle/input-schemas.d.ts +79 -0
  66. package/dist/providers/pendle/input-schemas.d.ts.map +1 -0
  67. package/dist/providers/pendle/input-schemas.js +33 -0
  68. package/dist/providers/pendle/input-schemas.js.map +1 -0
  69. package/dist/providers/pendle/pendle-api-client.d.ts +41 -0
  70. package/dist/providers/pendle/pendle-api-client.d.ts.map +1 -0
  71. package/dist/providers/pendle/pendle-api-client.js +55 -0
  72. package/dist/providers/pendle/pendle-api-client.js.map +1 -0
  73. package/dist/providers/pendle/schemas.d.ts +278 -0
  74. package/dist/providers/pendle/schemas.d.ts.map +1 -0
  75. package/dist/providers/pendle/schemas.js +57 -0
  76. package/dist/providers/pendle/schemas.js.map +1 -0
  77. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -30,6 +30,21 @@ export { AAVE_V3_DEFAULTS, AAVE_V3_ADDRESSES, getAaveAddresses, AAVE_CHAIN_ID_MA
30
30
  export type { AaveV3Config, AaveChainAddresses } from './providers/aave-v3/config.js';
31
31
  export type { IRpcCaller, UserAccountData, ReserveData } from './providers/aave-v3/aave-rpc.js';
32
32
  export { decodeGetUserAccountData, decodeGetReserveData, simulateHealthFactor, rayToApy, hfToNumber, LIQUIDATION_THRESHOLD_HF, WARNING_THRESHOLD_HF } from './providers/aave-v3/aave-rpc.js';
33
+ export { KaminoLendingProvider } from './providers/kamino/index.js';
34
+ export { KAMINO_DEFAULTS, KAMINO_PROGRAM_ID, KAMINO_MAIN_MARKET, resolveMarketAddress } from './providers/kamino/config.js';
35
+ export type { KaminoConfig } from './providers/kamino/config.js';
36
+ export type { IKaminoSdkWrapper, KaminoInstruction, KaminoObligation, KaminoReserve } from './providers/kamino/kamino-sdk-wrapper.js';
37
+ export { MockKaminoSdkWrapper } from './providers/kamino/kamino-sdk-wrapper.js';
38
+ export { calculateHealthFactor, simulateKaminoHealthFactor, hfToStatus, KAMINO_LIQUIDATION_THRESHOLD, KAMINO_DEFAULT_HF_THRESHOLD } from './providers/kamino/hf-simulation.js';
39
+ export { PendleYieldProvider } from './providers/pendle/index.js';
40
+ export { PENDLE_DEFAULTS, PENDLE_CHAIN_ID_MAP, getPendleChainId } from './providers/pendle/config.js';
41
+ export type { PendleConfig } from './providers/pendle/config.js';
42
+ export { PendleApiClient } from './providers/pendle/pendle-api-client.js';
43
+ export { DriftPerpProvider } from './providers/drift/index.js';
44
+ export { DRIFT_DEFAULTS, DRIFT_PROGRAM_ID } from './providers/drift/config.js';
45
+ export type { DriftConfig } from './providers/drift/config.js';
46
+ export { MockDriftSdkWrapper } from './providers/drift/drift-sdk-wrapper.js';
47
+ export type { IDriftSdkWrapper, DriftInstruction, DriftPosition, DriftMarginInfo } from './providers/drift/drift-sdk-wrapper.js';
33
48
  export { ActionApiClient } from './common/action-api-client.js';
34
49
  export { asBps, asPct, clampSlippageBps, bpsToPct, pctToBps } from './common/slippage.js';
35
50
  export type { SlippageBps, SlippagePct } from './common/slippage.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,9 @@ import { JitoStakingActionProvider } from './providers/jito-staking/index.js';
8
8
  import { getJitoAddresses } from './providers/jito-staking/config.js';
9
9
  import { AaveV3LendingProvider } from './providers/aave-v3/index.js';
10
10
  import {} from './providers/aave-v3/config.js';
11
+ import { KaminoLendingProvider } from './providers/kamino/index.js';
12
+ import { PendleYieldProvider } from './providers/pendle/index.js';
13
+ import { DriftPerpProvider } from './providers/drift/index.js';
11
14
  // Re-export provider classes
12
15
  export { JupiterSwapActionProvider } from './providers/jupiter-swap/index.js';
13
16
  export { JUPITER_PROGRAM_ID, JUPITER_SWAP_DEFAULTS } from './providers/jupiter-swap/config.js';
@@ -26,6 +29,16 @@ export { JitoEpochTracker } from './providers/jito-staking/epoch-tracker.js';
26
29
  export { AaveV3LendingProvider } from './providers/aave-v3/index.js';
27
30
  export { AAVE_V3_DEFAULTS, AAVE_V3_ADDRESSES, getAaveAddresses, AAVE_CHAIN_ID_MAP } from './providers/aave-v3/config.js';
28
31
  export { decodeGetUserAccountData, decodeGetReserveData, simulateHealthFactor, rayToApy, hfToNumber, LIQUIDATION_THRESHOLD_HF, WARNING_THRESHOLD_HF } from './providers/aave-v3/aave-rpc.js';
32
+ export { KaminoLendingProvider } from './providers/kamino/index.js';
33
+ export { KAMINO_DEFAULTS, KAMINO_PROGRAM_ID, KAMINO_MAIN_MARKET, resolveMarketAddress } from './providers/kamino/config.js';
34
+ export { MockKaminoSdkWrapper } from './providers/kamino/kamino-sdk-wrapper.js';
35
+ export { calculateHealthFactor, simulateKaminoHealthFactor, hfToStatus, KAMINO_LIQUIDATION_THRESHOLD, KAMINO_DEFAULT_HF_THRESHOLD } from './providers/kamino/hf-simulation.js';
36
+ export { PendleYieldProvider } from './providers/pendle/index.js';
37
+ export { PENDLE_DEFAULTS, PENDLE_CHAIN_ID_MAP, getPendleChainId } from './providers/pendle/config.js';
38
+ export { PendleApiClient } from './providers/pendle/pendle-api-client.js';
39
+ export { DriftPerpProvider } from './providers/drift/index.js';
40
+ export { DRIFT_DEFAULTS, DRIFT_PROGRAM_ID } from './providers/drift/config.js';
41
+ export { MockDriftSdkWrapper } from './providers/drift/drift-sdk-wrapper.js';
29
42
  // Re-export common utilities
30
43
  export { ActionApiClient } from './common/action-api-client.js';
31
44
  export { asBps, asPct, clampSlippageBps, bpsToPct, pctToBps } from './common/slippage.js';
@@ -91,8 +104,8 @@ export function registerBuiltInProviders(registry, settingsReader, options) {
91
104
  key: 'lido_staking',
92
105
  enabledKey: 'actions.lido_staking_enabled',
93
106
  factory: () => {
94
- // Resolve environment from registered rpc.evm_default_network setting
95
- const evmNetwork = settingsReader.get('rpc.evm_default_network') || 'ethereum-mainnet';
107
+ // Lido is Ethereum-only; default to mainnet
108
+ const evmNetwork = 'ethereum-mainnet';
96
109
  const isTestnet = deriveEnvironment(evmNetwork) === 'testnet';
97
110
  const addresses = getLidoAddresses(isTestnet ? 'testnet' : 'mainnet');
98
111
  // Admin Settings overrides individual addresses; empty string falls back to environment default
@@ -132,6 +145,44 @@ export function registerBuiltInProviders(registry, settingsReader, options) {
132
145
  return new AaveV3LendingProvider(config, options?.rpcCaller);
133
146
  },
134
147
  },
148
+ {
149
+ key: 'kamino',
150
+ enabledKey: 'actions.kamino_enabled',
151
+ factory: () => {
152
+ const config = {
153
+ enabled: true,
154
+ market: settingsReader.get('actions.kamino_market') || 'main',
155
+ hfThreshold: Number(settingsReader.get('actions.kamino_hf_threshold')) || 1.2,
156
+ };
157
+ return new KaminoLendingProvider(config);
158
+ },
159
+ },
160
+ {
161
+ key: 'pendle_yield',
162
+ enabledKey: 'actions.pendle_yield_enabled',
163
+ factory: () => {
164
+ const config = {
165
+ enabled: true,
166
+ apiBaseUrl: settingsReader.get('actions.pendle_yield_api_base_url') || 'https://api-v2.pendle.finance',
167
+ apiKey: settingsReader.get('actions.pendle_yield_api_key') || '',
168
+ defaultSlippageBps: Number(settingsReader.get('actions.pendle_yield_default_slippage_bps')) || 100,
169
+ maxSlippageBps: Number(settingsReader.get('actions.pendle_yield_max_slippage_bps')) || 500,
170
+ requestTimeoutMs: Number(settingsReader.get('actions.pendle_yield_request_timeout_ms')) || 10_000,
171
+ };
172
+ return new PendleYieldProvider(config);
173
+ },
174
+ },
175
+ {
176
+ key: 'drift_perp',
177
+ enabledKey: 'actions.drift_enabled',
178
+ factory: () => {
179
+ const config = {
180
+ enabled: true,
181
+ subAccount: 0,
182
+ };
183
+ return new DriftPerpProvider(config);
184
+ },
185
+ },
135
186
  ];
136
187
  for (const { key, enabledKey, factory } of providers) {
137
188
  if (settingsReader.get(enabledKey) === 'true') {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Drift Protocol V2 configuration type, defaults, and program addresses.
3
+ *
4
+ * Supports: Solana mainnet (Drift V2 Perpetual Futures).
5
+ * Program ID verified from Drift Protocol documentation.
6
+ */
7
+ export interface DriftConfig {
8
+ enabled: boolean;
9
+ /** Sub-account index (default 0, DEC-PERP-15). */
10
+ subAccount: number;
11
+ }
12
+ /** Drift Protocol V2 program ID on Solana mainnet. */
13
+ export declare const DRIFT_PROGRAM_ID = "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH";
14
+ export declare const DRIFT_DEFAULTS: DriftConfig;
15
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/providers/drift/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,gDAAgD,CAAC;AAM9E,eAAO,MAAM,cAAc,EAAE,WAG5B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Drift Protocol V2 configuration type, defaults, and program addresses.
3
+ *
4
+ * Supports: Solana mainnet (Drift V2 Perpetual Futures).
5
+ * Program ID verified from Drift Protocol documentation.
6
+ */
7
+ // ---------------------------------------------------------------------------
8
+ // Program constants
9
+ // ---------------------------------------------------------------------------
10
+ /** Drift Protocol V2 program ID on Solana mainnet. */
11
+ export const DRIFT_PROGRAM_ID = 'dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH';
12
+ // ---------------------------------------------------------------------------
13
+ // Defaults (disabled)
14
+ // ---------------------------------------------------------------------------
15
+ export const DRIFT_DEFAULTS = {
16
+ enabled: false,
17
+ subAccount: 0,
18
+ };
19
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/providers/drift/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AAE9E,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;CACd,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Drift market data service.
3
+ *
4
+ * Converts DriftMarketInfo from IDriftSdkWrapper to PerpMarketInfo
5
+ * for IPerpProvider.getMarkets() compliance.
6
+ */
7
+ import type { PerpMarketInfo } from '@waiaas/core';
8
+ import type { IDriftSdkWrapper } from './drift-sdk-wrapper.js';
9
+ export declare class DriftMarketData {
10
+ private readonly sdkWrapper;
11
+ constructor(sdkWrapper: IDriftSdkWrapper);
12
+ /**
13
+ * Get all available Drift perp markets as PerpMarketInfo[].
14
+ * Converts DriftMarketInfo -> PerpMarketInfo (drops marketIndex,
15
+ * keeps market/baseAsset/maxLeverage/fundingRate/openInterest/oraclePrice).
16
+ */
17
+ getMarkets(): Promise<PerpMarketInfo[]>;
18
+ }
19
+ //# sourceMappingURL=drift-market-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift-market-data.d.ts","sourceRoot":"","sources":["../../../src/providers/drift/drift-market-data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAEzD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAW9C"}
@@ -0,0 +1,23 @@
1
+ export class DriftMarketData {
2
+ sdkWrapper;
3
+ constructor(sdkWrapper) {
4
+ this.sdkWrapper = sdkWrapper;
5
+ }
6
+ /**
7
+ * Get all available Drift perp markets as PerpMarketInfo[].
8
+ * Converts DriftMarketInfo -> PerpMarketInfo (drops marketIndex,
9
+ * keeps market/baseAsset/maxLeverage/fundingRate/openInterest/oraclePrice).
10
+ */
11
+ async getMarkets() {
12
+ const driftMarkets = await this.sdkWrapper.getMarkets();
13
+ return driftMarkets.map((m) => ({
14
+ market: m.market,
15
+ baseAsset: m.baseAsset,
16
+ maxLeverage: m.maxLeverage,
17
+ fundingRate: m.fundingRate,
18
+ openInterest: m.openInterest,
19
+ oraclePrice: m.oraclePrice,
20
+ }));
21
+ }
22
+ }
23
+ //# sourceMappingURL=drift-market-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift-market-data.js","sourceRoot":"","sources":["../../../src/providers/drift/drift-market-data.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAG,CAAC;IAE7D;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACxD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
@@ -0,0 +1,170 @@
1
+ /** Drift instruction result (converted from TransactionInstruction). */
2
+ export interface DriftInstruction {
3
+ programId: string;
4
+ /** Base64-encoded instruction data. */
5
+ instructionData: string;
6
+ accounts: Array<{
7
+ pubkey: string;
8
+ isSigner: boolean;
9
+ isWritable: boolean;
10
+ }>;
11
+ }
12
+ /** Drift perpetual position data (plain JS types for SDK query results). */
13
+ export interface DriftPosition {
14
+ market: string;
15
+ marketIndex: number;
16
+ direction: 'LONG' | 'SHORT';
17
+ /** Base asset amount as string (bigint-safe). */
18
+ baseAssetAmount: string;
19
+ entryPrice: number | null;
20
+ leverage: number;
21
+ unrealizedPnl: number | null;
22
+ liquidationPrice: number | null;
23
+ margin: number | null;
24
+ notionalValueUsd: number | null;
25
+ }
26
+ /** Drift account-level margin info (cross-margin model). */
27
+ export interface DriftMarginInfo {
28
+ totalMargin: number;
29
+ freeMargin: number;
30
+ maintenanceMarginRatio: number;
31
+ marginRatio: number;
32
+ }
33
+ /** Drift perpetual market info. */
34
+ export interface DriftMarketInfo {
35
+ market: string;
36
+ marketIndex: number;
37
+ baseAsset: string;
38
+ maxLeverage: number;
39
+ fundingRate: number | null;
40
+ openInterest: number | null;
41
+ oraclePrice: number | null;
42
+ }
43
+ /** Abstraction over @drift-labs/sdk for testability and type isolation. */
44
+ export interface IDriftSdkWrapper {
45
+ buildOpenPositionInstruction(params: {
46
+ market: string;
47
+ direction: 'LONG' | 'SHORT';
48
+ size: string;
49
+ orderType: 'MARKET' | 'LIMIT';
50
+ limitPrice?: string;
51
+ walletAddress: string;
52
+ }): Promise<DriftInstruction[]>;
53
+ buildClosePositionInstruction(params: {
54
+ market: string;
55
+ size?: string;
56
+ walletAddress: string;
57
+ }): Promise<DriftInstruction[]>;
58
+ buildModifyPositionInstruction(params: {
59
+ market: string;
60
+ newSize?: string;
61
+ newLimitPrice?: string;
62
+ walletAddress: string;
63
+ }): Promise<DriftInstruction[]>;
64
+ buildDepositInstruction(params: {
65
+ amount: string;
66
+ asset: string;
67
+ walletAddress: string;
68
+ }): Promise<DriftInstruction[]>;
69
+ buildWithdrawInstruction(params: {
70
+ amount: string;
71
+ asset: string;
72
+ walletAddress: string;
73
+ }): Promise<DriftInstruction[]>;
74
+ /** Get all perp positions for a wallet. */
75
+ getPositions(walletAddress: string): Promise<DriftPosition[]>;
76
+ /** Get account-level margin info (cross-margin). */
77
+ getMarginInfo(walletAddress: string): Promise<DriftMarginInfo>;
78
+ /** Get all available perp markets. */
79
+ getMarkets(): Promise<DriftMarketInfo[]>;
80
+ }
81
+ /**
82
+ * MockDriftSdkWrapper: deterministic mock data for testing.
83
+ *
84
+ * Builds structurally valid DriftInstruction arrays with recognizable
85
+ * mock instruction data (action index prefix + size as UTF-8 bytes).
86
+ */
87
+ export declare class MockDriftSdkWrapper implements IDriftSdkWrapper {
88
+ buildOpenPositionInstruction(params: {
89
+ market: string;
90
+ direction: 'LONG' | 'SHORT';
91
+ size: string;
92
+ orderType: 'MARKET' | 'LIMIT';
93
+ limitPrice?: string;
94
+ walletAddress: string;
95
+ }): Promise<DriftInstruction[]>;
96
+ buildClosePositionInstruction(params: {
97
+ market: string;
98
+ size?: string;
99
+ walletAddress: string;
100
+ }): Promise<DriftInstruction[]>;
101
+ buildModifyPositionInstruction(params: {
102
+ market: string;
103
+ newSize?: string;
104
+ newLimitPrice?: string;
105
+ walletAddress: string;
106
+ }): Promise<DriftInstruction[]>;
107
+ buildDepositInstruction(params: {
108
+ amount: string;
109
+ asset: string;
110
+ walletAddress: string;
111
+ }): Promise<DriftInstruction[]>;
112
+ buildWithdrawInstruction(params: {
113
+ amount: string;
114
+ asset: string;
115
+ walletAddress: string;
116
+ }): Promise<DriftInstruction[]>;
117
+ getPositions(_walletAddress: string): Promise<DriftPosition[]>;
118
+ getMarginInfo(_walletAddress: string): Promise<DriftMarginInfo>;
119
+ getMarkets(): Promise<DriftMarketInfo[]>;
120
+ }
121
+ /**
122
+ * DriftSdkWrapper: wraps @drift-labs/sdk.
123
+ *
124
+ * Lazily imports the SDK at first use. If the SDK is not installed,
125
+ * all methods throw ChainError('INVALID_INSTRUCTION', 'solana').
126
+ *
127
+ * The real implementation will convert TransactionInstruction results
128
+ * to DriftInstruction format (programId + base64 + accounts).
129
+ */
130
+ export declare class DriftSdkWrapper implements IDriftSdkWrapper {
131
+ /** RPC URL for future SDK connection. Stored for when drift-sdk is installed. */
132
+ readonly rpcUrl: string;
133
+ /** Sub-account index (DEC-PERP-15). */
134
+ readonly subAccount: number;
135
+ constructor(rpcUrl: string, subAccount: number);
136
+ private throwNotConfigured;
137
+ buildOpenPositionInstruction(_params: {
138
+ market: string;
139
+ direction: 'LONG' | 'SHORT';
140
+ size: string;
141
+ orderType: 'MARKET' | 'LIMIT';
142
+ limitPrice?: string;
143
+ walletAddress: string;
144
+ }): Promise<DriftInstruction[]>;
145
+ buildClosePositionInstruction(_params: {
146
+ market: string;
147
+ size?: string;
148
+ walletAddress: string;
149
+ }): Promise<DriftInstruction[]>;
150
+ buildModifyPositionInstruction(_params: {
151
+ market: string;
152
+ newSize?: string;
153
+ newLimitPrice?: string;
154
+ walletAddress: string;
155
+ }): Promise<DriftInstruction[]>;
156
+ buildDepositInstruction(_params: {
157
+ amount: string;
158
+ asset: string;
159
+ walletAddress: string;
160
+ }): Promise<DriftInstruction[]>;
161
+ buildWithdrawInstruction(_params: {
162
+ amount: string;
163
+ asset: string;
164
+ walletAddress: string;
165
+ }): Promise<DriftInstruction[]>;
166
+ getPositions(_walletAddress: string): Promise<DriftPosition[]>;
167
+ getMarginInfo(_walletAddress: string): Promise<DriftMarginInfo>;
168
+ getMarkets(): Promise<DriftMarketInfo[]>;
169
+ }
170
+ //# sourceMappingURL=drift-sdk-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift-sdk-wrapper.d.ts","sourceRoot":"","sources":["../../../src/providers/drift/drift-sdk-wrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Drift Protocol V2 SDK wrapper abstraction.
3
+ *
4
+ * IDriftSdkWrapper provides a testable interface for @drift-labs/sdk
5
+ * instruction building and position/margin/market queries.
6
+ * MockDriftSdkWrapper provides deterministic test data.
7
+ * DriftSdkWrapper wraps the real SDK with lazy imports and graceful fallback.
8
+ *
9
+ * Instruction results (DriftInstruction) use the same format as Kamino's
10
+ * KaminoInstruction: programId + base64 instructionData + accounts array.
11
+ *
12
+ * IMPORTANT: No @solana/web3.js or @drift-labs/sdk types appear in this
13
+ * file's public API. All parameters and return types use plain JS types
14
+ * (string, number, boolean) to maintain isolation from @solana/kit 6.x.
15
+ */
16
+ import { DRIFT_PROGRAM_ID } from './config.js';
17
+ // ---------------------------------------------------------------------------
18
+ // Mock instruction data encoding
19
+ // ---------------------------------------------------------------------------
20
+ /**
21
+ * Encode mock instruction data: 1-byte action index + UTF-8 encoded size string.
22
+ * NOT real Drift CPI layout -- only for unit testing.
23
+ */
24
+ function encodeMockInstructionData(actionIndex, sizeStr) {
25
+ const sizeBytes = new TextEncoder().encode(sizeStr);
26
+ const buffer = new Uint8Array(1 + sizeBytes.length);
27
+ buffer[0] = actionIndex;
28
+ buffer.set(sizeBytes, 1);
29
+ return Buffer.from(buffer).toString('base64');
30
+ }
31
+ // ---------------------------------------------------------------------------
32
+ // Mock SDK wrapper (for unit testing)
33
+ // ---------------------------------------------------------------------------
34
+ /**
35
+ * MockDriftSdkWrapper: deterministic mock data for testing.
36
+ *
37
+ * Builds structurally valid DriftInstruction arrays with recognizable
38
+ * mock instruction data (action index prefix + size as UTF-8 bytes).
39
+ */
40
+ export class MockDriftSdkWrapper {
41
+ async buildOpenPositionInstruction(params) {
42
+ return [
43
+ {
44
+ programId: DRIFT_PROGRAM_ID,
45
+ instructionData: encodeMockInstructionData(0, params.size),
46
+ accounts: [
47
+ { pubkey: params.walletAddress, isSigner: true, isWritable: true },
48
+ { pubkey: DRIFT_PROGRAM_ID, isSigner: false, isWritable: true },
49
+ ],
50
+ },
51
+ ];
52
+ }
53
+ async buildClosePositionInstruction(params) {
54
+ return [
55
+ {
56
+ programId: DRIFT_PROGRAM_ID,
57
+ instructionData: encodeMockInstructionData(1, params.size ?? 'full'),
58
+ accounts: [
59
+ { pubkey: params.walletAddress, isSigner: true, isWritable: true },
60
+ { pubkey: DRIFT_PROGRAM_ID, isSigner: false, isWritable: true },
61
+ ],
62
+ },
63
+ ];
64
+ }
65
+ async buildModifyPositionInstruction(params) {
66
+ return [
67
+ {
68
+ programId: DRIFT_PROGRAM_ID,
69
+ instructionData: encodeMockInstructionData(2, params.newSize ?? params.newLimitPrice ?? ''),
70
+ accounts: [
71
+ { pubkey: params.walletAddress, isSigner: true, isWritable: true },
72
+ { pubkey: DRIFT_PROGRAM_ID, isSigner: false, isWritable: true },
73
+ ],
74
+ },
75
+ ];
76
+ }
77
+ async buildDepositInstruction(params) {
78
+ return [
79
+ {
80
+ programId: DRIFT_PROGRAM_ID,
81
+ instructionData: encodeMockInstructionData(3, params.amount),
82
+ accounts: [
83
+ { pubkey: params.walletAddress, isSigner: true, isWritable: true },
84
+ { pubkey: DRIFT_PROGRAM_ID, isSigner: false, isWritable: true },
85
+ { pubkey: params.asset, isSigner: false, isWritable: true },
86
+ ],
87
+ },
88
+ ];
89
+ }
90
+ async buildWithdrawInstruction(params) {
91
+ return [
92
+ {
93
+ programId: DRIFT_PROGRAM_ID,
94
+ instructionData: encodeMockInstructionData(4, params.amount),
95
+ accounts: [
96
+ { pubkey: params.walletAddress, isSigner: true, isWritable: true },
97
+ { pubkey: DRIFT_PROGRAM_ID, isSigner: false, isWritable: true },
98
+ { pubkey: params.asset, isSigner: false, isWritable: true },
99
+ ],
100
+ },
101
+ ];
102
+ }
103
+ async getPositions(_walletAddress) {
104
+ return [
105
+ {
106
+ market: 'SOL-PERP',
107
+ marketIndex: 0,
108
+ direction: 'LONG',
109
+ baseAssetAmount: '100',
110
+ entryPrice: 150,
111
+ leverage: 5,
112
+ unrealizedPnl: 500,
113
+ liquidationPrice: 120,
114
+ margin: 3000,
115
+ notionalValueUsd: 15000,
116
+ },
117
+ ];
118
+ }
119
+ async getMarginInfo(_walletAddress) {
120
+ return {
121
+ totalMargin: 10000,
122
+ freeMargin: 5000,
123
+ maintenanceMarginRatio: 0.0625,
124
+ marginRatio: 0.3,
125
+ };
126
+ }
127
+ async getMarkets() {
128
+ return [
129
+ {
130
+ market: 'SOL-PERP',
131
+ marketIndex: 0,
132
+ baseAsset: 'SOL',
133
+ maxLeverage: 20,
134
+ fundingRate: 0.0001,
135
+ openInterest: 50_000_000,
136
+ oraclePrice: 150.25,
137
+ },
138
+ {
139
+ market: 'BTC-PERP',
140
+ marketIndex: 1,
141
+ baseAsset: 'BTC',
142
+ maxLeverage: 50,
143
+ fundingRate: -0.00005,
144
+ openInterest: 200_000_000,
145
+ oraclePrice: 65_000.5,
146
+ },
147
+ {
148
+ market: 'ETH-PERP',
149
+ marketIndex: 2,
150
+ baseAsset: 'ETH',
151
+ maxLeverage: 30,
152
+ fundingRate: 0.00008,
153
+ openInterest: 100_000_000,
154
+ oraclePrice: 3_500.75,
155
+ },
156
+ ];
157
+ }
158
+ }
159
+ // ---------------------------------------------------------------------------
160
+ // Real SDK wrapper (lazy import, graceful fallback)
161
+ // ---------------------------------------------------------------------------
162
+ /**
163
+ * DriftSdkWrapper: wraps @drift-labs/sdk.
164
+ *
165
+ * Lazily imports the SDK at first use. If the SDK is not installed,
166
+ * all methods throw ChainError('INVALID_INSTRUCTION', 'solana').
167
+ *
168
+ * The real implementation will convert TransactionInstruction results
169
+ * to DriftInstruction format (programId + base64 + accounts).
170
+ */
171
+ export class DriftSdkWrapper {
172
+ /** RPC URL for future SDK connection. Stored for when drift-sdk is installed. */
173
+ rpcUrl;
174
+ /** Sub-account index (DEC-PERP-15). */
175
+ subAccount;
176
+ constructor(rpcUrl, subAccount) {
177
+ this.rpcUrl = rpcUrl;
178
+ this.subAccount = subAccount;
179
+ }
180
+ async throwNotConfigured() {
181
+ const { ChainError } = await import('@waiaas/core');
182
+ throw new ChainError('INVALID_INSTRUCTION', 'solana', {
183
+ message: 'Drift SDK not available. Install @drift-labs/sdk and @solana/web3.js as optional dependencies.',
184
+ });
185
+ }
186
+ async buildOpenPositionInstruction(_params) {
187
+ return this.throwNotConfigured();
188
+ }
189
+ async buildClosePositionInstruction(_params) {
190
+ return this.throwNotConfigured();
191
+ }
192
+ async buildModifyPositionInstruction(_params) {
193
+ return this.throwNotConfigured();
194
+ }
195
+ async buildDepositInstruction(_params) {
196
+ return this.throwNotConfigured();
197
+ }
198
+ async buildWithdrawInstruction(_params) {
199
+ return this.throwNotConfigured();
200
+ }
201
+ async getPositions(_walletAddress) {
202
+ return this.throwNotConfigured();
203
+ }
204
+ async getMarginInfo(_walletAddress) {
205
+ return this.throwNotConfigured();
206
+ }
207
+ async getMarkets() {
208
+ return this.throwNotConfigured();
209
+ }
210
+ }
211
+ //# sourceMappingURL=drift-sdk-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift-sdk-wrapper.js","sourceRoot":"","sources":["../../../src/providers/drift/drift-sdk-wrapper.ts"],"names":[],"mappings":"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"}