@w3lib/solana-batch-call 0.2.1 → 0.3.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 (83) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +132 -2
  3. package/dist/client.d.ts +4 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +8 -0
  6. package/dist/client.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/layout.d.ts +5 -0
  12. package/dist/layout.d.ts.map +1 -1
  13. package/dist/layout.js +16 -0
  14. package/dist/layout.js.map +1 -1
  15. package/dist/lp.d.ts +123 -0
  16. package/dist/lp.d.ts.map +1 -0
  17. package/dist/lp.js +631 -0
  18. package/dist/lp.js.map +1 -0
  19. package/dist/lpMath.d.ts +37 -0
  20. package/dist/lpMath.d.ts.map +1 -0
  21. package/dist/lpMath.js +176 -0
  22. package/dist/lpMath.js.map +1 -0
  23. package/dist/rpc.d.ts +3 -1
  24. package/dist/rpc.d.ts.map +1 -1
  25. package/dist/rpc.js +70 -10
  26. package/dist/rpc.js.map +1 -1
  27. package/dist/shortcuts.d.ts +8 -0
  28. package/dist/shortcuts.d.ts.map +1 -1
  29. package/dist/shortcuts.js +1 -1
  30. package/dist/shortcuts.js.map +1 -1
  31. package/dist/subpaths/lp.d.ts +31 -0
  32. package/dist/subpaths/lp.d.ts.map +1 -0
  33. package/dist/subpaths/lp.js +33 -0
  34. package/dist/subpaths/lp.js.map +1 -0
  35. package/dist/subpaths/write.d.ts +22 -0
  36. package/dist/subpaths/write.d.ts.map +1 -0
  37. package/dist/subpaths/write.js +19 -0
  38. package/dist/subpaths/write.js.map +1 -0
  39. package/dist/write/batch.d.ts +41 -0
  40. package/dist/write/batch.d.ts.map +1 -0
  41. package/dist/write/batch.js +46 -0
  42. package/dist/write/batch.js.map +1 -0
  43. package/dist/write/collect.d.ts +50 -0
  44. package/dist/write/collect.d.ts.map +1 -0
  45. package/dist/write/collect.js +220 -0
  46. package/dist/write/collect.js.map +1 -0
  47. package/dist/write/instructions.d.ts +16 -0
  48. package/dist/write/instructions.d.ts.map +1 -0
  49. package/dist/write/instructions.js +89 -0
  50. package/dist/write/instructions.js.map +1 -0
  51. package/dist/write/send.d.ts +115 -0
  52. package/dist/write/send.d.ts.map +1 -0
  53. package/dist/write/send.js +720 -0
  54. package/dist/write/send.js.map +1 -0
  55. package/dist/write/signer.d.ts +94 -0
  56. package/dist/write/signer.d.ts.map +1 -0
  57. package/dist/write/signer.js +197 -0
  58. package/dist/write/signer.js.map +1 -0
  59. package/dist/write/transaction.d.ts +75 -0
  60. package/dist/write/transaction.d.ts.map +1 -0
  61. package/dist/write/transaction.js +133 -0
  62. package/dist/write/transaction.js.map +1 -0
  63. package/dist/write/transfer.d.ts +72 -0
  64. package/dist/write/transfer.d.ts.map +1 -0
  65. package/dist/write/transfer.js +127 -0
  66. package/dist/write/transfer.js.map +1 -0
  67. package/package.json +23 -12
  68. package/src/client.ts +10 -0
  69. package/src/index.ts +1 -0
  70. package/src/layout.ts +17 -0
  71. package/src/lp.ts +849 -0
  72. package/src/lpMath.ts +205 -0
  73. package/src/rpc.ts +77 -11
  74. package/src/shortcuts.ts +1 -1
  75. package/src/subpaths/lp.ts +62 -0
  76. package/src/subpaths/write.ts +29 -0
  77. package/src/write/batch.ts +78 -0
  78. package/src/write/collect.ts +286 -0
  79. package/src/write/instructions.ts +98 -0
  80. package/src/write/send.ts +876 -0
  81. package/src/write/signer.ts +314 -0
  82. package/src/write/transaction.ts +181 -0
  83. package/src/write/transfer.ts +189 -0
package/dist/shortcuts.js CHANGED
@@ -50,7 +50,7 @@ function sourceKey(source) {
50
50
  * 拆出节点参数和函数自己的参数(ownKeys),其余作为客户端配置;值为 undefined 的参数忽略。
51
51
  * signal 总是作为函数自己的参数(放进客户端配置会让每次调用都新建客户端)
52
52
  */
53
- function resolve(options, ownKeys = []) {
53
+ export function resolve(options, ownKeys = []) {
54
54
  const { provider, ...others } = options;
55
55
  const own = {};
56
56
  const config = {};
@@ -1 +1 @@
1
- {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * LP 仓位(子路径 `@w3lib/solana-batch-call/lp`):Raydium CLMM / Orca Whirlpool 的仓位 NFT,Raydium AMM v4 / CPMM 的 LP 代币,
3
+ * 代币数量、未领取的手续费、可选的美元价值。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * ```ts
6
+ * import { getLpPositions } from '@w3lib/solana-batch-call/lp'
7
+ *
8
+ * await getLpPositions(owner, { provider: 'https://my-rpc…' }) // 扫描全部代币账户(需要支持 getTokenAccountsByOwner 的节点)
9
+ * await getLpPositions(owner, { mints: [positionNftMint], prices: true }) // 只看这些代币:免费公共节点也能用
10
+ * ```
11
+ */
12
+ import { type LpPositionsOptions, type SolanaLpPosition } from '../lp.js';
13
+ import { type ShortcutOptions } from '../shortcuts.js';
14
+ export { ORCA_WHIRLPOOL_PROGRAM_ID, RAYDIUM_AMM_PROGRAM_ID, RAYDIUM_CLMM_PROGRAM_ID, RAYDIUM_CPMM_PROGRAM_ID, SOLANA_LP_PROTOCOLS, defillamaPrices, lpPositions, type LpPositionsOptions, type SolanaLpAmmPosition, type SolanaLpClmmPosition, type SolanaLpPosition, type SolanaLpProtocol, type SolanaLpToken, type SolanaPriceSource, } from '../lp.js';
15
+ export { MAX_TICK, MIN_TICK, getAmountsForLiquidity, getFeeGrowthInside, getFeesOwed, orcaSqrtPriceAtTick, raydiumSqrtPriceAtTick, sqrtPriceToPrice, tickToPrice, type TickFeeData, } from '../lpMath.js';
16
+ export interface GetLpPositionsOptions extends LpPositionsOptions, ShortcutOptions {
17
+ }
18
+ /**
19
+ * 查一个地址的 LP 仓位。
20
+ *
21
+ * ```ts
22
+ * await getLpPositions(owner, { provider: 'https://my-rpc…' })
23
+ * // [{ type: 'clmm', protocol: 'raydium-clmm', pool, positionMint, token0: { symbol: 'SOL', … }, token1: { symbol: 'USDC', … },
24
+ * // amount0Formatted: '140.26', amount1Formatted: '6852.2', fees0Formatted: '0.546', fees1Formatted: '59.5', inRange: true, … },
25
+ * // { type: 'amm', protocol: 'raydium-amm', pool, lpMint, balance, share: 0.18, amount0Formatted, amount1Formatted, … }]
26
+ * await getLpPositions(owner, { mints: [nftMint, lpMint], pools: [ammPool] }) // 免费公共节点:指定代币和池子
27
+ * await getLpPositions(owner, { provider, prices: true }) // 带美元价值(DefiLlama),按价值排序
28
+ * ```
29
+ */
30
+ export declare function getLpPositions(owner: string, options?: GetLpPositionsOptions): Promise<SolanaLpPosition[]>;
31
+ //# sourceMappingURL=lp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp.d.ts","sourceRoot":"","sources":["../../src/subpaths/lp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACtF,OAAO,EAAW,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE/D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,KAAK,WAAW,GACjB,MAAM,cAAc,CAAA;AAErB,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB,EAAE,eAAe;CAAG;AAErF;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAI9G"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * LP 仓位(子路径 `@w3lib/solana-batch-call/lp`):Raydium CLMM / Orca Whirlpool 的仓位 NFT,Raydium AMM v4 / CPMM 的 LP 代币,
3
+ * 代币数量、未领取的手续费、可选的美元价值。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * ```ts
6
+ * import { getLpPositions } from '@w3lib/solana-batch-call/lp'
7
+ *
8
+ * await getLpPositions(owner, { provider: 'https://my-rpc…' }) // 扫描全部代币账户(需要支持 getTokenAccountsByOwner 的节点)
9
+ * await getLpPositions(owner, { mints: [positionNftMint], prices: true }) // 只看这些代币:免费公共节点也能用
10
+ * ```
11
+ */
12
+ import { lpPositions } from '../lp.js';
13
+ import { resolve } from '../shortcuts.js';
14
+ export { ORCA_WHIRLPOOL_PROGRAM_ID, RAYDIUM_AMM_PROGRAM_ID, RAYDIUM_CLMM_PROGRAM_ID, RAYDIUM_CPMM_PROGRAM_ID, SOLANA_LP_PROTOCOLS, defillamaPrices, lpPositions, } from '../lp.js';
15
+ export { MAX_TICK, MIN_TICK, getAmountsForLiquidity, getFeeGrowthInside, getFeesOwed, orcaSqrtPriceAtTick, raydiumSqrtPriceAtTick, sqrtPriceToPrice, tickToPrice, } from '../lpMath.js';
16
+ /**
17
+ * 查一个地址的 LP 仓位。
18
+ *
19
+ * ```ts
20
+ * await getLpPositions(owner, { provider: 'https://my-rpc…' })
21
+ * // [{ type: 'clmm', protocol: 'raydium-clmm', pool, positionMint, token0: { symbol: 'SOL', … }, token1: { symbol: 'USDC', … },
22
+ * // amount0Formatted: '140.26', amount1Formatted: '6852.2', fees0Formatted: '0.546', fees1Formatted: '59.5', inRange: true, … },
23
+ * // { type: 'amm', protocol: 'raydium-amm', pool, lpMint, balance, share: 0.18, amount0Formatted, amount1Formatted, … }]
24
+ * await getLpPositions(owner, { mints: [nftMint, lpMint], pools: [ammPool] }) // 免费公共节点:指定代币和池子
25
+ * await getLpPositions(owner, { provider, prices: true }) // 带美元价值(DefiLlama),按价值排序
26
+ * ```
27
+ */
28
+ export function getLpPositions(owner, options = {}) {
29
+ // fetch 同时给节点请求(客户端配置)和查价用,与其他快捷函数一致
30
+ const { client, own } = resolve(options, ['protocols', 'mints', 'pools', 'includeClosed', 'prices', 'onPriceError', 'signal']);
31
+ return lpPositions(client, owner, { ...own, ...(options.fetch ? { fetch: options.fetch } : {}) });
32
+ }
33
+ //# sourceMappingURL=lp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp.js","sourceRoot":"","sources":["../../src/subpaths/lp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAkD,MAAM,UAAU,CAAA;AACtF,OAAO,EAAE,OAAO,EAAwB,MAAM,iBAAiB,CAAA;AAE/D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,WAAW,GAQZ,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,GAEZ,MAAM,cAAc,CAAA;AAIrB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,UAAiC,EAAE;IAC/E,qCAAqC;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC9H,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AACnG,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 批量写操作(子路径 `@w3lib/solana-batch-call/write`):批量调用程序、一对多转账、多钱包归集。
3
+ * 不放在主入口,只做查询时打包不会带上这部分代码。不依赖 Solana SDK,签名用运行环境的 WebCrypto(Ed25519)。
4
+ *
5
+ * ```ts
6
+ * import { SolanaClient, NATIVE_MINT } from '@w3lib/solana-batch-call'
7
+ * import { batchCall, batchCollect, batchTransfer } from '@w3lib/solana-batch-call/write'
8
+ *
9
+ * const client = new SolanaClient(rpcUrl)
10
+ * await batchTransfer(client, secretKey, [{ to: a, formatted: '0.5' }, { to: b, token: USDC, formatted: '20' }])
11
+ * await batchCollect(client, [key1, key2], hotWallet, { tokens: [USDC, NATIVE_MINT], feePayer: gasKey })
12
+ * await batchCall(client, [{ from: key1, instructions: [ix1, ix2] }])
13
+ * ```
14
+ */
15
+ export { batchCall, type BatchCallMode, type BatchCallOptions, type WriteCall } from '../write/batch.js';
16
+ export { batchCollect, type BatchCollectOptions, type CollectItemResult, type CollectResult } from '../write/collect.js';
17
+ export { batchTransfer, type BatchTransferOptions, type TransferItem, type TransferMode, type TransferResult } from '../write/transfer.js';
18
+ export { COMPUTE_BUDGET_PROGRAM_ID, closeAccount, createAssociatedTokenAccountIdempotent, setComputeUnitLimit, setComputeUnitPrice, systemTransfer, transferChecked, } from '../write/instructions.js';
19
+ export type { SendOptions, WriteResult, WriteStatus } from '../write/send.js';
20
+ export type { SignerInput, WriteSigner } from '../write/signer.js';
21
+ export type { AccountMeta, Instruction, InstructionInput } from '../write/transaction.js';
22
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/subpaths/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxH,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1I,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,sCAAsC,EACtC,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC7E,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAClE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 批量写操作(子路径 `@w3lib/solana-batch-call/write`):批量调用程序、一对多转账、多钱包归集。
3
+ * 不放在主入口,只做查询时打包不会带上这部分代码。不依赖 Solana SDK,签名用运行环境的 WebCrypto(Ed25519)。
4
+ *
5
+ * ```ts
6
+ * import { SolanaClient, NATIVE_MINT } from '@w3lib/solana-batch-call'
7
+ * import { batchCall, batchCollect, batchTransfer } from '@w3lib/solana-batch-call/write'
8
+ *
9
+ * const client = new SolanaClient(rpcUrl)
10
+ * await batchTransfer(client, secretKey, [{ to: a, formatted: '0.5' }, { to: b, token: USDC, formatted: '20' }])
11
+ * await batchCollect(client, [key1, key2], hotWallet, { tokens: [USDC, NATIVE_MINT], feePayer: gasKey })
12
+ * await batchCall(client, [{ from: key1, instructions: [ix1, ix2] }])
13
+ * ```
14
+ */
15
+ export { batchCall } from '../write/batch.js';
16
+ export { batchCollect } from '../write/collect.js';
17
+ export { batchTransfer } from '../write/transfer.js';
18
+ export { COMPUTE_BUDGET_PROGRAM_ID, closeAccount, createAssociatedTokenAccountIdempotent, setComputeUnitLimit, setComputeUnitPrice, systemTransfer, transferChecked, } from '../write/instructions.js';
19
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/subpaths/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAA6D,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,YAAY,EAAwE,MAAM,qBAAqB,CAAA;AACxH,OAAO,EAAE,aAAa,EAAwF,MAAM,sBAAsB,CAAA;AAC1I,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,sCAAsC,EACtC,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,41 @@
1
+ import type { SolanaClient } from '../client.js';
2
+ import { type SendOptions, type WriteResult } from './send.js';
3
+ import { type SignerInput } from './signer.js';
4
+ import { type InstructionInput } from './transaction.js';
5
+ /** 一个写调用:一组要原子执行的指令 */
6
+ export interface WriteCall {
7
+ /** 发送的钱包(指令里的签名者之一);不传 feePayer 时也由它付手续费 */
8
+ from: SignerInput;
9
+ /** 指令:@solana/web3.js 的 TransactionInstruction、@solana/kit 的 Instruction 或本库格式,一个或多个 */
10
+ instructions: InstructionInput | readonly InstructionInput[];
11
+ /** 指令需要的其他签名者(如新建账户的 Keypair) */
12
+ signers?: readonly SignerInput[];
13
+ }
14
+ /**
15
+ * - 'pack'(默认):同一手续费支付者的相邻调用打包进同一笔交易(不超过 1232 字节、64 个账户),
16
+ * 模拟时失败的调用会被剔除、其余照常发送;同一笔交易上链后才失败时一起回滚
17
+ * - 'tx':每个调用一笔交易
18
+ */
19
+ export type BatchCallMode = 'pack' | 'tx';
20
+ export interface BatchCallOptions extends SendOptions {
21
+ mode?: BatchCallMode;
22
+ /** 'pack' 时每笔交易最多几个调用,默认不限(只受交易大小限制) */
23
+ batchSize?: number;
24
+ /**
25
+ * 某个调用发送前失败(模拟失败等)后,同一支付者后面的调用是否继续。默认 false(后面的标记为 skipped)。
26
+ * 交易不等上一笔确认就连续发出,已经发出、之后上链失败的交易拦不住后面已发出的交易
27
+ */
28
+ continueOnError?: boolean;
29
+ }
30
+ /**
31
+ * 批量调用程序(写操作)。结果与 calls 一一对应。
32
+ *
33
+ * ```ts
34
+ * await batchCall(client, [
35
+ * { from: key1, instructions: [ix1, ix2] }, // 同一个调用里的指令原子执行
36
+ * { from: key2, instructions: ix3 },
37
+ * ], { feePayer: gasKey }) // 手续费都由 gasKey 付,不同钱包的调用也能打包进同一笔交易
38
+ * ```
39
+ */
40
+ export declare function batchCall(client: SolanaClient, calls: readonly WriteCall[], options?: BatchCallOptions): Promise<WriteResult[]>;
41
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/write/batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAA0C,KAAK,WAAW,EAAa,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AACjH,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAE7D,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,uBAAuB;AACvB,MAAM,WAAW,SAAS;IACxB,4CAA4C;IAC5C,IAAI,EAAE,WAAW,CAAA;IACjB,wFAAwF;IACxF,YAAY,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAA;IAC5D,iCAAiC;IACjC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;CACjC;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,CAAA;AAEzC,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgCzI"}
@@ -0,0 +1,46 @@
1
+ import { emptyOutcome, sendUnits, toWriteResult } from './send.js';
2
+ import { resolveSigner } from './signer.js';
3
+ import { COMPUTE_BUDGET_PROGRAM_ID } from './instructions.js';
4
+ import { normalizeInstruction } from './transaction.js';
5
+ /**
6
+ * 批量调用程序(写操作)。结果与 calls 一一对应。
7
+ *
8
+ * ```ts
9
+ * await batchCall(client, [
10
+ * { from: key1, instructions: [ix1, ix2] }, // 同一个调用里的指令原子执行
11
+ * { from: key2, instructions: ix3 },
12
+ * ], { feePayer: gasKey }) // 手续费都由 gasKey 付,不同钱包的调用也能打包进同一笔交易
13
+ * ```
14
+ */
15
+ export async function batchCall(client, calls, options = {}) {
16
+ const cache = new Map();
17
+ const feePayer = options.feePayer === undefined ? undefined : await resolveSigner(options.feePayer, cache);
18
+ const prepared = await Promise.all(calls.map(async (call, i) => {
19
+ const from = await resolveSigner(call.from, cache);
20
+ const signers = [from, ...(await Promise.all((call.signers ?? []).map((s) => resolveSigner(s, cache))))];
21
+ const list = Array.isArray(call.instructions) ? call.instructions : [call.instructions];
22
+ // 库会自动加计算单元上限和优先费用指令;调用里自带的同类指令去掉(重复会让整笔交易失败),优先费用用 priorityFee 选项
23
+ const instructions = list.map(normalizeInstruction).filter((ix) => !(ix.programId === COMPUTE_BUDGET_PROGRAM_ID && (ix.data[0] === 2 || ix.data[0] === 3)));
24
+ const payer = feePayer ?? from;
25
+ const known = new Set([payer.address, ...signers.map((s) => s.address)]);
26
+ const missing = instructions.flatMap((ix) => ix.keys).find((k) => k.isSigner && !known.has(k.pubkey));
27
+ if (missing) {
28
+ throw new Error(`calls[${i}]: an instruction requires the signature of ${missing.pubkey}; pass it in signers`);
29
+ }
30
+ return { from, signers, instructions, payer };
31
+ }));
32
+ const results = prepared.map((p, i) => toWriteResult(i, p.from.address, emptyOutcome('skipped')));
33
+ const units = prepared.map((p, i) => ({
34
+ instructions: p.instructions,
35
+ payer: p.payer,
36
+ signers: p.signers.filter((s) => s.address !== p.payer.address),
37
+ continueOnError: options.continueOnError,
38
+ onUpdate: (outcome) => {
39
+ results[i] = toWriteResult(i, p.from.address, outcome);
40
+ options.onUpdate?.(results[i]);
41
+ },
42
+ }));
43
+ await sendUnits(client, units, options, { batchSize: (options.mode ?? 'pack') === 'tx' ? 1 : options.batchSize });
44
+ return results;
45
+ }
46
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/write/batch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAiD,MAAM,WAAW,CAAA;AACjH,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,kBAAkB,CAAA;AA8B9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB,EAAE,KAA2B,EAAE,UAA4B,EAAE;IAC/G,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC1G,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxG,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,YAA4C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAgC,CAAC,CAAA;QAC5I,mEAAmE;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,yBAAyB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3J,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACxE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACrG,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,+CAA+C,OAAO,CAAC,MAAM,sBAAsB,CAAC,CAAA;QAChH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;IAC/C,CAAC,CAAC,CACH,CAAA;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACjG,MAAM,KAAK,GAAW,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/D,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACpB,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACtD,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAgB,CAAC,CAAA;QAC/C,CAAC;KACF,CAAC,CAAC,CAAA;IACH,MAAM,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IACjH,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { SolanaClient } from '../client.js';
2
+ import { type SendOptions, type WriteResult } from './send.js';
3
+ import { type SignerInput } from './signer.js';
4
+ export interface BatchCollectOptions extends SendOptions {
5
+ /**
6
+ * 要归集的代币 mint。包含原生 SOL(NATIVE_MINT)时,在代币归集确认后把剩余 SOL 全部转走:
7
+ * 传了 feePayer 时整个余额转走(手续费由 feePayer 付),否则扣掉这笔的手续费后转走,钱包余额归零
8
+ */
9
+ tokens: readonly string[];
10
+ /**
11
+ * 代币转完后关闭钱包的代币账户(ATA),租金(约 0.00204 SOL / 个)退回钱包本身;同时扫 SOL 时一并转走。默认 false。
12
+ * Token-2022 账户里有未提取的转账手续费等情况关不掉,只影响 close 那一项
13
+ */
14
+ closeAccounts?: boolean;
15
+ /** 各代币的最小归集数量(最小单位),余额低于它的不归集:`{ [USDC]: 1_000_000n }`;对 SOL 同样有效 */
16
+ minAmount?: Readonly<Record<string, bigint | number | string>>;
17
+ /** 每笔交易最多几个调用,默认不限(按交易大小) */
18
+ batchSize?: number;
19
+ }
20
+ /** 单个钱包单个代币的归集结果;from 是钱包,to 是归集地址 */
21
+ export interface CollectItemResult extends WriteResult {
22
+ to: string;
23
+ token: string;
24
+ native: boolean;
25
+ /** 归集的数量(最小单位);SOL 扫尾在发送前为 '0' */
26
+ amount: string;
27
+ formatted: string | null;
28
+ /** closeAccounts 时关闭代币账户的结果;没有关闭(未开启、SOL、没有归集)时为 null */
29
+ close: WriteResult | null;
30
+ }
31
+ export interface CollectResult {
32
+ /** 按 wallets × tokens 顺序(第 i 个钱包第 j 个代币在 i × tokens.length + j) */
33
+ results: CollectItemResult[];
34
+ }
35
+ /**
36
+ * 归集:多个钱包的代币 / SOL 转到同一个地址。
37
+ *
38
+ * ```ts
39
+ * const { results } = await batchCollect(client, [key1, key2, key3], hotWallet, {
40
+ * tokens: [USDC, NATIVE_MINT], // 包含 SOL 表示代币归集完后扫空 SOL
41
+ * feePayer: gasKey, // 手续费都由 gasKey 付:子钱包不需要有 SOL,多个钱包的转账打包进同一笔交易
42
+ * })
43
+ * ```
44
+ *
45
+ * 流程:一次读出所有钱包的余额 → 归集地址没有该代币的 ATA 时随第一批转账创建 → 打包发送代币转账(可选关闭代币账户)
46
+ * →(包含 SOL 时)等代币归集确认,按最新余额扫空 SOL。
47
+ * 不传 feePayer 时每个钱包自己付手续费,没有 SOL 的钱包对应的项失败(Solana 上不需要先补 gas:传 feePayer 即可)
48
+ */
49
+ export declare function batchCollect(client: SolanaClient, wallets: readonly SignerInput[], to: string, options: BatchCollectOptions): Promise<CollectResult>;
50
+ //# sourceMappingURL=collect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/write/collect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EAA0E,KAAK,WAAW,EAA6B,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AACjK,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAMlF,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD;;;OAGG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qEAAqE;IACrE,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;IAC9D,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,yDAAyD;IACzD,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqM1J"}
@@ -0,0 +1,220 @@
1
+ import { getAssociatedTokenAddress, isAddress } from '../address.js';
2
+ import { formatUnits } from '../layout.js';
3
+ import { closeAccount, createAssociatedTokenAccountIdempotent, systemTransfer } from './instructions.js';
4
+ import { emptyOutcome, priorityFeeFor, sendUnits, toWriteResult, transactionFee } from './send.js';
5
+ import { resolveSigner } from './signer.js';
6
+ import { transferInstructions } from './transfer.js';
7
+ /** 扫空 SOL 的交易(一条 System 转账 + 两条计算预算指令)用的计算单元上限 */
8
+ const SWEEP_COMPUTE_UNITS = 1_000;
9
+ /**
10
+ * 归集:多个钱包的代币 / SOL 转到同一个地址。
11
+ *
12
+ * ```ts
13
+ * const { results } = await batchCollect(client, [key1, key2, key3], hotWallet, {
14
+ * tokens: [USDC, NATIVE_MINT], // 包含 SOL 表示代币归集完后扫空 SOL
15
+ * feePayer: gasKey, // 手续费都由 gasKey 付:子钱包不需要有 SOL,多个钱包的转账打包进同一笔交易
16
+ * })
17
+ * ```
18
+ *
19
+ * 流程:一次读出所有钱包的余额 → 归集地址没有该代币的 ATA 时随第一批转账创建 → 打包发送代币转账(可选关闭代币账户)
20
+ * →(包含 SOL 时)等代币归集确认,按最新余额扫空 SOL。
21
+ * 不传 feePayer 时每个钱包自己付手续费,没有 SOL 的钱包对应的项失败(Solana 上不需要先补 gas:传 feePayer 即可)
22
+ */
23
+ export async function batchCollect(client, wallets, to, options) {
24
+ if (!isAddress(to)) {
25
+ throw new Error(`Invalid collect address: ${to}`);
26
+ }
27
+ const cache = new Map();
28
+ const signers = await Promise.all(wallets.map((w) => resolveSigner(w, cache)));
29
+ const feePayer = options.feePayer === undefined ? null : await resolveSigner(options.feePayer, cache);
30
+ const tokens = options.tokens;
31
+ const sweep = tokens.some((t) => client.isNativeMint(t));
32
+ const minAmount = new Map(Object.entries(options.minAmount ?? {}).map(([k, v]) => [k, BigInt(v)]));
33
+ const balances = await client.multiBalances(signers.map((s) => ({ owner: s.address, mints: tokens })), { signal: options.signal });
34
+ const items = [];
35
+ const seen = new Set();
36
+ signers.forEach((signer, w) => {
37
+ const duplicate = seen.has(signer.address);
38
+ seen.add(signer.address);
39
+ tokens.forEach((token, t) => {
40
+ const balance = balances[w]?.[t];
41
+ const native = client.isNativeMint(token);
42
+ const item = {
43
+ index: w * tokens.length + t,
44
+ signer,
45
+ token,
46
+ native,
47
+ amount: native || !balance.success ? 0n : BigInt(balance.balance),
48
+ decimals: balance.success ? balance.decimals : null,
49
+ tokenProgram: balance.tokenProgram,
50
+ result: null,
51
+ };
52
+ const skip = !balance.success
53
+ ? `cannot read balance: ${balance.error ?? 'unknown error'}`
54
+ : signer.address === to
55
+ ? 'skipped: wallet is the collect address'
56
+ : duplicate
57
+ ? 'skipped: duplicate wallet'
58
+ : native && feePayer?.address === signer.address
59
+ ? 'skipped: wallet is the fee payer'
60
+ : !native && item.amount === 0n
61
+ ? 'skipped: zero balance'
62
+ : !native && item.amount < (minAmount.get(token) ?? 0n)
63
+ ? 'skipped: below minAmount'
64
+ : null;
65
+ item.result = toCollectResult(item, to, emptyOutcome(skip ? (balance.success ? 'skipped' : 'failed') : 'skipped', skip), null);
66
+ items.push(item);
67
+ });
68
+ });
69
+ const results = items.map((i) => i.result);
70
+ const report = (item, outcome, close = item.result.close) => {
71
+ const hint = !feePayer && outcome.status === 'failed' && /transaction fee|fee payer/.test(outcome.error ?? '') && !outcome.error?.includes('feePayer')
72
+ ? ' (pass feePayer to pay fees from another wallet)'
73
+ : '';
74
+ item.result = toCollectResult(item, to, { ...outcome, error: outcome.error && outcome.error + hint }, close);
75
+ results[item.index] = item.result;
76
+ options.onUpdate?.(item.result);
77
+ };
78
+ const active = (item) => item.result.error === null;
79
+ // 归集地址的 ATA:没有的话随转账创建(创建指令是幂等的,同一代币的多笔转账都带上,只有第一笔真正创建)
80
+ const tokenItems = items.filter((i) => !i.native && active(i));
81
+ const targetAtas = new Map(tokenItems.map((i) => [i.token, getAssociatedTokenAddress(to, i.token, i.tokenProgram)]));
82
+ const missing = new Set();
83
+ if (targetAtas.size) {
84
+ const keys = [...targetAtas.values()];
85
+ const accounts = await client.accounts(keys, { signal: options.signal });
86
+ keys.forEach((k, i) => !accounts[i] && missing.add(k));
87
+ }
88
+ // 不传 feePayer 时每个钱包自己付费:如果每笔转账都带创建指令,模拟时每个钱包都要付得起租金(实际只创建一次)。
89
+ // 先由第一个有这种代币的钱包单独创建,确认后再归集;创建失败时退回到每笔都带创建指令
90
+ if (!feePayer && missing.size && !options.dryRun) {
91
+ const setup = [];
92
+ for (const [mint, ata] of targetAtas) {
93
+ if (!missing.has(ata))
94
+ continue;
95
+ const first = tokenItems.find((i) => i.token === mint);
96
+ setup.push({
97
+ instructions: [createAssociatedTokenAccountIdempotent(first.signer.address, ata, to, mint, first.tokenProgram)],
98
+ payer: first.signer,
99
+ signers: [],
100
+ continueOnError: true,
101
+ onUpdate: (outcome) => outcome.status === 'confirmed' && missing.delete(ata),
102
+ });
103
+ }
104
+ await sendUnits(client, setup, { ...options, wait: true }, { batchSize: 1 });
105
+ }
106
+ const units = [];
107
+ /** 每个钱包最后一笔上链交易的 slot(扫 SOL 时按不早于它的状态读余额) */
108
+ let minSlot;
109
+ const track = (outcome) => {
110
+ if (outcome.slot !== null)
111
+ minSlot = Math.max(minSlot ?? 0, outcome.slot);
112
+ };
113
+ for (const item of tokenItems) {
114
+ const payer = feePayer ?? item.signer;
115
+ const signerList = payer.address === item.signer.address ? [] : [item.signer];
116
+ const target = targetAtas.get(item.token);
117
+ units.push({
118
+ instructions: transferInstructions(item.signer, payer, { ...item, to }, target, missing.has(target)),
119
+ payer,
120
+ signers: signerList,
121
+ continueOnError: true,
122
+ onUpdate: (outcome) => {
123
+ track(outcome);
124
+ report(item, outcome);
125
+ },
126
+ });
127
+ if (options.closeAccounts) {
128
+ const program = item.tokenProgram;
129
+ const account = getAssociatedTokenAddress(item.signer.address, item.token, program);
130
+ units.push({
131
+ instructions: [closeAccount(account, item.signer.address, item.signer.address, program)],
132
+ payer,
133
+ signers: signerList,
134
+ continueOnError: true,
135
+ onUpdate: (outcome) => {
136
+ track(outcome);
137
+ report(item, outcomeOf(item.result), toWriteResult(item.index, item.signer.address, outcome));
138
+ },
139
+ });
140
+ }
141
+ }
142
+ // 要扫 SOL 时必须等代币归集确认(扫的是最新余额,关闭账户退回的租金也要算进去)
143
+ await sendUnits(client, units, sweep ? { ...options, wait: true } : options, { batchSize: options.batchSize });
144
+ if (!sweep) {
145
+ return { results };
146
+ }
147
+ // 代币没有全部归集成功的钱包不扫 SOL:留着付之后重新归集的手续费
148
+ items
149
+ .filter((i) => i.native && active(i))
150
+ .forEach((native) => {
151
+ // dryRun 时代币项是 simulated,也算成功
152
+ const done = (status) => status === 'confirmed' || status === 'skipped' || (options.dryRun && status === 'simulated');
153
+ const unfinished = items.find((i) => !i.native && i.signer.address === native.signer.address && !done(i.result.status));
154
+ if (unfinished) {
155
+ report(native, emptyOutcome('skipped', `skipped: collecting ${unfinished.token} did not succeed (${unfinished.result.status})`));
156
+ }
157
+ });
158
+ const sweepItems = items.filter((i) => i.native && active(i));
159
+ if (!sweepItems.length || options.signal?.aborted) {
160
+ return { results };
161
+ }
162
+ if (options.dryRun) {
163
+ // 代币归集没有真的执行,扫 SOL 的金额要等归集之后才知道:只标记 simulated,不做模拟
164
+ sweepItems.forEach((i) => report(i, emptyOutcome('simulated')));
165
+ return { results };
166
+ }
167
+ let lamports;
168
+ try {
169
+ lamports = await client.solBalances(sweepItems.map((i) => i.signer.address), { minContextSlot: minSlot, signal: options.signal });
170
+ }
171
+ catch (err) {
172
+ // 代币归集已经发出:不能整体抛错(调用方会拿不到这些结果),扫 SOL 的项标记失败
173
+ sweepItems.forEach((i) => report(i, emptyOutcome('failed', `cannot read SOL balance: ${err instanceof Error ? err.message : String(err)}`)));
174
+ return { results };
175
+ }
176
+ const prepared = await Promise.all(sweepItems.map(async (item, k) => {
177
+ const balance = BigInt(lamports[k]?.balance ?? '0');
178
+ let amount = balance;
179
+ let fixed;
180
+ if (!feePayer) {
181
+ // 自己付手续费:单独一笔、手续费事先算好,转走剩下的全部(余额归零,不受租金下限限制)
182
+ const price = await priorityFeeFor(client, options, [item.signer.address, to]);
183
+ fixed = { computeUnits: SWEEP_COMPUTE_UNITS, price };
184
+ amount = balance - transactionFee(1, SWEEP_COMPUTE_UNITS, price);
185
+ }
186
+ const min = minAmount.get(item.token) ?? 0n;
187
+ if (amount <= 0n || amount < min) {
188
+ report(item, emptyOutcome('skipped', amount <= 0n ? 'skipped: SOL balance does not cover the fee' : 'skipped: below minAmount'));
189
+ return null;
190
+ }
191
+ item.amount = amount;
192
+ const payer = feePayer ?? item.signer;
193
+ return {
194
+ instructions: [systemTransfer(item.signer.address, to, amount)],
195
+ payer,
196
+ signers: payer.address === item.signer.address ? [] : [item.signer],
197
+ fixed,
198
+ continueOnError: true,
199
+ onUpdate: (outcome) => report(item, outcome),
200
+ };
201
+ }));
202
+ await sendUnits(client, prepared.filter((u) => u !== null), options, { batchSize: options.batchSize });
203
+ return { results };
204
+ }
205
+ /** 结果转回交易结果(更新 close 字段时保留转账本身的状态) */
206
+ function outcomeOf(r) {
207
+ return { status: r.status, signature: r.signature, slot: r.slot, fee: r.fee === null ? null : BigInt(r.fee), computeUnits: r.computeUnits, error: r.error };
208
+ }
209
+ function toCollectResult(item, to, outcome, close) {
210
+ return {
211
+ ...toWriteResult(item.index, item.signer.address, outcome),
212
+ to,
213
+ token: item.token,
214
+ native: item.native,
215
+ amount: item.amount.toString(),
216
+ formatted: item.decimals === null ? null : formatUnits(item.amount, item.decimals),
217
+ close,
218
+ };
219
+ }
220
+ //# sourceMappingURL=collect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../src/write/collect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Instruction } from './transaction.js';
2
+ export declare const COMPUTE_BUDGET_PROGRAM_ID = "ComputeBudget111111111111111111111111111111";
3
+ /** 单笔交易的计算单元上限 */
4
+ export declare const MAX_COMPUTE_UNITS = 1400000;
5
+ /** System Program Transfer:转 SOL */
6
+ export declare function systemTransfer(from: string, to: string, lamports: bigint): Instruction;
7
+ /** SPL Token / Token-2022 TransferChecked(校验 mint 和精度) */
8
+ export declare function transferChecked(source: string, mint: string, destination: string, owner: string, amount: bigint, decimals: number, tokenProgram: string): Instruction;
9
+ /** 创建关联代币账户(已存在时什么都不做),租金由 payer 付 */
10
+ export declare function createAssociatedTokenAccountIdempotent(payer: string, ata: string, owner: string, mint: string, tokenProgram: string): Instruction;
11
+ /** 关闭代币账户(余额必须为 0),租金退给 destination */
12
+ export declare function closeAccount(account: string, destination: string, owner: string, tokenProgram: string): Instruction;
13
+ export declare function setComputeUnitLimit(units: number): Instruction;
14
+ /** 优先费用:每个计算单元多付多少 micro-lamports */
15
+ export declare function setComputeUnitPrice(microLamports: bigint): Instruction;
16
+ //# sourceMappingURL=instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/write/instructions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,eAAO,MAAM,yBAAyB,gDAAgD,CAAA;AAEtF,kBAAkB;AAClB,eAAO,MAAM,iBAAiB,UAAY,CAAA;AAQ1C,oCAAoC;AACpC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAYtF;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAerK;AAED,sCAAsC;AACtC,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAajJ;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAUnH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAS9D;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAStE"}