four-flap-meme-sdk 1.5.55 → 1.5.56

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 (150) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +1 -1
  3. package/dist/sol/constants.d.ts +150 -0
  4. package/dist/sol/constants.js +188 -0
  5. package/dist/sol/dex/blockrazor/client.d.ts +51 -0
  6. package/dist/sol/dex/blockrazor/client.js +96 -0
  7. package/dist/sol/dex/blockrazor/constants.d.ts +34 -0
  8. package/dist/sol/dex/blockrazor/constants.js +55 -0
  9. package/dist/sol/dex/blockrazor/geyser.d.ts +128 -0
  10. package/dist/sol/dex/blockrazor/geyser.js +530 -0
  11. package/dist/sol/dex/blockrazor/index.d.ts +18 -0
  12. package/dist/sol/dex/blockrazor/index.js +23 -0
  13. package/dist/sol/dex/blockrazor/send.d.ts +135 -0
  14. package/dist/sol/dex/blockrazor/send.js +254 -0
  15. package/dist/sol/dex/blockrazor/types.d.ts +191 -0
  16. package/dist/sol/dex/blockrazor/types.js +5 -0
  17. package/dist/sol/dex/index.d.ts +10 -0
  18. package/dist/sol/dex/index.js +16 -0
  19. package/dist/sol/dex/jup/client.d.ts +33 -0
  20. package/dist/sol/dex/jup/client.js +110 -0
  21. package/dist/sol/dex/jup/index.d.ts +16 -0
  22. package/dist/sol/dex/jup/index.js +148 -0
  23. package/dist/sol/dex/jup/legacy.d.ts +623 -0
  24. package/dist/sol/dex/jup/legacy.js +416 -0
  25. package/dist/sol/dex/jup/lend.d.ts +640 -0
  26. package/dist/sol/dex/jup/lend.js +603 -0
  27. package/dist/sol/dex/jup/portfolio.d.ts +362 -0
  28. package/dist/sol/dex/jup/portfolio.js +367 -0
  29. package/dist/sol/dex/jup/price.d.ts +173 -0
  30. package/dist/sol/dex/jup/price.js +220 -0
  31. package/dist/sol/dex/jup/recurring.d.ts +437 -0
  32. package/dist/sol/dex/jup/recurring.js +320 -0
  33. package/dist/sol/dex/jup/send.d.ts +282 -0
  34. package/dist/sol/dex/jup/send.js +295 -0
  35. package/dist/sol/dex/jup/studio.d.ts +457 -0
  36. package/dist/sol/dex/jup/studio.js +488 -0
  37. package/dist/sol/dex/jup/tokens.d.ts +767 -0
  38. package/dist/sol/dex/jup/tokens.js +697 -0
  39. package/dist/sol/dex/jup/trigger.d.ts +511 -0
  40. package/dist/sol/dex/jup/trigger.js +397 -0
  41. package/dist/sol/dex/jup/types.d.ts +433 -0
  42. package/dist/sol/dex/jup/types.js +5 -0
  43. package/dist/sol/dex/jup/ultra.d.ts +646 -0
  44. package/dist/sol/dex/jup/ultra.js +853 -0
  45. package/dist/sol/dex/meteora/client.d.ts +76 -0
  46. package/dist/sol/dex/meteora/client.js +219 -0
  47. package/dist/sol/dex/meteora/damm-v1-bundle.d.ts +61 -0
  48. package/dist/sol/dex/meteora/damm-v1-bundle.js +112 -0
  49. package/dist/sol/dex/meteora/damm-v1.d.ts +118 -0
  50. package/dist/sol/dex/meteora/damm-v1.js +315 -0
  51. package/dist/sol/dex/meteora/damm-v2-bundle.d.ts +82 -0
  52. package/dist/sol/dex/meteora/damm-v2-bundle.js +242 -0
  53. package/dist/sol/dex/meteora/damm-v2.d.ts +172 -0
  54. package/dist/sol/dex/meteora/damm-v2.js +632 -0
  55. package/dist/sol/dex/meteora/dbc-bundle.d.ts +123 -0
  56. package/dist/sol/dex/meteora/dbc-bundle.js +304 -0
  57. package/dist/sol/dex/meteora/dbc.d.ts +192 -0
  58. package/dist/sol/dex/meteora/dbc.js +619 -0
  59. package/dist/sol/dex/meteora/dlmm-bundle.d.ts +39 -0
  60. package/dist/sol/dex/meteora/dlmm-bundle.js +189 -0
  61. package/dist/sol/dex/meteora/dlmm.d.ts +157 -0
  62. package/dist/sol/dex/meteora/dlmm.js +671 -0
  63. package/dist/sol/dex/meteora/index.d.ts +25 -0
  64. package/dist/sol/dex/meteora/index.js +65 -0
  65. package/dist/sol/dex/meteora/types.d.ts +787 -0
  66. package/dist/sol/dex/meteora/types.js +110 -0
  67. package/dist/sol/dex/orca/index.d.ts +10 -0
  68. package/dist/sol/dex/orca/index.js +16 -0
  69. package/dist/sol/dex/orca/orca-bundle.d.ts +41 -0
  70. package/dist/sol/dex/orca/orca-bundle.js +173 -0
  71. package/dist/sol/dex/orca/orca.d.ts +65 -0
  72. package/dist/sol/dex/orca/orca.js +474 -0
  73. package/dist/sol/dex/orca/types.d.ts +263 -0
  74. package/dist/sol/dex/orca/types.js +38 -0
  75. package/dist/sol/dex/orca/wavebreak-bundle.d.ts +34 -0
  76. package/dist/sol/dex/orca/wavebreak-bundle.js +198 -0
  77. package/dist/sol/dex/orca/wavebreak-types.d.ts +227 -0
  78. package/dist/sol/dex/orca/wavebreak-types.js +23 -0
  79. package/dist/sol/dex/orca/wavebreak.d.ts +78 -0
  80. package/dist/sol/dex/orca/wavebreak.js +497 -0
  81. package/dist/sol/dex/pump/index.d.ts +9 -0
  82. package/dist/sol/dex/pump/index.js +14 -0
  83. package/dist/sol/dex/pump/pump-bundle.d.ts +92 -0
  84. package/dist/sol/dex/pump/pump-bundle.js +383 -0
  85. package/dist/sol/dex/pump/pump-swap-bundle.d.ts +103 -0
  86. package/dist/sol/dex/pump/pump-swap-bundle.js +380 -0
  87. package/dist/sol/dex/pump/pump-swap.d.ts +46 -0
  88. package/dist/sol/dex/pump/pump-swap.js +199 -0
  89. package/dist/sol/dex/pump/pump.d.ts +35 -0
  90. package/dist/sol/dex/pump/pump.js +352 -0
  91. package/dist/sol/dex/pump/types.d.ts +215 -0
  92. package/dist/sol/dex/pump/types.js +5 -0
  93. package/dist/sol/dex/raydium/index.d.ts +8 -0
  94. package/dist/sol/dex/raydium/index.js +12 -0
  95. package/dist/sol/dex/raydium/launchlab.d.ts +68 -0
  96. package/dist/sol/dex/raydium/launchlab.js +210 -0
  97. package/dist/sol/dex/raydium/raydium-bundle.d.ts +64 -0
  98. package/dist/sol/dex/raydium/raydium-bundle.js +324 -0
  99. package/dist/sol/dex/raydium/raydium.d.ts +40 -0
  100. package/dist/sol/dex/raydium/raydium.js +366 -0
  101. package/dist/sol/dex/raydium/types.d.ts +240 -0
  102. package/dist/sol/dex/raydium/types.js +5 -0
  103. package/dist/sol/index.d.ts +11 -0
  104. package/dist/sol/index.js +18 -0
  105. package/dist/sol/jito/bundle.d.ts +90 -0
  106. package/dist/sol/jito/bundle.js +263 -0
  107. package/dist/sol/jito/index.d.ts +7 -0
  108. package/dist/sol/jito/index.js +7 -0
  109. package/dist/sol/jito/tip.d.ts +51 -0
  110. package/dist/sol/jito/tip.js +83 -0
  111. package/dist/sol/jito/types.d.ts +100 -0
  112. package/dist/sol/jito/types.js +5 -0
  113. package/dist/sol/nozomi/client.d.ts +63 -0
  114. package/dist/sol/nozomi/client.js +222 -0
  115. package/dist/sol/nozomi/index.d.ts +8 -0
  116. package/dist/sol/nozomi/index.js +8 -0
  117. package/dist/sol/nozomi/tip.d.ts +50 -0
  118. package/dist/sol/nozomi/tip.js +80 -0
  119. package/dist/sol/nozomi/types.d.ts +96 -0
  120. package/dist/sol/nozomi/types.js +5 -0
  121. package/dist/sol/token/create-complete.d.ts +115 -0
  122. package/dist/sol/token/create-complete.js +235 -0
  123. package/dist/sol/token/create-token.d.ts +57 -0
  124. package/dist/sol/token/create-token.js +230 -0
  125. package/dist/sol/token/index.d.ts +9 -0
  126. package/dist/sol/token/index.js +14 -0
  127. package/dist/sol/token/metadata-upload.d.ts +86 -0
  128. package/dist/sol/token/metadata-upload.js +173 -0
  129. package/dist/sol/token/metadata.d.ts +92 -0
  130. package/dist/sol/token/metadata.js +274 -0
  131. package/dist/sol/token/types.d.ts +153 -0
  132. package/dist/sol/token/types.js +5 -0
  133. package/dist/sol/types.d.ts +176 -0
  134. package/dist/sol/types.js +7 -0
  135. package/dist/sol/utils/balance.d.ts +160 -0
  136. package/dist/sol/utils/balance.js +638 -0
  137. package/dist/sol/utils/connection.d.ts +78 -0
  138. package/dist/sol/utils/connection.js +168 -0
  139. package/dist/sol/utils/index.d.ts +9 -0
  140. package/dist/sol/utils/index.js +9 -0
  141. package/dist/sol/utils/lp-inspect.d.ts +75 -0
  142. package/dist/sol/utils/lp-inspect.js +235 -0
  143. package/dist/sol/utils/transfer.d.ts +196 -0
  144. package/dist/sol/utils/transfer.js +307 -0
  145. package/dist/sol/utils/wallet.d.ts +107 -0
  146. package/dist/sol/utils/wallet.js +210 -0
  147. package/package.json +44 -5
  148. package/README.zh-CN.pdf +0 -0
  149. package/dist/flap/portal-bundle-merkle/encryption.d.ts +0 -16
  150. package/dist/flap/portal-bundle-merkle/encryption.js +0 -146
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Jupiter Price API V3
3
+ * @module sol/dex/jup/price
4
+ *
5
+ * Price API 提供代币价格查询
6
+ * 支持批量查询,返回 USD 价格和 24h 变化
7
+ */
8
+ import { jupGet } from './client.js';
9
+ // ============================================================================
10
+ // Price API - 价格查询
11
+ // ============================================================================
12
+ /**
13
+ * 获取代币价格 (V3)
14
+ *
15
+ * 批量查询代币的 USD 价格。
16
+ *
17
+ * @param ids 代币 Mint 地址数组
18
+ * @param config Jupiter 配置
19
+ * @returns 价格响应
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { Sol } from 'four-flap-meme-sdk'
24
+ *
25
+ * Sol.setJupiterConfig({ apiKey: 'your-api-key' })
26
+ *
27
+ * // 批量获取价格
28
+ * const prices = await Sol.getTokenPricesV3([
29
+ * 'So11111111111111111111111111111111111111112', // SOL
30
+ * 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
31
+ * 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', // USDT
32
+ * ])
33
+ *
34
+ * Object.entries(prices).forEach(([mint, info]) => {
35
+ * console.log(`${mint}:`)
36
+ * console.log(` 价格: $${info.usdPrice}`)
37
+ * console.log(` 24h变化: ${info.priceChange24h ?? 0}%`)
38
+ * })
39
+ * ```
40
+ */
41
+ export async function getTokenPricesV3(ids, config) {
42
+ if (ids.length === 0) {
43
+ return {};
44
+ }
45
+ return jupGet('/price/v3', { ids: ids.join(',') }, config);
46
+ }
47
+ /**
48
+ * 获取单个代币价格 (V3)
49
+ *
50
+ * @param mint 代币 Mint 地址
51
+ * @param config Jupiter 配置
52
+ * @returns 价格信息或 null
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const solPrice = await Sol.getSingleTokenPriceV3(
57
+ * 'So11111111111111111111111111111111111111112'
58
+ * )
59
+ *
60
+ * if (solPrice) {
61
+ * console.log(`SOL: $${solPrice.usdPrice}`)
62
+ * console.log(`24h: ${solPrice.priceChange24h}%`)
63
+ * }
64
+ * ```
65
+ */
66
+ export async function getSingleTokenPriceV3(mint, config) {
67
+ const prices = await getTokenPricesV3([mint], config);
68
+ return prices[mint] ?? null;
69
+ }
70
+ /**
71
+ * 获取 USD 价格 (V3)
72
+ *
73
+ * @param mint 代币 Mint 地址
74
+ * @param config Jupiter 配置
75
+ * @returns USD 价格或 null
76
+ */
77
+ export async function getUsdPrice(mint, config) {
78
+ const info = await getSingleTokenPriceV3(mint, config);
79
+ return info?.usdPrice ?? null;
80
+ }
81
+ /**
82
+ * 批量获取 USD 价格 (V3)
83
+ *
84
+ * @param mints 代币 Mint 地址数组
85
+ * @param config Jupiter 配置
86
+ * @returns Mint -> 价格 映射
87
+ */
88
+ export async function batchGetUsdPrices(mints, config) {
89
+ const prices = await getTokenPricesV3(mints, config);
90
+ const priceMap = new Map();
91
+ mints.forEach(mint => {
92
+ priceMap.set(mint, prices[mint]?.usdPrice ?? null);
93
+ });
94
+ return priceMap;
95
+ }
96
+ /**
97
+ * 获取 24h 价格变化 (V3)
98
+ *
99
+ * @param mint 代币 Mint 地址
100
+ * @param config Jupiter 配置
101
+ * @returns 24h 价格变化百分比或 null
102
+ */
103
+ export async function get24hPriceChange(mint, config) {
104
+ const info = await getSingleTokenPriceV3(mint, config);
105
+ return info?.priceChange24h ?? null;
106
+ }
107
+ /**
108
+ * 计算代币价值 (V3)
109
+ *
110
+ * @param mint 代币 Mint 地址
111
+ * @param amount 代币数量 (最小单位)
112
+ * @param config Jupiter 配置
113
+ * @returns USD 价值或 null
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * // 计算 1 SOL 的 USD 价值
118
+ * const value = await Sol.calculateTokenValue(
119
+ * 'So11111111111111111111111111111111111111112',
120
+ * 1_000_000_000, // 1 SOL = 10^9 lamports
121
+ * )
122
+ * console.log(`1 SOL = $${value}`)
123
+ * ```
124
+ */
125
+ export async function calculateTokenValue(mint, amount, config) {
126
+ const info = await getSingleTokenPriceV3(mint, config);
127
+ if (!info)
128
+ return null;
129
+ const amountNum = typeof amount === 'bigint' ? Number(amount) : amount;
130
+ const adjustedAmount = amountNum / Math.pow(10, info.decimals);
131
+ return adjustedAmount * info.usdPrice;
132
+ }
133
+ /**
134
+ * 批量计算代币价值 (V3)
135
+ *
136
+ * @param holdings 持仓数组 [{mint, amount}]
137
+ * @param config Jupiter 配置
138
+ * @returns 总 USD 价值和明细
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const result = await Sol.calculatePortfolioValue([
143
+ * { mint: 'So11111111111111111111111111111111111111112', amount: 1_000_000_000 },
144
+ * { mint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', amount: 100_000_000 },
145
+ * ])
146
+ *
147
+ * console.log(`总价值: $${result.totalValue}`)
148
+ * result.details.forEach(d => {
149
+ * console.log(` ${d.mint}: $${d.value}`)
150
+ * })
151
+ * ```
152
+ */
153
+ export async function calculatePortfolioValue(holdings, config) {
154
+ if (holdings.length === 0) {
155
+ return { totalValue: 0, details: [] };
156
+ }
157
+ const mints = holdings.map(h => h.mint);
158
+ const prices = await getTokenPricesV3(mints, config);
159
+ let totalValue = 0;
160
+ const details = holdings.map(holding => {
161
+ const amountNum = typeof holding.amount === 'bigint'
162
+ ? Number(holding.amount)
163
+ : holding.amount;
164
+ const info = prices[holding.mint];
165
+ if (!info) {
166
+ return {
167
+ mint: holding.mint,
168
+ amount: amountNum,
169
+ price: null,
170
+ value: null,
171
+ };
172
+ }
173
+ const adjustedAmount = amountNum / Math.pow(10, info.decimals);
174
+ const value = adjustedAmount * info.usdPrice;
175
+ totalValue += value;
176
+ return {
177
+ mint: holding.mint,
178
+ amount: adjustedAmount,
179
+ price: info.usdPrice,
180
+ value,
181
+ };
182
+ });
183
+ return { totalValue, details };
184
+ }
185
+ // ============================================================================
186
+ // 常用代币地址
187
+ // ============================================================================
188
+ /** 常用代币 Mint 地址 */
189
+ export const COMMON_TOKENS = {
190
+ /** SOL (Wrapped) */
191
+ SOL: 'So11111111111111111111111111111111111111112',
192
+ /** USDC */
193
+ USDC: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
194
+ /** USDT */
195
+ USDT: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
196
+ /** JUP */
197
+ JUP: 'JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN',
198
+ /** BONK */
199
+ BONK: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263',
200
+ /** RAY */
201
+ RAY: '4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R',
202
+ };
203
+ /**
204
+ * 获取 SOL 价格 (V3)
205
+ */
206
+ export async function getSolPrice(config) {
207
+ return getUsdPrice(COMMON_TOKENS.SOL, config);
208
+ }
209
+ /**
210
+ * 获取 USDC 价格 (V3)
211
+ */
212
+ export async function getUsdcPrice(config) {
213
+ return getUsdPrice(COMMON_TOKENS.USDC, config);
214
+ }
215
+ /**
216
+ * 获取常用代币价格 (V3)
217
+ */
218
+ export async function getCommonTokenPrices(config) {
219
+ return getTokenPricesV3(Object.values(COMMON_TOKENS), config);
220
+ }
@@ -0,0 +1,437 @@
1
+ /**
2
+ * Jupiter Recurring API (定投/定期订单)
3
+ * @module sol/dex/jup/recurring
4
+ *
5
+ * Recurring API 提供定投/DCA (Dollar Cost Averaging) 功能
6
+ * 用户可以创建定期自动执行的订单
7
+ */
8
+ import type { JupiterConfig } from './types.js';
9
+ /** 时间模式参数 */
10
+ export interface RecurringTimeParams {
11
+ /** 每次投入数量 (最小单位) */
12
+ inAmount: number;
13
+ /** 间隔时间 (秒) */
14
+ interval: number;
15
+ /** 订单次数 */
16
+ numberOfOrders: number;
17
+ /** 最高价格限制 (可选) */
18
+ maxPrice?: number | null;
19
+ /** 最低价格限制 (可选) */
20
+ minPrice?: number | null;
21
+ /** 开始时间 (Unix 时间戳,可选) */
22
+ startAt?: number | null;
23
+ }
24
+ /** 价格模式参数 */
25
+ export interface RecurringPriceParams {
26
+ /** 每次投入数量 (最小单位) */
27
+ inAmount: number;
28
+ /** 目标价格 */
29
+ targetPrice: number;
30
+ /** 订单次数 */
31
+ numberOfOrders: number;
32
+ /** 开始时间 (Unix 时间戳,可选) */
33
+ startAt?: number | null;
34
+ }
35
+ /** 订单参数 (时间模式) */
36
+ export interface RecurringParamsTime {
37
+ time: RecurringTimeParams;
38
+ }
39
+ /** 订单参数 (价格模式) */
40
+ export interface RecurringParamsPrice {
41
+ price: RecurringPriceParams;
42
+ }
43
+ /** 订单参数 */
44
+ export type RecurringParams = RecurringParamsTime | RecurringParamsPrice;
45
+ /** 创建订单请求参数 */
46
+ export interface RecurringCreateOrderParams {
47
+ /** 用户地址 */
48
+ user: string;
49
+ /** 输入代币 Mint */
50
+ inputMint: string;
51
+ /** 输出代币 Mint */
52
+ outputMint: string;
53
+ /** 订单参数 */
54
+ params: RecurringParams;
55
+ }
56
+ /** 创建订单响应 */
57
+ export interface RecurringCreateOrderResponse {
58
+ /** 请求 ID (用于 /execute) */
59
+ requestId: string;
60
+ /** Base64 编码的未签名交易 */
61
+ transaction: string;
62
+ }
63
+ /** 定投类型 */
64
+ export type RecurringType = 'time' | 'price' | 'all';
65
+ /** 取消订单请求参数 */
66
+ export interface RecurringCancelOrderParams {
67
+ /** 用户地址 */
68
+ user: string;
69
+ /** 订单账户地址 */
70
+ order: string;
71
+ /** 定投类型 */
72
+ recurringType: RecurringType;
73
+ }
74
+ /** 取消订单响应 */
75
+ export interface RecurringCancelOrderResponse {
76
+ /** 请求 ID */
77
+ requestId: string;
78
+ /** Base64 编码的未签名交易 */
79
+ transaction: string;
80
+ }
81
+ /** 执行交易请求参数 */
82
+ export interface RecurringExecuteParams {
83
+ /** 请求 ID */
84
+ requestId: string;
85
+ /** 已签名的交易 (Base64) */
86
+ signedTransaction: string;
87
+ }
88
+ /** 执行状态 */
89
+ export type RecurringExecuteStatus = 'Success' | 'Failed';
90
+ /** 执行交易响应 */
91
+ export interface RecurringExecuteResponse {
92
+ /** 交易签名 */
93
+ signature: string;
94
+ /** 执行状态 */
95
+ status: RecurringExecuteStatus;
96
+ /** 错误信息 (失败时) */
97
+ error?: string;
98
+ /** 订单账户地址 */
99
+ order?: string;
100
+ }
101
+ /** 订单列表状态 */
102
+ export type RecurringOrderListStatus = 'active' | 'history';
103
+ /** 交易记录 */
104
+ export interface RecurringTrade {
105
+ /** 订单账户地址 */
106
+ orderKey: string;
107
+ /** Keeper 地址 */
108
+ keeper: string;
109
+ /** 输入代币 Mint */
110
+ inputMint: string;
111
+ /** 输出代币 Mint */
112
+ outputMint: string;
113
+ /** 输入数量 (UI) */
114
+ inputAmount: string;
115
+ /** 输出数量 (UI) */
116
+ outputAmount: string;
117
+ /** 原始输入数量 */
118
+ rawInputAmount: string;
119
+ /** 原始输出数量 */
120
+ rawOutputAmount: string;
121
+ /** 手续费代币 Mint */
122
+ feeMint: string;
123
+ /** 手续费数量 (UI) */
124
+ feeAmount: string;
125
+ /** 原始手续费数量 */
126
+ rawFeeAmount: string;
127
+ /** 交易签名 */
128
+ txId: string;
129
+ /** 确认时间 */
130
+ confirmedAt: string;
131
+ /** 操作类型 */
132
+ action: string;
133
+ /** 产品元数据 */
134
+ productMeta?: unknown;
135
+ }
136
+ /** 时间模式订单详情 */
137
+ export interface RecurringTimeOrder {
138
+ /** 订单账户地址 */
139
+ orderKey: string;
140
+ /** 用户地址 */
141
+ userPubkey: string;
142
+ /** 输入代币 Mint */
143
+ inputMint: string;
144
+ /** 输出代币 Mint */
145
+ outputMint: string;
146
+ /** 周期频率 */
147
+ cycleFrequency: string;
148
+ /** 每周期投入数量 (UI) */
149
+ inAmountPerCycle: string;
150
+ /** 原始每周期投入数量 */
151
+ rawInAmountPerCycle: string;
152
+ /** 已存入数量 (UI) */
153
+ inDeposited: string;
154
+ /** 原始已存入数量 */
155
+ rawInDeposited: string;
156
+ /** 已使用数量 (UI) */
157
+ inUsed: string;
158
+ /** 原始已使用数量 */
159
+ rawInUsed: string;
160
+ /** 已提取输入数量 (UI) */
161
+ inWithdrawn: string;
162
+ /** 原始已提取输入数量 */
163
+ rawInWithdrawn: string;
164
+ /** 已收到输出数量 (UI) */
165
+ outReceived: string;
166
+ /** 原始已收到输出数量 */
167
+ rawOutReceived: string;
168
+ /** 已提取输出数量 (UI) */
169
+ outWithdrawn: string;
170
+ /** 原始已提取输出数量 */
171
+ rawOutWithdrawn: string;
172
+ /** 最大输出数量 (UI) */
173
+ maxOutAmount: string;
174
+ /** 原始最大输出数量 */
175
+ rawMaxOutAmount: string;
176
+ /** 最小输出数量 (UI) */
177
+ minOutAmount: string;
178
+ /** 原始最小输出数量 */
179
+ rawMinOutAmount: string;
180
+ /** 开单交易签名 */
181
+ openTx: string;
182
+ /** 关单交易签名 */
183
+ closeTx: string;
184
+ /** 用户是否已关闭 */
185
+ userClosed: boolean;
186
+ /** 创建时间 */
187
+ createdAt: string;
188
+ /** 更新时间 */
189
+ updatedAt: string;
190
+ /** 交易记录 */
191
+ trades: RecurringTrade[];
192
+ }
193
+ /** 获取订单请求参数 */
194
+ export interface RecurringGetOrdersParams {
195
+ /** 用户地址 */
196
+ user: string;
197
+ /** 定投类型 */
198
+ recurringType: RecurringType;
199
+ /** 订单状态 */
200
+ orderStatus: RecurringOrderListStatus;
201
+ /** 页码 (默认: 1) */
202
+ page?: number;
203
+ /** 代币 Mint 筛选 */
204
+ mint?: string;
205
+ /** 是否包含失败交易 */
206
+ includeFailedTx?: boolean;
207
+ }
208
+ /** 获取订单响应 */
209
+ export interface RecurringGetOrdersResponse {
210
+ /** 用户地址 */
211
+ user: string;
212
+ /** 订单状态 */
213
+ orderStatus: RecurringOrderListStatus;
214
+ /** 当前页 */
215
+ page: number;
216
+ /** 总页数 */
217
+ totalPages: number;
218
+ /** 时间模式订单列表 */
219
+ time?: RecurringTimeOrder[];
220
+ }
221
+ /**
222
+ * 创建定投订单(时间模式)
223
+ *
224
+ * 按固定时间间隔自动执行的定投订单。
225
+ *
226
+ * @param params 创建订单参数
227
+ * @param config Jupiter 配置
228
+ * @returns 创建订单响应
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * import { Sol } from 'four-flap-meme-sdk'
233
+ *
234
+ * Sol.setJupiterConfig({ apiKey: 'your-api-key' })
235
+ *
236
+ * // 创建定投:每天用 1 SOL 买入 USDC,共10天
237
+ * const result = await Sol.createRecurringOrder({
238
+ * user: wallet.publicKey.toBase58(),
239
+ * inputMint: 'So11111111111111111111111111111111111111112', // SOL
240
+ * outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
241
+ * params: {
242
+ * time: {
243
+ * inAmount: 1_000_000_000, // 1 SOL
244
+ * numberOfOrders: 10, // 10次
245
+ * interval: 86400, // 每天 (86400秒)
246
+ * }
247
+ * }
248
+ * })
249
+ *
250
+ * // 签名并执行
251
+ * const tx = VersionedTransaction.deserialize(
252
+ * Buffer.from(result.transaction, 'base64')
253
+ * )
254
+ * tx.sign([wallet])
255
+ *
256
+ * await Sol.executeRecurringOrder({
257
+ * requestId: result.requestId,
258
+ * signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
259
+ * })
260
+ * ```
261
+ */
262
+ export declare function createRecurringOrder(params: RecurringCreateOrderParams, config?: JupiterConfig): Promise<RecurringCreateOrderResponse>;
263
+ /**
264
+ * 创建简单定投订单(时间模式)
265
+ *
266
+ * @param user 用户地址
267
+ * @param inputMint 输入代币 Mint
268
+ * @param outputMint 输出代币 Mint
269
+ * @param inAmount 每次投入数量 (最小单位)
270
+ * @param numberOfOrders 订单次数
271
+ * @param intervalSeconds 间隔时间 (秒)
272
+ * @param options 可选参数
273
+ * @param config Jupiter 配置
274
+ * @returns 创建订单响应
275
+ *
276
+ * @example
277
+ * ```typescript
278
+ * // 每天定投 1 SOL 买 USDC,共30天
279
+ * const result = await Sol.createSimpleRecurringOrder(
280
+ * wallet.publicKey.toBase58(),
281
+ * 'So11111111111111111111111111111111111111112', // SOL
282
+ * 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
283
+ * 1_000_000_000, // 1 SOL
284
+ * 30, // 30次
285
+ * 86400, // 每天
286
+ * )
287
+ * ```
288
+ */
289
+ export declare function createSimpleRecurringOrder(user: string, inputMint: string, outputMint: string, inAmount: number, numberOfOrders: number, intervalSeconds: number, options?: {
290
+ maxPrice?: number;
291
+ minPrice?: number;
292
+ startAt?: number;
293
+ }, config?: JupiterConfig): Promise<RecurringCreateOrderResponse>;
294
+ /** 预设时间间隔 (秒) */
295
+ export declare const RECURRING_INTERVALS: {
296
+ /** 每分钟 */
297
+ readonly MINUTE: 60;
298
+ /** 每小时 */
299
+ readonly HOUR: 3600;
300
+ /** 每天 */
301
+ readonly DAY: 86400;
302
+ /** 每周 */
303
+ readonly WEEK: 604800;
304
+ /** 每月 (30天) */
305
+ readonly MONTH: 2592000;
306
+ };
307
+ /**
308
+ * 创建每日定投
309
+ */
310
+ export declare function createDailyRecurring(user: string, inputMint: string, outputMint: string, inAmount: number, days: number, config?: JupiterConfig): Promise<RecurringCreateOrderResponse>;
311
+ /**
312
+ * 创建每周定投
313
+ */
314
+ export declare function createWeeklyRecurring(user: string, inputMint: string, outputMint: string, inAmount: number, weeks: number, config?: JupiterConfig): Promise<RecurringCreateOrderResponse>;
315
+ /**
316
+ * 取消定投订单
317
+ *
318
+ * @param params 取消参数
319
+ * @param config Jupiter 配置
320
+ * @returns 取消订单响应
321
+ *
322
+ * @example
323
+ * ```typescript
324
+ * const result = await Sol.cancelRecurringOrder({
325
+ * user: wallet.publicKey.toBase58(),
326
+ * order: 'orderAccountAddress',
327
+ * recurringType: 'time',
328
+ * })
329
+ *
330
+ * // 签名并执行
331
+ * const tx = VersionedTransaction.deserialize(
332
+ * Buffer.from(result.transaction, 'base64')
333
+ * )
334
+ * tx.sign([wallet])
335
+ *
336
+ * await Sol.executeRecurringOrder({
337
+ * requestId: result.requestId,
338
+ * signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
339
+ * })
340
+ * ```
341
+ */
342
+ export declare function cancelRecurringOrder(params: RecurringCancelOrderParams, config?: JupiterConfig): Promise<RecurringCancelOrderResponse>;
343
+ /**
344
+ * 快捷取消时间模式定投订单
345
+ *
346
+ * @param user 用户地址
347
+ * @param order 订单账户地址
348
+ * @param config Jupiter 配置
349
+ * @returns 取消订单响应
350
+ */
351
+ export declare function cancelTimeRecurringOrder(user: string, order: string, config?: JupiterConfig): Promise<RecurringCancelOrderResponse>;
352
+ /**
353
+ * 执行已签名的定投订单交易
354
+ *
355
+ * @param params 执行参数
356
+ * @param config Jupiter 配置
357
+ * @returns 执行结果
358
+ */
359
+ export declare function executeRecurringOrder(params: RecurringExecuteParams, config?: JupiterConfig): Promise<RecurringExecuteResponse>;
360
+ /**
361
+ * 获取用户的定投订单
362
+ *
363
+ * @param params 查询参数
364
+ * @param config Jupiter 配置
365
+ * @returns 订单列表响应(含分页)
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * const response = await Sol.getRecurringOrders({
370
+ * user: wallet.publicKey.toBase58(),
371
+ * recurringType: 'time',
372
+ * orderStatus: 'active',
373
+ * page: 1,
374
+ * })
375
+ *
376
+ * console.log(`共 ${response.totalPages} 页`)
377
+ * response.time?.forEach(order => {
378
+ * console.log(`订单: ${order.orderKey}`)
379
+ * console.log(` 每周期: ${order.inAmountPerCycle}`)
380
+ * console.log(` 已用: ${order.inUsed}`)
381
+ * console.log(` 已收: ${order.outReceived}`)
382
+ * console.log(` 交易数: ${order.trades.length}`)
383
+ * })
384
+ * ```
385
+ */
386
+ export declare function getRecurringOrders(params: RecurringGetOrdersParams, config?: JupiterConfig): Promise<RecurringGetOrdersResponse>;
387
+ /**
388
+ * 获取用户的活跃时间模式定投订单
389
+ *
390
+ * @param user 用户地址
391
+ * @param page 页码
392
+ * @param config Jupiter 配置
393
+ * @returns 订单列表响应
394
+ */
395
+ export declare function getActiveTimeRecurringOrders(user: string, page?: number, config?: JupiterConfig): Promise<RecurringGetOrdersResponse>;
396
+ /**
397
+ * 获取用户的历史时间模式定投订单
398
+ *
399
+ * @param user 用户地址
400
+ * @param page 页码
401
+ * @param config Jupiter 配置
402
+ * @returns 订单列表响应
403
+ */
404
+ export declare function getHistoryTimeRecurringOrders(user: string, page?: number, config?: JupiterConfig): Promise<RecurringGetOrdersResponse>;
405
+ /**
406
+ * 获取所有活跃时间模式定投订单(自动分页)
407
+ *
408
+ * @param user 用户地址
409
+ * @param config Jupiter 配置
410
+ * @returns 所有活跃订单
411
+ */
412
+ export declare function getAllActiveTimeRecurringOrders(user: string, config?: JupiterConfig): Promise<RecurringTimeOrder[]>;
413
+ /**
414
+ * 计算定投总投入
415
+ *
416
+ * @param inAmount 每次投入数量
417
+ * @param numberOfOrders 订单次数
418
+ * @returns 总投入数量
419
+ */
420
+ export declare function calculateTotalInvestment(inAmount: number, numberOfOrders: number): number;
421
+ /**
422
+ * 计算定投周期
423
+ *
424
+ * @param intervalSeconds 间隔时间 (秒)
425
+ * @param numberOfOrders 订单次数
426
+ * @returns 总持续时间 (秒)
427
+ */
428
+ export declare function calculateTotalDuration(intervalSeconds: number, numberOfOrders: number): number;
429
+ /**
430
+ * 估算定投结束时间
431
+ *
432
+ * @param intervalSeconds 间隔时间 (秒)
433
+ * @param numberOfOrders 订单次数
434
+ * @param startAt 开始时间 (Unix 时间戳,默认为当前时间)
435
+ * @returns 结束时间 (Date)
436
+ */
437
+ export declare function estimateEndDate(intervalSeconds: number, numberOfOrders: number, startAt?: number): Date;