@w3lib/solana-batch-call 0.4.0 → 0.5.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.
- package/CHANGELOG.md +31 -0
- package/README.md +231 -3
- package/dist/approvals.d.ts +129 -0
- package/dist/approvals.d.ts.map +1 -0
- package/dist/approvals.js +221 -0
- package/dist/approvals.js.map +1 -0
- package/dist/fees.d.ts +89 -0
- package/dist/fees.d.ts.map +1 -0
- package/dist/fees.js +166 -0
- package/dist/fees.js.map +1 -0
- package/dist/layout.d.ts +2 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +2 -2
- package/dist/layout.js.map +1 -1
- package/dist/lp.d.ts +8 -15
- package/dist/lp.d.ts.map +1 -1
- package/dist/lp.js +7 -31
- package/dist/lp.js.map +1 -1
- package/dist/names.d.ts +68 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +257 -0
- package/dist/names.js.map +1 -0
- package/dist/pools.d.ts +9 -0
- package/dist/pools.d.ts.map +1 -0
- package/dist/pools.js +45 -0
- package/dist/pools.js.map +1 -0
- package/dist/portfolio.d.ts +64 -0
- package/dist/portfolio.d.ts.map +1 -0
- package/dist/portfolio.js +57 -0
- package/dist/portfolio.js.map +1 -0
- package/dist/price.d.ts +90 -0
- package/dist/price.d.ts.map +1 -0
- package/dist/price.js +287 -0
- package/dist/price.js.map +1 -0
- package/dist/risk.d.ts +84 -0
- package/dist/risk.d.ts.map +1 -0
- package/dist/risk.js +211 -0
- package/dist/risk.js.map +1 -0
- package/dist/rpc.d.ts +2 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +33 -9
- package/dist/rpc.js.map +1 -1
- package/dist/subpaths/approvals.d.ts +29 -0
- package/dist/subpaths/approvals.d.ts.map +1 -0
- package/dist/subpaths/approvals.js +30 -0
- package/dist/subpaths/approvals.js.map +1 -0
- package/dist/subpaths/fees.d.ts +23 -0
- package/dist/subpaths/fees.d.ts.map +1 -0
- package/dist/subpaths/fees.js +25 -0
- package/dist/subpaths/fees.js.map +1 -0
- package/dist/subpaths/names.d.ts +37 -0
- package/dist/subpaths/names.d.ts.map +1 -0
- package/dist/subpaths/names.js +27 -0
- package/dist/subpaths/names.js.map +1 -0
- package/dist/subpaths/price.d.ts +40 -0
- package/dist/subpaths/price.d.ts.map +1 -0
- package/dist/subpaths/price.js +43 -0
- package/dist/subpaths/price.js.map +1 -0
- package/dist/subpaths/risk.d.ts +28 -0
- package/dist/subpaths/risk.d.ts.map +1 -0
- package/dist/subpaths/risk.js +30 -0
- package/dist/subpaths/risk.js.map +1 -0
- package/dist/subpaths/swap.d.ts +22 -0
- package/dist/subpaths/swap.d.ts.map +1 -0
- package/dist/subpaths/swap.js +21 -0
- package/dist/subpaths/swap.js.map +1 -0
- package/dist/subpaths/write.d.ts +1 -1
- package/dist/subpaths/write.d.ts.map +1 -1
- package/dist/subpaths/write.js +1 -1
- package/dist/subpaths/write.js.map +1 -1
- package/dist/swap/amm.d.ts +20 -0
- package/dist/swap/amm.d.ts.map +1 -0
- package/dist/swap/amm.js +77 -0
- package/dist/swap/amm.js.map +1 -0
- package/dist/swap/clmmMath.d.ts +24 -0
- package/dist/swap/clmmMath.d.ts.map +1 -0
- package/dist/swap/clmmMath.js +82 -0
- package/dist/swap/clmmMath.js.map +1 -0
- package/dist/swap/common.d.ts +68 -0
- package/dist/swap/common.d.ts.map +1 -0
- package/dist/swap/common.js +65 -0
- package/dist/swap/common.js.map +1 -0
- package/dist/swap/cpmm.d.ts +28 -0
- package/dist/swap/cpmm.d.ts.map +1 -0
- package/dist/swap/cpmm.js +113 -0
- package/dist/swap/cpmm.js.map +1 -0
- package/dist/swap/index.d.ts +145 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +349 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/swap/orca.d.ts +50 -0
- package/dist/swap/orca.d.ts.map +1 -0
- package/dist/swap/orca.js +382 -0
- package/dist/swap/orca.js.map +1 -0
- package/dist/swap/raydiumClmm.d.ts +62 -0
- package/dist/swap/raydiumClmm.d.ts.map +1 -0
- package/dist/swap/raydiumClmm.js +447 -0
- package/dist/swap/raydiumClmm.js.map +1 -0
- package/dist/tradeCheck.d.ts +45 -0
- package/dist/tradeCheck.d.ts.map +1 -0
- package/dist/tradeCheck.js +131 -0
- package/dist/tradeCheck.js.map +1 -0
- package/dist/write/instructions.d.ts +7 -0
- package/dist/write/instructions.d.ts.map +1 -1
- package/dist/write/instructions.js +24 -1
- package/dist/write/instructions.js.map +1 -1
- package/dist/write/transaction.d.ts +23 -0
- package/dist/write/transaction.d.ts.map +1 -1
- package/dist/write/transaction.js +50 -0
- package/dist/write/transaction.js.map +1 -1
- package/package.json +46 -14
- package/src/approvals.ts +358 -0
- package/src/fees.ts +259 -0
- package/src/layout.ts +2 -2
- package/src/lp.ts +8 -44
- package/src/names.ts +329 -0
- package/src/pools.ts +43 -0
- package/src/portfolio.ts +124 -0
- package/src/price.ts +366 -0
- package/src/risk.ts +243 -0
- package/src/rpc.ts +36 -9
- package/src/subpaths/approvals.ts +47 -0
- package/src/subpaths/fees.ts +41 -0
- package/src/subpaths/names.ts +45 -0
- package/src/subpaths/price.ts +62 -0
- package/src/subpaths/risk.ts +36 -0
- package/src/subpaths/swap.ts +41 -0
- package/src/subpaths/write.ts +2 -0
- package/src/swap/amm.ts +88 -0
- package/src/swap/clmmMath.ts +96 -0
- package/src/swap/common.ts +113 -0
- package/src/swap/cpmm.ts +132 -0
- package/src/swap/index.ts +467 -0
- package/src/swap/orca.ts +397 -0
- package/src/swap/raydiumClmm.ts +464 -0
- package/src/tradeCheck.ts +166 -0
- package/src/write/instructions.ts +26 -1
- package/src/write/transaction.ts +62 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 能不能买、能不能卖(/risk 的 tradeChecks):用 /swap 构建“SOL 买入 → 全部卖回 SOL”,放进一笔交易在主网模拟(simulateTransaction,不验签名、不上链),
|
|
3
|
+
* 看哪一步失败、来回损失多少。和 tokenRisks 分开:不用时打包不会带上 /swap 的代码
|
|
4
|
+
*/
|
|
5
|
+
import { base64 } from '@scure/base';
|
|
6
|
+
import { getAssociatedTokenAddress, isAddress } from './address.js';
|
|
7
|
+
import { NATIVE_MINT, TOKEN_PROGRAM_ID } from './constants.js';
|
|
8
|
+
import { parseTokenAccount, parseUnits } from './layout.js';
|
|
9
|
+
import { buildSwap } from './swap/index.js';
|
|
10
|
+
import { MAX_COMPUTE_UNITS, setComputeUnitLimit } from './write/instructions.js';
|
|
11
|
+
import { transactionErrorText } from './write/send.js';
|
|
12
|
+
import { MAX_ACCOUNT_LOCKS, PACKET_DATA_SIZE, compileMessage, serializeTransaction, transactionSize } from './write/transaction.js';
|
|
13
|
+
/**
|
|
14
|
+
* 模拟买入再卖出,判断能不能交易(每个代币两次报价 + 一次 simulateTransaction)。
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const [check] = await tradeChecks(client, [mint], { owner: myAddress })
|
|
18
|
+
* // { stage: 'ok', honeypot: false, roundTripLoss: 0.0061, flags: [] }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export async function tradeChecks(client, mints, options) {
|
|
22
|
+
if (!isAddress(options.owner))
|
|
23
|
+
throw new Error(`Invalid owner address: ${options.owner}`);
|
|
24
|
+
if (options.amount !== undefined && options.amountFormatted !== undefined)
|
|
25
|
+
throw new Error('Pass either amount or amountFormatted, not both');
|
|
26
|
+
const spent = options.amountFormatted !== undefined ? parseUnits(options.amountFormatted, 9) : options.amount !== undefined ? BigInt(options.amount) : 50000000n;
|
|
27
|
+
if (spent <= 0n)
|
|
28
|
+
throw new RangeError('amount must be greater than 0');
|
|
29
|
+
const [sol] = await client.solBalances([options.owner], { signal: options.signal });
|
|
30
|
+
// 留出两个代币账户的租金和手续费
|
|
31
|
+
if (!sol?.success || BigInt(sol.balance) < spent + 10000000n) {
|
|
32
|
+
throw new Error(`${options.owner} does not have enough SOL to simulate the trades (needs about ${spent + 10000000n} lamports)`);
|
|
33
|
+
}
|
|
34
|
+
return Promise.all(mints.map((mint) => checkOne(client, mint, spent, options)));
|
|
35
|
+
}
|
|
36
|
+
async function checkOne(client, mint, spent, options) {
|
|
37
|
+
const base = { mint, stage: null, honeypot: null, buyRoute: null, spent: spent.toString(), bought: null, sold: null, roundTripLoss: null, error: null, flags: [] };
|
|
38
|
+
const swapOptions = { protocols: options.protocols, intermediates: options.intermediates, pools: options.pools, discover: options.discover, signal: options.signal };
|
|
39
|
+
let buy;
|
|
40
|
+
try {
|
|
41
|
+
// 先只找直接兑换(买入、卖出放进一笔交易更容易放得下),没有时再找两跳
|
|
42
|
+
buy = await buildSwap(client, options.owner, { tokenIn: NATIVE_MINT, tokenOut: mint, amountIn: spent }, { ...swapOptions, intermediates: options.intermediates ?? [] }).catch((err) => {
|
|
43
|
+
if (options.intermediates || options.signal?.aborted)
|
|
44
|
+
throw err;
|
|
45
|
+
return buildSwap(client, options.owner, { tokenIn: NATIVE_MINT, tokenOut: mint, amountIn: spent }, swapOptions);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (options.signal?.aborted)
|
|
50
|
+
throw err;
|
|
51
|
+
return { ...base, stage: 'no-pool', error: errorText(err), flags: ['no-pool'] };
|
|
52
|
+
}
|
|
53
|
+
const buyRoute = buy.route.hops.map((h) => ({ protocol: h.protocol, pool: h.pool }));
|
|
54
|
+
let sell;
|
|
55
|
+
try {
|
|
56
|
+
// 卖出按买入的最少收到算,走买入的同一条路线(反过来),最少换回不设下限(只看能不能卖、卖回多少)
|
|
57
|
+
sell = await buildSwap(client, options.owner, { tokenIn: mint, tokenOut: NATIVE_MINT, amountIn: buy.amountOutMin }, { protocols: options.protocols, discover: false, pools: buy.route.hops.map((h) => h.pool), intermediates: buy.route.path.slice(1, -1), slippage: 0.999999, signal: options.signal });
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
if (options.signal?.aborted)
|
|
61
|
+
throw err;
|
|
62
|
+
// 同一条路线反过来报不了价(如走得超出 Orca 的 3 个 tick 数组):不能断定卖不出
|
|
63
|
+
return { ...base, buyRoute, error: `Cannot quote the sell: ${errorText(err)}` };
|
|
64
|
+
}
|
|
65
|
+
const tokenProgram = (await client.accounts([mint], { signal: options.signal }))[0]?.owner ?? TOKEN_PROGRAM_ID;
|
|
66
|
+
const tokenAccount = getAssociatedTokenAddress(options.owner, mint, tokenProgram);
|
|
67
|
+
const wsol = getAssociatedTokenAddress(options.owner, NATIVE_MINT, TOKEN_PROGRAM_ID);
|
|
68
|
+
const buyIxs = buy.steps.flatMap((s) => s.instructions);
|
|
69
|
+
// 卖出最后不关闭 wSOL 账户:读模拟后的余额就是卖回的 SOL
|
|
70
|
+
const sellIxs = sell.steps.flatMap((s) => s.instructions).filter((ix, i, all) => !(i === all.length - 1 && ix.programId === TOKEN_PROGRAM_ID && ix.data[0] === 9));
|
|
71
|
+
const instructions = [setComputeUnitLimit(MAX_COMPUTE_UNITS), ...buyIxs, ...sellIxs];
|
|
72
|
+
const message = compileMessage(options.owner, instructions, '11111111111111111111111111111111');
|
|
73
|
+
if (transactionSize(message) > PACKET_DATA_SIZE || message.accountKeys.length > MAX_ACCOUNT_LOCKS) {
|
|
74
|
+
return { ...base, buyRoute, error: 'The buy and sell routes do not fit in one transaction' };
|
|
75
|
+
}
|
|
76
|
+
const [[before, tokenBefore], sim] = await Promise.all([
|
|
77
|
+
client.accounts([wsol, tokenAccount], { signal: options.signal }),
|
|
78
|
+
client.request('simulateTransaction', [
|
|
79
|
+
base64.encode(serializeTransaction(message, message.signers.map(() => null))),
|
|
80
|
+
{ encoding: 'base64', sigVerify: false, replaceRecentBlockhash: true, commitment: 'confirmed', accounts: { encoding: 'base64', addresses: [tokenAccount, wsol] } },
|
|
81
|
+
], { signal: options.signal }),
|
|
82
|
+
]);
|
|
83
|
+
if (sim.value.err) {
|
|
84
|
+
const failed = sim.value.err.InstructionError?.[0];
|
|
85
|
+
const error = transactionErrorText(sim.value.err, sim.value.logs);
|
|
86
|
+
// 第 0 条是计算单元上限;之后是买入的指令
|
|
87
|
+
if (failed === undefined)
|
|
88
|
+
return { ...base, buyRoute, error };
|
|
89
|
+
if (failed <= buyIxs.length)
|
|
90
|
+
return { ...base, buyRoute, stage: 'buy-failed', error, flags: ['cannot-buy'] };
|
|
91
|
+
return { ...base, buyRoute, stage: 'sell-failed', honeypot: true, error, flags: ['honeypot'] };
|
|
92
|
+
}
|
|
93
|
+
const amountOf = (a) => {
|
|
94
|
+
try {
|
|
95
|
+
return a ? parseTokenAccount(base64.decode(a.data[0])).amount : 0n;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return 0n;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const [afterToken, afterWsol] = sim.value.accounts ?? [];
|
|
102
|
+
const prior = before ? safeAmount(before.data) : 0n;
|
|
103
|
+
// 原来就有 wSOL:买入先用掉已有的 wSOL,不够的部分包装
|
|
104
|
+
const sold = amountOf(afterWsol) - (prior > spent ? prior - spent : 0n);
|
|
105
|
+
// 实际买到的 = 卖出的(买入的最少收到)+ 卖完后代币账户里多出来的
|
|
106
|
+
const bought = BigInt(buy.amountOutMin) + amountOf(afterToken) - (tokenBefore ? safeAmount(tokenBefore.data) : 0n);
|
|
107
|
+
// 只卖出了买入的最少收到(买到的一部分):按卖出的比例折算花掉的 SOL
|
|
108
|
+
const sellAmount = BigInt(buy.amountOutMin);
|
|
109
|
+
const roundTripLoss = bought > 0n ? Math.max(0, 1 - (Number(sold) * Number(bought)) / (Number(spent) * Number(sellAmount))) : null;
|
|
110
|
+
const flags = roundTripLoss !== null && roundTripLoss > 0.1 ? ['high-round-trip-loss'] : [];
|
|
111
|
+
return {
|
|
112
|
+
...base,
|
|
113
|
+
buyRoute,
|
|
114
|
+
stage: 'ok',
|
|
115
|
+
honeypot: false,
|
|
116
|
+
bought: bought.toString(),
|
|
117
|
+
sold: sold.toString(),
|
|
118
|
+
roundTripLoss,
|
|
119
|
+
flags,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function safeAmount(data) {
|
|
123
|
+
try {
|
|
124
|
+
return parseTokenAccount(data).amount;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return 0n;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const errorText = (err) => (err instanceof Error ? err.message : String(err));
|
|
131
|
+
//# sourceMappingURL=tradeCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tradeCheck.js","sourceRoot":"","sources":["../src/tradeCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,13 @@ export declare function transferChecked(source: string, mint: string, destinatio
|
|
|
10
10
|
export declare function createAssociatedTokenAccountIdempotent(payer: string, ata: string, owner: string, mint: string, tokenProgram: string): Instruction;
|
|
11
11
|
/** 关闭代币账户(余额必须为 0),租金退给 destination */
|
|
12
12
|
export declare function closeAccount(account: string, destination: string, owner: string, tokenProgram: string): Instruction;
|
|
13
|
+
/** 撤销代币账户的授权(Approve 设置的 delegate),owner 签名 */
|
|
14
|
+
export declare function revoke(account: string, owner: string, tokenProgram: string): Instruction;
|
|
15
|
+
/**
|
|
16
|
+
* Token-2022 HarvestWithheldTokensToMint:把代币账户里暂存的转账手续费收到 mint 上(任何人都可以调用,不需要签名)。
|
|
17
|
+
* 账户里有未提取的手续费时关不掉,关闭前先调用它
|
|
18
|
+
*/
|
|
19
|
+
export declare function harvestWithheldTokensToMint(mint: string, accounts: readonly string[]): Instruction;
|
|
13
20
|
export declare function setComputeUnitLimit(units: number): Instruction;
|
|
14
21
|
/** 优先费用:每个计算单元多付多少 micro-lamports */
|
|
15
22
|
export declare function setComputeUnitPrice(microLamports: bigint): Instruction;
|
|
@@ -1 +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"}
|
|
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,+CAA+C;AAC/C,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CASxF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAOlG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAS9D;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAStE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ASSOCIATED_TOKEN_PROGRAM_ID, SYSTEM_PROGRAM_ID } from '../constants.js';
|
|
1
|
+
import { ASSOCIATED_TOKEN_PROGRAM_ID, SYSTEM_PROGRAM_ID, TOKEN_2022_PROGRAM_ID } from '../constants.js';
|
|
2
2
|
export const COMPUTE_BUDGET_PROGRAM_ID = 'ComputeBudget111111111111111111111111111111';
|
|
3
3
|
/** 单笔交易的计算单元上限 */
|
|
4
4
|
export const MAX_COMPUTE_UNITS = 1_400_000;
|
|
@@ -65,6 +65,29 @@ export function closeAccount(account, destination, owner, tokenProgram) {
|
|
|
65
65
|
data: new Uint8Array([9]),
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
+
/** 撤销代币账户的授权(Approve 设置的 delegate),owner 签名 */
|
|
69
|
+
export function revoke(account, owner, tokenProgram) {
|
|
70
|
+
return {
|
|
71
|
+
programId: tokenProgram,
|
|
72
|
+
keys: [
|
|
73
|
+
{ pubkey: account, isSigner: false, isWritable: true },
|
|
74
|
+
{ pubkey: owner, isSigner: true, isWritable: false },
|
|
75
|
+
],
|
|
76
|
+
data: new Uint8Array([5]),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Token-2022 HarvestWithheldTokensToMint:把代币账户里暂存的转账手续费收到 mint 上(任何人都可以调用,不需要签名)。
|
|
81
|
+
* 账户里有未提取的手续费时关不掉,关闭前先调用它
|
|
82
|
+
*/
|
|
83
|
+
export function harvestWithheldTokensToMint(mint, accounts) {
|
|
84
|
+
return {
|
|
85
|
+
programId: TOKEN_2022_PROGRAM_ID,
|
|
86
|
+
keys: [{ pubkey: mint, isSigner: false, isWritable: true }, ...accounts.map((pubkey) => ({ pubkey, isSigner: false, isWritable: true }))],
|
|
87
|
+
// TransferFeeExtension(26)的 HarvestWithheldTokensToMint(4)
|
|
88
|
+
data: new Uint8Array([26, 4]),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
68
91
|
export function setComputeUnitLimit(units) {
|
|
69
92
|
return {
|
|
70
93
|
programId: COMPUTE_BUDGET_PROGRAM_ID,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/write/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/write/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,5 +71,28 @@ export declare function messageSigners(message: Uint8Array): string[];
|
|
|
71
71
|
export declare function sameBytes(a: Uint8Array, b: Uint8Array): boolean;
|
|
72
72
|
/** 消息里的 recent blockhash(legacy 和 v0 消息都支持) */
|
|
73
73
|
export declare function messageBlockhash(message: Uint8Array): string;
|
|
74
|
+
/** 解析后的消息(legacy / v0) */
|
|
75
|
+
export interface ParsedMessage {
|
|
76
|
+
version: 'legacy' | 0;
|
|
77
|
+
/** 需要的签名数 */
|
|
78
|
+
signatures: number;
|
|
79
|
+
/** 消息里直接列出的账户 */
|
|
80
|
+
staticKeys: string[];
|
|
81
|
+
/** staticKeys 里可写的 */
|
|
82
|
+
writable: string[];
|
|
83
|
+
instructions: Array<{
|
|
84
|
+
programId: string;
|
|
85
|
+
accounts: number[];
|
|
86
|
+
data: Uint8Array;
|
|
87
|
+
}>;
|
|
88
|
+
/** v0 的地址查找表:表地址 + 要用的可写 / 只读下标 */
|
|
89
|
+
lookups: Array<{
|
|
90
|
+
table: string;
|
|
91
|
+
writable: number[];
|
|
92
|
+
readonly: number[];
|
|
93
|
+
}>;
|
|
94
|
+
}
|
|
95
|
+
/** 解析 legacy / v0 消息;其他版本抛错 */
|
|
96
|
+
export declare function parseMessage(message: Uint8Array): ParsedMessage;
|
|
74
97
|
export {};
|
|
75
98
|
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/write/transaction.ts"],"names":[],"mappings":"AAEA,eAAe;AACf,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,mBAAmB;AACnB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,KAAK,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAAA;AAElD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,SAAS,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,GACnI;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,CAAA;AAE9G,wBAAwB;AACxB,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC,mBAAmB;AACnB,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAMnC,yBAAyB;AACzB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAQzE;AAsBD,wBAAwB;AACxB,MAAM,WAAW,eAAe;IAC9B,eAAe;IACf,KAAK,EAAE,UAAU,CAAA;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,gBAAgB;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAmCtH;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEhE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,UAAU,CAOlJ;AAcD,yBAAyB;AACzB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CASrG;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAM5D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAK5D"}
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/write/transaction.ts"],"names":[],"mappings":"AAEA,eAAe;AACf,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,mBAAmB;AACnB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,KAAK,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAAA;AAElD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,SAAS,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,GACnI;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,CAAA;AAE9G,wBAAwB;AACxB,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC,mBAAmB;AACnB,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAMnC,yBAAyB;AACzB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAQzE;AAsBD,wBAAwB;AACxB,MAAM,WAAW,eAAe;IAC9B,eAAe;IACf,KAAK,EAAE,UAAU,CAAA;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,gBAAgB;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAmCtH;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEhE;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,UAAU,CAOlJ;AAcD,yBAAyB;AACzB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CASrG;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAM5D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAK5D;AAED,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAA;IACrB,aAAa;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;IAChF,mCAAmC;IACnC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAC1E;AAED,+BAA+B;AAC/B,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,aAAa,CA6C/D"}
|
|
@@ -130,4 +130,54 @@ export function messageBlockhash(message) {
|
|
|
130
130
|
const start = keysStart + 32 * keys;
|
|
131
131
|
return encodeAddress(message.slice(start, start + 32));
|
|
132
132
|
}
|
|
133
|
+
/** 解析 legacy / v0 消息;其他版本抛错 */
|
|
134
|
+
export function parseMessage(message) {
|
|
135
|
+
const first = message[0];
|
|
136
|
+
const versioned = (first & 0x80) !== 0;
|
|
137
|
+
if (versioned && (first & 0x7f) !== 0) {
|
|
138
|
+
throw new Error(`Unsupported transaction version ${first & 0x7f} (only legacy and v0)`);
|
|
139
|
+
}
|
|
140
|
+
let o = versioned ? 1 : 0;
|
|
141
|
+
const byte = () => {
|
|
142
|
+
const b = message[o++];
|
|
143
|
+
if (b === undefined)
|
|
144
|
+
throw new Error('Invalid transaction: truncated');
|
|
145
|
+
return b;
|
|
146
|
+
};
|
|
147
|
+
const take = (n) => {
|
|
148
|
+
if (o + n > message.length)
|
|
149
|
+
throw new Error('Invalid transaction: truncated');
|
|
150
|
+
const out = message.slice(o, o + n);
|
|
151
|
+
o += n;
|
|
152
|
+
return out;
|
|
153
|
+
};
|
|
154
|
+
const compact = () => {
|
|
155
|
+
const [value, next] = readCompactU16(message, o);
|
|
156
|
+
o = next;
|
|
157
|
+
return value;
|
|
158
|
+
};
|
|
159
|
+
const [required, readonlySigned, readonlyUnsigned] = [byte(), byte(), byte()];
|
|
160
|
+
const keyCount = compact();
|
|
161
|
+
const staticKeys = Array.from({ length: keyCount }, () => encodeAddress(take(32)));
|
|
162
|
+
take(32); // blockhash
|
|
163
|
+
const instructions = Array.from({ length: compact() }, () => {
|
|
164
|
+
const program = byte();
|
|
165
|
+
const accounts = Array.from({ length: compact() }, byte);
|
|
166
|
+
const data = take(compact());
|
|
167
|
+
const programId = staticKeys[program];
|
|
168
|
+
if (programId === undefined)
|
|
169
|
+
throw new Error('Invalid transaction: bad program index');
|
|
170
|
+
return { programId, accounts, data };
|
|
171
|
+
});
|
|
172
|
+
const lookups = versioned
|
|
173
|
+
? Array.from({ length: compact() }, () => {
|
|
174
|
+
const table = encodeAddress(take(32));
|
|
175
|
+
const writable = Array.from({ length: compact() }, byte);
|
|
176
|
+
const readonly = Array.from({ length: compact() }, byte);
|
|
177
|
+
return { table, writable, readonly };
|
|
178
|
+
})
|
|
179
|
+
: [];
|
|
180
|
+
const writable = staticKeys.filter((_, i) => (i < required ? i < required - readonlySigned : i < keyCount - readonlyUnsigned));
|
|
181
|
+
return { version: versioned ? 0 : 'legacy', signatures: required, staticKeys, writable, instructions, lookups };
|
|
182
|
+
}
|
|
133
183
|
//# sourceMappingURL=transaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/write/transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/write/transaction.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@w3lib/solana-batch-call",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Batched Solana reads: SOL / SPL / Token-2022 balances, token metadata, NFTs; batch transfer, collect and program calls (packed transactions, fee payer). Auto-batching JSON-RPC, getMultipleAccounts chunking, RPC failover. No Solana SDK dependency.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"solana",
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"batch",
|
|
11
11
|
"getMultipleAccounts",
|
|
12
12
|
"json-rpc",
|
|
13
|
-
"batch-transfer"
|
|
13
|
+
"batch-transfer",
|
|
14
|
+
"swap",
|
|
15
|
+
"raydium",
|
|
16
|
+
"orca"
|
|
14
17
|
],
|
|
15
18
|
"license": "MIT",
|
|
16
19
|
"author": "L",
|
|
@@ -33,6 +36,30 @@
|
|
|
33
36
|
"./liquidity": {
|
|
34
37
|
"types": "./dist/subpaths/liquidity.d.ts",
|
|
35
38
|
"import": "./dist/subpaths/liquidity.js"
|
|
39
|
+
},
|
|
40
|
+
"./price": {
|
|
41
|
+
"types": "./dist/subpaths/price.d.ts",
|
|
42
|
+
"import": "./dist/subpaths/price.js"
|
|
43
|
+
},
|
|
44
|
+
"./approvals": {
|
|
45
|
+
"types": "./dist/subpaths/approvals.d.ts",
|
|
46
|
+
"import": "./dist/subpaths/approvals.js"
|
|
47
|
+
},
|
|
48
|
+
"./names": {
|
|
49
|
+
"types": "./dist/subpaths/names.d.ts",
|
|
50
|
+
"import": "./dist/subpaths/names.js"
|
|
51
|
+
},
|
|
52
|
+
"./fees": {
|
|
53
|
+
"types": "./dist/subpaths/fees.d.ts",
|
|
54
|
+
"import": "./dist/subpaths/fees.js"
|
|
55
|
+
},
|
|
56
|
+
"./swap": {
|
|
57
|
+
"types": "./dist/subpaths/swap.d.ts",
|
|
58
|
+
"import": "./dist/subpaths/swap.js"
|
|
59
|
+
},
|
|
60
|
+
"./risk": {
|
|
61
|
+
"types": "./dist/subpaths/risk.d.ts",
|
|
62
|
+
"import": "./dist/subpaths/risk.js"
|
|
36
63
|
}
|
|
37
64
|
},
|
|
38
65
|
"files": [
|
|
@@ -46,17 +73,6 @@
|
|
|
46
73
|
"engines": {
|
|
47
74
|
"node": ">=20.19.0"
|
|
48
75
|
},
|
|
49
|
-
"scripts": {
|
|
50
|
-
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
51
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
52
|
-
"test": "vitest run",
|
|
53
|
-
"test:live": "LIVE=1 vitest run test/live.test.ts",
|
|
54
|
-
"test:live:lp": "LIVE=1 vitest run test/lp-live.test.ts",
|
|
55
|
-
"test:live:liquidity": "LIVE=1 vitest run test/liquidity-live.test.ts",
|
|
56
|
-
"prepublishOnly": "pnpm typecheck && pnpm test && pnpm build",
|
|
57
|
-
"demo": "vite demo",
|
|
58
|
-
"demo:build": "vite build demo"
|
|
59
|
-
},
|
|
60
76
|
"repository": {
|
|
61
77
|
"type": "git",
|
|
62
78
|
"url": "git+https://github.com/web3-lib/libs.git",
|
|
@@ -76,5 +92,21 @@
|
|
|
76
92
|
"devDependencies": {
|
|
77
93
|
"@noble/curves": "^2.4.0",
|
|
78
94
|
"vite": "^8.3.4"
|
|
95
|
+
},
|
|
96
|
+
"scripts": {
|
|
97
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
98
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
99
|
+
"test": "vitest run",
|
|
100
|
+
"test:live": "LIVE=1 vitest run test/live.test.ts",
|
|
101
|
+
"test:live:lp": "LIVE=1 vitest run test/lp-live.test.ts",
|
|
102
|
+
"test:live:liquidity": "LIVE=1 vitest run test/liquidity-live.test.ts",
|
|
103
|
+
"test:live:price": "LIVE=1 vitest run test/price-live.test.ts",
|
|
104
|
+
"test:live:approvals": "LIVE=1 vitest run test/approvals-live.test.ts",
|
|
105
|
+
"test:live:names": "LIVE=1 vitest run test/names-live.test.ts",
|
|
106
|
+
"test:live:fees": "LIVE=1 vitest run test/fees-live.test.ts",
|
|
107
|
+
"test:live:swap": "LIVE=1 vitest run test/swap-live.test.ts",
|
|
108
|
+
"test:live:risk": "LIVE=1 vitest run test/risk-live.test.ts",
|
|
109
|
+
"demo": "vite demo",
|
|
110
|
+
"demo:build": "vite build demo"
|
|
79
111
|
}
|
|
80
|
-
}
|
|
112
|
+
}
|