four-flap-meme-sdk 1.5.10 → 1.5.12

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 (156) hide show
  1. package/README.zh-CN.pdf +0 -0
  2. package/dist/contracts/tm-bundle-merkle/submit.js +58 -0
  3. package/dist/flap/portal-bundle-merkle/encryption.d.ts +16 -0
  4. package/dist/flap/portal-bundle-merkle/encryption.js +146 -0
  5. package/dist/flap/portal-bundle-merkle/private.js +8 -4
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.js +1 -1
  8. package/dist/utils/constants.d.ts +1 -0
  9. package/dist/utils/constants.js +4 -2
  10. package/dist/xlayer/constants.d.ts +2 -0
  11. package/dist/xlayer/constants.js +2 -0
  12. package/package.json +5 -44
  13. package/dist/sol/constants.d.ts +0 -150
  14. package/dist/sol/constants.js +0 -188
  15. package/dist/sol/dex/blockrazor/client.d.ts +0 -51
  16. package/dist/sol/dex/blockrazor/client.js +0 -96
  17. package/dist/sol/dex/blockrazor/constants.d.ts +0 -34
  18. package/dist/sol/dex/blockrazor/constants.js +0 -55
  19. package/dist/sol/dex/blockrazor/geyser.d.ts +0 -128
  20. package/dist/sol/dex/blockrazor/geyser.js +0 -530
  21. package/dist/sol/dex/blockrazor/index.d.ts +0 -18
  22. package/dist/sol/dex/blockrazor/index.js +0 -23
  23. package/dist/sol/dex/blockrazor/send.d.ts +0 -135
  24. package/dist/sol/dex/blockrazor/send.js +0 -254
  25. package/dist/sol/dex/blockrazor/types.d.ts +0 -191
  26. package/dist/sol/dex/blockrazor/types.js +0 -5
  27. package/dist/sol/dex/index.d.ts +0 -10
  28. package/dist/sol/dex/index.js +0 -16
  29. package/dist/sol/dex/jup/client.d.ts +0 -33
  30. package/dist/sol/dex/jup/client.js +0 -110
  31. package/dist/sol/dex/jup/index.d.ts +0 -16
  32. package/dist/sol/dex/jup/index.js +0 -148
  33. package/dist/sol/dex/jup/legacy.d.ts +0 -623
  34. package/dist/sol/dex/jup/legacy.js +0 -416
  35. package/dist/sol/dex/jup/lend.d.ts +0 -640
  36. package/dist/sol/dex/jup/lend.js +0 -603
  37. package/dist/sol/dex/jup/portfolio.d.ts +0 -362
  38. package/dist/sol/dex/jup/portfolio.js +0 -367
  39. package/dist/sol/dex/jup/price.d.ts +0 -173
  40. package/dist/sol/dex/jup/price.js +0 -220
  41. package/dist/sol/dex/jup/recurring.d.ts +0 -437
  42. package/dist/sol/dex/jup/recurring.js +0 -320
  43. package/dist/sol/dex/jup/send.d.ts +0 -282
  44. package/dist/sol/dex/jup/send.js +0 -295
  45. package/dist/sol/dex/jup/studio.d.ts +0 -457
  46. package/dist/sol/dex/jup/studio.js +0 -488
  47. package/dist/sol/dex/jup/tokens.d.ts +0 -767
  48. package/dist/sol/dex/jup/tokens.js +0 -697
  49. package/dist/sol/dex/jup/trigger.d.ts +0 -511
  50. package/dist/sol/dex/jup/trigger.js +0 -397
  51. package/dist/sol/dex/jup/types.d.ts +0 -433
  52. package/dist/sol/dex/jup/types.js +0 -5
  53. package/dist/sol/dex/jup/ultra.d.ts +0 -646
  54. package/dist/sol/dex/jup/ultra.js +0 -853
  55. package/dist/sol/dex/meteora/client.d.ts +0 -76
  56. package/dist/sol/dex/meteora/client.js +0 -219
  57. package/dist/sol/dex/meteora/damm-v1-bundle.d.ts +0 -61
  58. package/dist/sol/dex/meteora/damm-v1-bundle.js +0 -112
  59. package/dist/sol/dex/meteora/damm-v1.d.ts +0 -118
  60. package/dist/sol/dex/meteora/damm-v1.js +0 -315
  61. package/dist/sol/dex/meteora/damm-v2-bundle.d.ts +0 -82
  62. package/dist/sol/dex/meteora/damm-v2-bundle.js +0 -242
  63. package/dist/sol/dex/meteora/damm-v2.d.ts +0 -172
  64. package/dist/sol/dex/meteora/damm-v2.js +0 -632
  65. package/dist/sol/dex/meteora/dbc-bundle.d.ts +0 -123
  66. package/dist/sol/dex/meteora/dbc-bundle.js +0 -304
  67. package/dist/sol/dex/meteora/dbc.d.ts +0 -192
  68. package/dist/sol/dex/meteora/dbc.js +0 -619
  69. package/dist/sol/dex/meteora/dlmm-bundle.d.ts +0 -39
  70. package/dist/sol/dex/meteora/dlmm-bundle.js +0 -189
  71. package/dist/sol/dex/meteora/dlmm.d.ts +0 -157
  72. package/dist/sol/dex/meteora/dlmm.js +0 -671
  73. package/dist/sol/dex/meteora/index.d.ts +0 -25
  74. package/dist/sol/dex/meteora/index.js +0 -65
  75. package/dist/sol/dex/meteora/types.d.ts +0 -787
  76. package/dist/sol/dex/meteora/types.js +0 -110
  77. package/dist/sol/dex/orca/index.d.ts +0 -10
  78. package/dist/sol/dex/orca/index.js +0 -16
  79. package/dist/sol/dex/orca/orca-bundle.d.ts +0 -41
  80. package/dist/sol/dex/orca/orca-bundle.js +0 -173
  81. package/dist/sol/dex/orca/orca.d.ts +0 -65
  82. package/dist/sol/dex/orca/orca.js +0 -474
  83. package/dist/sol/dex/orca/types.d.ts +0 -263
  84. package/dist/sol/dex/orca/types.js +0 -38
  85. package/dist/sol/dex/orca/wavebreak-bundle.d.ts +0 -34
  86. package/dist/sol/dex/orca/wavebreak-bundle.js +0 -198
  87. package/dist/sol/dex/orca/wavebreak-types.d.ts +0 -227
  88. package/dist/sol/dex/orca/wavebreak-types.js +0 -23
  89. package/dist/sol/dex/orca/wavebreak.d.ts +0 -78
  90. package/dist/sol/dex/orca/wavebreak.js +0 -497
  91. package/dist/sol/dex/pump/index.d.ts +0 -9
  92. package/dist/sol/dex/pump/index.js +0 -14
  93. package/dist/sol/dex/pump/pump-bundle.d.ts +0 -92
  94. package/dist/sol/dex/pump/pump-bundle.js +0 -383
  95. package/dist/sol/dex/pump/pump-swap-bundle.d.ts +0 -103
  96. package/dist/sol/dex/pump/pump-swap-bundle.js +0 -380
  97. package/dist/sol/dex/pump/pump-swap.d.ts +0 -46
  98. package/dist/sol/dex/pump/pump-swap.js +0 -199
  99. package/dist/sol/dex/pump/pump.d.ts +0 -35
  100. package/dist/sol/dex/pump/pump.js +0 -352
  101. package/dist/sol/dex/pump/types.d.ts +0 -215
  102. package/dist/sol/dex/pump/types.js +0 -5
  103. package/dist/sol/dex/raydium/index.d.ts +0 -8
  104. package/dist/sol/dex/raydium/index.js +0 -12
  105. package/dist/sol/dex/raydium/launchlab.d.ts +0 -68
  106. package/dist/sol/dex/raydium/launchlab.js +0 -210
  107. package/dist/sol/dex/raydium/raydium-bundle.d.ts +0 -64
  108. package/dist/sol/dex/raydium/raydium-bundle.js +0 -324
  109. package/dist/sol/dex/raydium/raydium.d.ts +0 -40
  110. package/dist/sol/dex/raydium/raydium.js +0 -366
  111. package/dist/sol/dex/raydium/types.d.ts +0 -240
  112. package/dist/sol/dex/raydium/types.js +0 -5
  113. package/dist/sol/index.d.ts +0 -11
  114. package/dist/sol/index.js +0 -18
  115. package/dist/sol/jito/bundle.d.ts +0 -90
  116. package/dist/sol/jito/bundle.js +0 -263
  117. package/dist/sol/jito/index.d.ts +0 -7
  118. package/dist/sol/jito/index.js +0 -7
  119. package/dist/sol/jito/tip.d.ts +0 -51
  120. package/dist/sol/jito/tip.js +0 -83
  121. package/dist/sol/jito/types.d.ts +0 -100
  122. package/dist/sol/jito/types.js +0 -5
  123. package/dist/sol/nozomi/client.d.ts +0 -63
  124. package/dist/sol/nozomi/client.js +0 -222
  125. package/dist/sol/nozomi/index.d.ts +0 -8
  126. package/dist/sol/nozomi/index.js +0 -8
  127. package/dist/sol/nozomi/tip.d.ts +0 -50
  128. package/dist/sol/nozomi/tip.js +0 -80
  129. package/dist/sol/nozomi/types.d.ts +0 -96
  130. package/dist/sol/nozomi/types.js +0 -5
  131. package/dist/sol/token/create-complete.d.ts +0 -115
  132. package/dist/sol/token/create-complete.js +0 -235
  133. package/dist/sol/token/create-token.d.ts +0 -57
  134. package/dist/sol/token/create-token.js +0 -230
  135. package/dist/sol/token/index.d.ts +0 -9
  136. package/dist/sol/token/index.js +0 -14
  137. package/dist/sol/token/metadata-upload.d.ts +0 -86
  138. package/dist/sol/token/metadata-upload.js +0 -173
  139. package/dist/sol/token/metadata.d.ts +0 -92
  140. package/dist/sol/token/metadata.js +0 -274
  141. package/dist/sol/token/types.d.ts +0 -153
  142. package/dist/sol/token/types.js +0 -5
  143. package/dist/sol/types.d.ts +0 -176
  144. package/dist/sol/types.js +0 -7
  145. package/dist/sol/utils/balance.d.ts +0 -160
  146. package/dist/sol/utils/balance.js +0 -638
  147. package/dist/sol/utils/connection.d.ts +0 -78
  148. package/dist/sol/utils/connection.js +0 -168
  149. package/dist/sol/utils/index.d.ts +0 -9
  150. package/dist/sol/utils/index.js +0 -9
  151. package/dist/sol/utils/lp-inspect.d.ts +0 -129
  152. package/dist/sol/utils/lp-inspect.js +0 -900
  153. package/dist/sol/utils/transfer.d.ts +0 -196
  154. package/dist/sol/utils/transfer.js +0 -307
  155. package/dist/sol/utils/wallet.d.ts +0 -107
  156. package/dist/sol/utils/wallet.js +0 -210
@@ -1,397 +0,0 @@
1
- /**
2
- * Jupiter Trigger API (限价单/触发订单)
3
- * @module sol/dex/jup/trigger
4
- *
5
- * Trigger API 提供限价单功能
6
- * 用户可以创建、取消和查询触发订单
7
- */
8
- import { jupGet, jupPost } from './client.js';
9
- // ============================================================================
10
- // Create Order - 创建订单
11
- // ============================================================================
12
- /**
13
- * 创建触发订单(限价单)
14
- *
15
- * 创建一个在指定价格执行的订单。
16
- *
17
- * @param params 创建订单参数
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
- * // 创建限价单:用 100 USDC 换取至少 0.5 SOL
28
- * const result = await Sol.createTriggerOrder({
29
- * inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
30
- * outputMint: 'So11111111111111111111111111111111111111112', // SOL
31
- * maker: wallet.publicKey.toBase58(),
32
- * payer: wallet.publicKey.toBase58(),
33
- * params: {
34
- * makingAmount: '100000000', // 100 USDC (6 decimals)
35
- * takingAmount: '500000000', // 0.5 SOL (9 decimals)
36
- * slippageBps: 0,
37
- * },
38
- * computeUnitPrice: 'auto',
39
- * wrapAndUnwrapSol: true,
40
- * })
41
- *
42
- * console.log('订单账户:', result.order)
43
- * console.log('请求 ID:', result.requestId)
44
- *
45
- * // 签名并发送交易
46
- * const tx = VersionedTransaction.deserialize(
47
- * Buffer.from(result.transaction, 'base64')
48
- * )
49
- * tx.sign([wallet])
50
- * const signature = await connection.sendTransaction(tx)
51
- * ```
52
- */
53
- export async function createTriggerOrder(params, config) {
54
- return jupPost('/trigger/v1/createOrder', params, config);
55
- }
56
- /**
57
- * 创建简单限价单
58
- *
59
- * @param inputMint 输入代币 Mint
60
- * @param outputMint 输出代币 Mint
61
- * @param maker Maker 地址
62
- * @param makingAmount 输入数量
63
- * @param takingAmount 期望输出数量
64
- * @param options 可选参数
65
- * @param config Jupiter 配置
66
- * @returns 创建订单响应
67
- *
68
- * @example
69
- * ```typescript
70
- * const result = await Sol.createSimpleTriggerOrder(
71
- * 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
72
- * 'So11111111111111111111111111111111111111112', // SOL
73
- * wallet.publicKey.toBase58(),
74
- * '100000000', // 100 USDC
75
- * '500000000', // 0.5 SOL
76
- * )
77
- * ```
78
- */
79
- export async function createSimpleTriggerOrder(inputMint, outputMint, maker, makingAmount, takingAmount, options, config) {
80
- return createTriggerOrder({
81
- inputMint,
82
- outputMint,
83
- maker,
84
- payer: maker,
85
- params: {
86
- makingAmount,
87
- takingAmount,
88
- slippageBps: options?.slippageBps ?? 0,
89
- expiredAt: options?.expiredAt,
90
- },
91
- computeUnitPrice: options?.computeUnitPrice ?? 'auto',
92
- wrapAndUnwrapSol: options?.wrapAndUnwrapSol ?? true,
93
- }, config);
94
- }
95
- // ============================================================================
96
- // Cancel Order - 取消订单
97
- // ============================================================================
98
- /**
99
- * 取消单个触发订单
100
- *
101
- * @param params 取消订单参数
102
- * @param config Jupiter 配置
103
- * @returns 取消订单响应
104
- *
105
- * @example
106
- * ```typescript
107
- * const result = await Sol.cancelTriggerOrder({
108
- * maker: wallet.publicKey.toBase58(),
109
- * order: 'orderAccountAddress',
110
- * })
111
- *
112
- * // 签名并发送
113
- * const tx = VersionedTransaction.deserialize(
114
- * Buffer.from(result.transaction, 'base64')
115
- * )
116
- * tx.sign([wallet])
117
- *
118
- * // 执行
119
- * await Sol.executeTriggerOrder({
120
- * requestId: result.requestId,
121
- * signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
122
- * })
123
- * ```
124
- */
125
- export async function cancelTriggerOrder(params, config) {
126
- return jupPost('/trigger/v1/cancelOrder', params, config);
127
- }
128
- /**
129
- * 批量取消触发订单
130
- *
131
- * @param params 批量取消参数
132
- * @param config Jupiter 配置
133
- * @returns 批量取消响应(包含多个交易)
134
- *
135
- * @example
136
- * ```typescript
137
- * const result = await Sol.cancelTriggerOrders({
138
- * maker: wallet.publicKey.toBase58(),
139
- * orders: ['order1', 'order2'],
140
- * })
141
- *
142
- * // 需要签名并执行每个交易
143
- * for (const txBase64 of result.transactions) {
144
- * const tx = VersionedTransaction.deserialize(Buffer.from(txBase64, 'base64'))
145
- * tx.sign([wallet])
146
- * await connection.sendTransaction(tx)
147
- * }
148
- * ```
149
- */
150
- export async function cancelTriggerOrders(params, config) {
151
- return jupPost('/trigger/v1/cancelOrders', params, config);
152
- }
153
- /**
154
- * 快捷取消单个订单
155
- *
156
- * @param maker Maker 地址
157
- * @param orderAccount 订单账户地址
158
- * @param config Jupiter 配置
159
- * @returns 取消订单响应
160
- */
161
- export async function cancelSingleTriggerOrder(maker, orderAccount, config) {
162
- return cancelTriggerOrder({
163
- maker,
164
- order: orderAccount,
165
- computeUnitPrice: 'auto',
166
- }, config);
167
- }
168
- // ============================================================================
169
- // Execute - 执行交易
170
- // ============================================================================
171
- /**
172
- * 执行已签名的触发订单交易
173
- *
174
- * 将签名后的交易发送到 Jupiter 执行。
175
- *
176
- * @param params 执行参数
177
- * @param config Jupiter 配置
178
- * @returns 执行结果
179
- *
180
- * @example
181
- * ```typescript
182
- * // 1. 创建订单
183
- * const createResult = await Sol.createTriggerOrder({
184
- * inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
185
- * outputMint: 'So11111111111111111111111111111111111111112',
186
- * maker: wallet.publicKey.toBase58(),
187
- * payer: wallet.publicKey.toBase58(),
188
- * params: {
189
- * makingAmount: '100000000',
190
- * takingAmount: '500000000',
191
- * },
192
- * })
193
- *
194
- * // 2. 签名交易
195
- * const tx = VersionedTransaction.deserialize(
196
- * Buffer.from(createResult.transaction, 'base64')
197
- * )
198
- * tx.sign([wallet])
199
- *
200
- * // 3. 执行交易
201
- * const executeResult = await Sol.executeTriggerOrder({
202
- * requestId: createResult.requestId,
203
- * signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
204
- * })
205
- *
206
- * if (executeResult.status === 'Success') {
207
- * console.log('订单创建成功:', executeResult.signature)
208
- * }
209
- * ```
210
- */
211
- export async function executeTriggerOrder(params, config) {
212
- return jupPost('/trigger/v1/execute', params, config);
213
- }
214
- /**
215
- * 创建订单并执行(一步完成)
216
- *
217
- * @param params 创建订单参数
218
- * @param signTransaction 签名函数
219
- * @param config Jupiter 配置
220
- * @returns 执行结果和订单账户
221
- *
222
- * @example
223
- * ```typescript
224
- * const result = await Sol.createAndExecuteTriggerOrder(
225
- * {
226
- * inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
227
- * outputMint: 'So11111111111111111111111111111111111111112',
228
- * maker: wallet.publicKey.toBase58(),
229
- * payer: wallet.publicKey.toBase58(),
230
- * params: {
231
- * makingAmount: '100000000',
232
- * takingAmount: '500000000',
233
- * },
234
- * },
235
- * async (tx) => {
236
- * tx.sign([wallet])
237
- * return tx
238
- * }
239
- * )
240
- *
241
- * console.log('签名:', result.signature)
242
- * console.log('订单:', result.order)
243
- * ```
244
- */
245
- export async function createAndExecuteTriggerOrder(params, signTransaction, config) {
246
- // 1. 创建订单
247
- const createResult = await createTriggerOrder(params, config);
248
- // 2. 反序列化并签名
249
- // 注意:这里假设使用者会在 signTransaction 中处理反序列化
250
- const signedTx = await signTransaction(createResult.transaction);
251
- // 3. 执行
252
- const executeResult = await executeTriggerOrder({
253
- requestId: createResult.requestId,
254
- signedTransaction: signedTx,
255
- }, config);
256
- return {
257
- ...executeResult,
258
- order: createResult.order,
259
- };
260
- }
261
- // ============================================================================
262
- // Get Orders - 获取订单
263
- // ============================================================================
264
- /**
265
- * 获取用户的触发订单(带分页)
266
- *
267
- * @param params 查询参数
268
- * @param config Jupiter 配置
269
- * @returns 订单列表响应(含分页信息)
270
- *
271
- * @example
272
- * ```typescript
273
- * // 获取活跃订单
274
- * const activeOrders = await Sol.getTriggerOrders({
275
- * user: wallet.publicKey.toBase58(),
276
- * orderStatus: 'active',
277
- * page: 1,
278
- * })
279
- *
280
- * console.log(`共 ${activeOrders.totalPages} 页`)
281
- * activeOrders.orders.forEach(order => {
282
- * console.log(`订单: ${order.orderKey}`)
283
- * console.log(` ${order.makingAmount} -> ${order.takingAmount}`)
284
- * console.log(` 状态: ${order.status}`)
285
- * console.log(` 交易数: ${order.trades.length}`)
286
- * })
287
- *
288
- * // 获取历史订单
289
- * const history = await Sol.getTriggerOrders({
290
- * user: wallet.publicKey.toBase58(),
291
- * orderStatus: 'history',
292
- * })
293
- * ```
294
- */
295
- export async function getTriggerOrders(params, config) {
296
- const queryParams = {};
297
- if (params.user)
298
- queryParams.user = params.user;
299
- if (params.page)
300
- queryParams.page = params.page;
301
- if (params.orderStatus)
302
- queryParams.orderStatus = params.orderStatus;
303
- return jupGet('/trigger/v1/getTriggerOrders', queryParams, config);
304
- }
305
- /**
306
- * 获取用户的活跃订单
307
- *
308
- * @param user 用户地址
309
- * @param page 页码(默认: 1)
310
- * @param config Jupiter 配置
311
- * @returns 活跃订单响应
312
- */
313
- export async function getActiveTriggerOrders(user, page = 1, config) {
314
- return getTriggerOrders({ user, orderStatus: 'active', page }, config);
315
- }
316
- /**
317
- * 获取用户的历史订单
318
- *
319
- * @param user 用户地址
320
- * @param page 页码(默认: 1)
321
- * @param config Jupiter 配置
322
- * @returns 历史订单响应
323
- */
324
- export async function getHistoryTriggerOrders(user, page = 1, config) {
325
- return getTriggerOrders({ user, orderStatus: 'history', page }, config);
326
- }
327
- /**
328
- * 获取所有活跃订单(自动分页)
329
- *
330
- * @param user 用户地址
331
- * @param config Jupiter 配置
332
- * @returns 所有活跃订单
333
- */
334
- export async function getAllActiveTriggerOrders(user, config) {
335
- const allOrders = [];
336
- let page = 1;
337
- while (true) {
338
- const response = await getActiveTriggerOrders(user, page, config);
339
- allOrders.push(...response.orders);
340
- if (page >= response.totalPages)
341
- break;
342
- page++;
343
- }
344
- return allOrders;
345
- }
346
- // ============================================================================
347
- // 便捷方法
348
- // ============================================================================
349
- /**
350
- * 计算限价单价格
351
- *
352
- * @param makingAmount 输入数量
353
- * @param makingDecimals 输入代币精度
354
- * @param takingAmount 输出数量
355
- * @param takingDecimals 输出代币精度
356
- * @returns 价格 (输出/输入)
357
- *
358
- * @example
359
- * ```typescript
360
- * // 100 USDC -> 0.5 SOL
361
- * const price = Sol.calculateTriggerPrice(
362
- * '100000000', 6, // 100 USDC
363
- * '500000000', 9, // 0.5 SOL
364
- * )
365
- * console.log('价格:', price, 'SOL/USDC') // 0.005
366
- * ```
367
- */
368
- export function calculateTriggerPrice(makingAmount, makingDecimals, takingAmount, takingDecimals) {
369
- const making = Number(makingAmount) / Math.pow(10, makingDecimals);
370
- const taking = Number(takingAmount) / Math.pow(10, takingDecimals);
371
- return taking / making;
372
- }
373
- /**
374
- * 从价格计算 takingAmount
375
- *
376
- * @param makingAmount 输入数量
377
- * @param makingDecimals 输入代币精度
378
- * @param price 期望价格 (输出/输入)
379
- * @param takingDecimals 输出代币精度
380
- * @returns takingAmount
381
- *
382
- * @example
383
- * ```typescript
384
- * // 100 USDC,价格 0.005 SOL/USDC
385
- * const takingAmount = Sol.calculateTakingAmount(
386
- * '100000000', 6, // 100 USDC
387
- * 0.005, // 价格
388
- * 9, // SOL 精度
389
- * )
390
- * console.log('takingAmount:', takingAmount) // '500000000'
391
- * ```
392
- */
393
- export function calculateTakingAmount(makingAmount, makingDecimals, price, takingDecimals) {
394
- const making = Number(makingAmount) / Math.pow(10, makingDecimals);
395
- const taking = making * price;
396
- return Math.floor(taking * Math.pow(10, takingDecimals)).toString();
397
- }