@w3lib/solana-batch-call 0.4.0 → 0.6.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 +45 -0
- package/README.md +343 -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/batchPlan.d.ts +52 -0
- package/dist/batchPlan.d.ts.map +1 -0
- package/dist/batchPlan.js +85 -0
- package/dist/batchPlan.js.map +1 -0
- package/dist/claim.d.ts +161 -0
- package/dist/claim.d.ts.map +1 -0
- package/dist/claim.js +197 -0
- package/dist/claim.js.map +1 -0
- package/dist/decode.d.ts +22 -0
- package/dist/decode.d.ts.map +1 -0
- package/dist/decode.js +187 -0
- package/dist/decode.js.map +1 -0
- package/dist/describe.d.ts +26 -0
- package/dist/describe.d.ts.map +1 -0
- package/dist/describe.js +58 -0
- package/dist/describe.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/history.d.ts +125 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +231 -0
- package/dist/history.js.map +1 -0
- package/dist/historyHelius.d.ts +52 -0
- package/dist/historyHelius.d.ts.map +1 -0
- package/dist/historyHelius.js +125 -0
- package/dist/historyHelius.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/liquidity/orca.d.ts +6 -0
- package/dist/liquidity/orca.d.ts.map +1 -1
- package/dist/liquidity/orca.js +14 -3
- package/dist/liquidity/orca.js.map +1 -1
- package/dist/liquidity/raydiumClmm.d.ts +6 -0
- package/dist/liquidity/raydiumClmm.d.ts.map +1 -1
- package/dist/liquidity/raydiumClmm.js +12 -5
- package/dist/liquidity/raydiumClmm.js.map +1 -1
- package/dist/lp.d.ts +55 -15
- package/dist/lp.d.ts.map +1 -1
- package/dist/lp.js +98 -46
- package/dist/lp.js.map +1 -1
- package/dist/lpMath.d.ts +22 -0
- package/dist/lpMath.d.ts.map +1 -1
- package/dist/lpMath.js +21 -0
- package/dist/lpMath.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/programs.d.ts +19 -0
- package/dist/programs.d.ts.map +1 -0
- package/dist/programs.js +175 -0
- package/dist/programs.js.map +1 -0
- package/dist/reclaim.d.ts +190 -0
- package/dist/reclaim.d.ts.map +1 -0
- package/dist/reclaim.js +399 -0
- package/dist/reclaim.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 +36 -10
- package/dist/rpc.js.map +1 -1
- package/dist/simulate.d.ts +106 -0
- package/dist/simulate.d.ts.map +1 -0
- package/dist/simulate.js +418 -0
- package/dist/simulate.js.map +1 -0
- 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/claim.d.ts +31 -0
- package/dist/subpaths/claim.d.ts.map +1 -0
- package/dist/subpaths/claim.js +31 -0
- package/dist/subpaths/claim.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/history.d.ts +21 -0
- package/dist/subpaths/history.d.ts.map +1 -0
- package/dist/subpaths/history.js +22 -0
- package/dist/subpaths/history.js.map +1 -0
- package/dist/subpaths/lp.d.ts +2 -2
- package/dist/subpaths/lp.d.ts.map +1 -1
- package/dist/subpaths/lp.js +2 -2
- package/dist/subpaths/lp.js.map +1 -1
- 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/reclaim.d.ts +34 -0
- package/dist/subpaths/reclaim.d.ts.map +1 -0
- package/dist/subpaths/reclaim.js +34 -0
- package/dist/subpaths/reclaim.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/simulate.d.ts +22 -0
- package/dist/subpaths/simulate.d.ts.map +1 -0
- package/dist/subpaths/simulate.js +23 -0
- package/dist/subpaths/simulate.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 +9 -0
- package/dist/write/instructions.d.ts.map +1 -1
- package/dist/write/instructions.js +40 -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 +66 -14
- package/src/approvals.ts +358 -0
- package/src/batchPlan.ts +137 -0
- package/src/claim.ts +323 -0
- package/src/decode.ts +202 -0
- package/src/describe.ts +77 -0
- package/src/fees.ts +259 -0
- package/src/history.ts +336 -0
- package/src/historyHelius.ts +136 -0
- package/src/layout.ts +2 -2
- package/src/liquidity/orca.ts +15 -5
- package/src/liquidity/raydiumClmm.ts +13 -5
- package/src/lp.ts +148 -59
- package/src/lpMath.ts +38 -0
- 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/programs.ts +216 -0
- package/src/reclaim.ts +547 -0
- package/src/risk.ts +243 -0
- package/src/rpc.ts +39 -10
- package/src/simulate.ts +535 -0
- package/src/subpaths/approvals.ts +47 -0
- package/src/subpaths/claim.ts +53 -0
- package/src/subpaths/fees.ts +41 -0
- package/src/subpaths/history.ts +38 -0
- package/src/subpaths/lp.ts +5 -1
- package/src/subpaths/names.ts +45 -0
- package/src/subpaths/price.ts +62 -0
- package/src/subpaths/reclaim.ts +57 -0
- package/src/subpaths/risk.ts +36 -0
- package/src/subpaths/simulate.ts +37 -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 +43 -1
- package/src/write/transaction.ts +62 -0
package/dist/lpMath.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lpMath.d.ts","sourceRoot":"","sources":["../src/lpMath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,QAAQ,UAAU,CAAA;AAC/B,eAAO,MAAM,QAAQ,SAAS,CAAA;AA+B9B,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU3D;AA8CD,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBxD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWvL;AAcD,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,OAAO,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"lpMath.d.ts","sourceRoot":"","sources":["../src/lpMath.ts"],"names":[],"mappings":"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"}
|
package/dist/lpMath.js
CHANGED
|
@@ -163,6 +163,27 @@ export function getFeesOwed(owed, liquidity, growthInside, growthLast) {
|
|
|
163
163
|
const delta = (liquidity * wrap(growthInside - growthLast)) >> 64n;
|
|
164
164
|
return owed + (delta > U64_MAX ? 0n : delta);
|
|
165
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* 池子在 now 时刻的奖励全局增长:程序每次操作池子(交易、增减流动性、领取)前先把排放按时间摊给当前的流动性,
|
|
168
|
+
* Q64.64:growth += Δt · emissions_per_second / liquidity(向下取整,u128 回绕)。
|
|
169
|
+
* Raydium:now ≤ open_time 不动,Δt 到 end_time 为止;Orca:池子流动性为 0 或 Δt 为 0 不动
|
|
170
|
+
*/
|
|
171
|
+
export function rewardGrowthGlobal(liquidity, reward, now) {
|
|
172
|
+
if (!reward.initialized || liquidity === 0n || now <= reward.openTime) {
|
|
173
|
+
return reward.growthGlobalX64;
|
|
174
|
+
}
|
|
175
|
+
const latest = now < reward.endTime ? now : reward.endTime;
|
|
176
|
+
const delta = latest > reward.lastUpdated ? latest - reward.lastUpdated : 0n;
|
|
177
|
+
return wrap(reward.growthGlobalX64 + (delta * reward.emissionsPerSecondX64) / liquidity);
|
|
178
|
+
}
|
|
179
|
+
/** 区间内某个奖励的增长(u128 回绕),tick 未初始化的处理同 getFeeGrowthInside */
|
|
180
|
+
export function getRewardGrowthInside(tick, tickLower, lower, tickUpper, upper, index, global) {
|
|
181
|
+
const lowerOutside = lower.rewardGrowthsOutside?.[index] ?? 0n;
|
|
182
|
+
const upperOutside = upper.rewardGrowthsOutside?.[index] ?? 0n;
|
|
183
|
+
const below = !lower.initialized ? global : tick < tickLower ? wrap(global - lowerOutside) : lowerOutside;
|
|
184
|
+
const above = !upper.initialized ? 0n : tick < tickUpper ? upperOutside : wrap(global - upperOutside);
|
|
185
|
+
return wrap(global - below - above);
|
|
186
|
+
}
|
|
166
187
|
/** Q64.64 sqrt 价格 → token1 / token0 的价格(按精度换算,浮点数,只用于展示) */
|
|
167
188
|
export function sqrtPriceToPrice(sqrtPrice, decimals0, decimals1) {
|
|
168
189
|
// 先取高位再转浮点,避免 2^128 级别的整数转换丢精度后再平方
|
package/dist/lpMath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lpMath.js","sourceRoot":"","sources":["../src/lpMath.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lpMath.js","sourceRoot":"","sources":["../src/lpMath.ts"],"names":[],"mappings":"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"}
|
package/dist/names.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { RequestOptions, SolanaClient } from './client.js';
|
|
2
|
+
/** SPL Name Service 程序 */
|
|
3
|
+
export declare const NAME_PROGRAM_ID = "namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX";
|
|
4
|
+
/** SNS 顶级域(`.sns`,2026-10 之前叫 `.sol`,链上是同一批账户)的根账户 */
|
|
5
|
+
export declare const SNS_ROOT_DOMAIN = "58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx";
|
|
6
|
+
export interface NamesOptions extends RequestOptions {
|
|
7
|
+
/**
|
|
8
|
+
* 也按 SNS 解析 `.sol` 名字(当作同名的 `.sns`)。默认 false:`.sol` 正在迁到另一个注册服务(SRS),
|
|
9
|
+
* SNS 官方 SDK 从 slot 452,825,395(约 2026-10-15)起不再解析 `.sol`,以后同一个 `.sol` 名字可能属于别人
|
|
10
|
+
*/
|
|
11
|
+
legacySol?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 域名的 owner 是 PDA(程序账户,不是钱包)时也作为地址返回,默认 false(与官方 SDK 一致:转给 PDA 的资产可能取不出来,address 为 null)
|
|
14
|
+
*/
|
|
15
|
+
allowPda?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 地址的来源(与 SNS 官方 SDK 的解析顺序相同):
|
|
19
|
+
* - nft:域名代币化成了 NFT,地址是 NFT 的持有人(要用 getTokenLargestAccounts 找,节点不支持时 address 为 null)
|
|
20
|
+
* - record-v2 / record-v1:域名设置的 SOL 记录(V2 要求 owner 验证过、没有过期;V1 要求 owner 的签名)
|
|
21
|
+
* - owner:域名的 owner
|
|
22
|
+
*/
|
|
23
|
+
export type NameSource = 'nft' | 'record-v2' | 'record-v1' | 'owner';
|
|
24
|
+
export interface ResolvedName {
|
|
25
|
+
/** 传入的名字(原样) */
|
|
26
|
+
name: string;
|
|
27
|
+
/** 规范化后的名字(小写、去掉空格,后缀为 .sns);名字不合法时为 null */
|
|
28
|
+
normalized: string | null;
|
|
29
|
+
/** 解析出的地址(SOL 记录,没有时为 owner);没有注册、名字不合法、记录不合法时为 null */
|
|
30
|
+
address: string | null;
|
|
31
|
+
/** 域名的 owner(代币化的域名是 NFT 的持有人) */
|
|
32
|
+
owner: string | null;
|
|
33
|
+
source: NameSource | null;
|
|
34
|
+
/** 解析这个名字的服务('sns');名字不归 SNS 管时为 null */
|
|
35
|
+
service: 'sns' | null;
|
|
36
|
+
}
|
|
37
|
+
export interface AddressName {
|
|
38
|
+
/** 传入的地址(原样) */
|
|
39
|
+
address: string;
|
|
40
|
+
/** 主域名(如 'bonfida.sns'),核对过属于这个地址;没有设置或已经转给别人时为 null */
|
|
41
|
+
name: string | null;
|
|
42
|
+
service: 'sns' | null;
|
|
43
|
+
}
|
|
44
|
+
/** 域名对应的名字账户:'bonfida' 或子域名 'sub.bonfida'(不带后缀);子域名的种子是 '\0' + 子域名,parent 是父域名 */
|
|
45
|
+
export declare function snsDomainKey(domain: string): {
|
|
46
|
+
key: string;
|
|
47
|
+
parent: string | null;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* 名字 → 地址(一次 getMultipleAccounts 读域名、NFT 记录、两版 SOL 记录;代币化的域名另外找 NFT 持有人)。
|
|
51
|
+
* 解析顺序同官方 SDK:代币化 → NFT 持有人;V2 SOL 记录(验证过、没过期);V1 SOL 记录(owner 签过名);owner(是 PDA 时默认不返回)
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* await resolveNames(client, ['bonfida.sns', 'toly.sns'])
|
|
55
|
+
* // [{ name: 'bonfida.sns', normalized: 'bonfida.sns', address: 'Fw1E…Lb1v', owner: 'Fw1E…Lb1v', source: 'owner', service: 'sns' }, …]
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveNames(client: SolanaClient, names: readonly string[], options?: NamesOptions): Promise<ResolvedName[]>;
|
|
59
|
+
/**
|
|
60
|
+
* 地址 → 主域名:读地址设置的主域名(favourite domain),再读域名和反查记录拼出名字,核对名字确实推导出这个域名账户、
|
|
61
|
+
* 并且域名属于这个地址(owner 是它,或代币化后它持有 NFT)——换了 owner 的旧设置不算。通常两次 getMultipleAccounts(子域名三次)
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* await lookupAddresses(client, [wallet]) // [{ address: wallet, name: 'bonfida.sns', service: 'sns' }]
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function lookupAddresses(client: SolanaClient, addresses: readonly string[], options?: RequestOptions): Promise<AddressName[]>;
|
|
68
|
+
//# sourceMappingURL=names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/D,0BAA0B;AAC1B,eAAO,MAAM,eAAe,gDAAgD,CAAA;AAC5E,sDAAsD;AACtD,eAAO,MAAM,eAAe,iDAAiD,CAAA;AAe7E,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,wDAAwD;IACxD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACzB,yCAAyC;IACzC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,KAAK,GAAG,IAAI,CAAA;CACtB;AASD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAUnF;AA4HD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqCtI;AAeD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8C9I"}
|
package/dist/names.js
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 域名解析(子路径 `@w3lib/solana-batch-call/names`):SNS(Solana Name Service,Bonfida),名字 → 地址、地址 → 主域名(反查后核对)。
|
|
3
|
+
* 账户地址都在本地按 PDA 推导,读取合成 getMultipleAccounts,不需要索引节点(代币化的域名除外)
|
|
4
|
+
*/
|
|
5
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
6
|
+
import { decodeAddress, encodeAddress, findProgramAddress, getAssociatedTokenAddress, isAddress, isOnCurve } from './address.js';
|
|
7
|
+
import { TOKEN_PROGRAM_ID } from './constants.js';
|
|
8
|
+
/** SPL Name Service 程序 */
|
|
9
|
+
export const NAME_PROGRAM_ID = 'namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX';
|
|
10
|
+
/** SNS 顶级域(`.sns`,2026-10 之前叫 `.sol`,链上是同一批账户)的根账户 */
|
|
11
|
+
export const SNS_ROOT_DOMAIN = '58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx';
|
|
12
|
+
/** 反查记录的 class(同时是 SNS 注册程序的中心状态账户) */
|
|
13
|
+
const REVERSE_LOOKUP_CLASS = '33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z';
|
|
14
|
+
/** V2 记录的 class:sns-records 程序(HP3D4D1Z…)的中心状态 PDA */
|
|
15
|
+
const RECORDS_V2_CLASS = '2pMnqHvei2N5oDcVGCRdZx48gqti199wr5CsyTTafsbo';
|
|
16
|
+
/** 主域名(favourite domain)所在的程序 */
|
|
17
|
+
const PRIMARY_DOMAIN_PROGRAM = '85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29';
|
|
18
|
+
/** 域名代币化(NFT)程序 */
|
|
19
|
+
const NAME_TOKENIZER_ID = 'nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk';
|
|
20
|
+
/** 名字账户的头部:parent(32)+ owner(32)+ class(32),之后是数据 */
|
|
21
|
+
const HEADER_LEN = 96;
|
|
22
|
+
const encoder = new TextEncoder();
|
|
23
|
+
const ZERO = new Uint8Array(32);
|
|
24
|
+
const hashName = (name) => sha256(encoder.encode(`SPL Name Service${name}`));
|
|
25
|
+
/** 名字账户:sha256('SPL Name Service' + name)、class、parent 推导的 PDA(没有 class / parent 时用 32 个 0) */
|
|
26
|
+
function nameAccount(name, nameClass, parent) {
|
|
27
|
+
return findProgramAddress([hashName(name), nameClass ? decodeAddress(nameClass) : ZERO, parent ? decodeAddress(parent) : ZERO], NAME_PROGRAM_ID);
|
|
28
|
+
}
|
|
29
|
+
/** 域名对应的名字账户:'bonfida' 或子域名 'sub.bonfida'(不带后缀);子域名的种子是 '\0' + 子域名,parent 是父域名 */
|
|
30
|
+
export function snsDomainKey(domain) {
|
|
31
|
+
const labels = domain.split('.');
|
|
32
|
+
if (labels.length === 2) {
|
|
33
|
+
const parent = nameAccount(labels[1], undefined, SNS_ROOT_DOMAIN);
|
|
34
|
+
return { key: nameAccount(`\0${labels[0]}`, undefined, parent), parent };
|
|
35
|
+
}
|
|
36
|
+
if (labels.length !== 1) {
|
|
37
|
+
throw new Error(`Invalid SNS domain: ${domain}`);
|
|
38
|
+
}
|
|
39
|
+
return { key: nameAccount(domain, undefined, SNS_ROOT_DOMAIN), parent: null };
|
|
40
|
+
}
|
|
41
|
+
/** 反查记录:sha256 的是名字账户地址的 base58,class 是 REVERSE_LOOKUP_CLASS,子域名的 parent 是父域名 */
|
|
42
|
+
function reverseKey(domainKey, parent) {
|
|
43
|
+
return nameAccount(domainKey, REVERSE_LOOKUP_CLASS, parent ?? undefined);
|
|
44
|
+
}
|
|
45
|
+
/** 规范化:小写、去掉首尾空格;只认 name.sns / sub.name.sns(legacySol 时也认 .sol),返回不带后缀的部分 */
|
|
46
|
+
function parseName(name, legacySol) {
|
|
47
|
+
const n = name.trim().toLowerCase();
|
|
48
|
+
const suffix = n.endsWith('.sns') ? '.sns' : legacySol && n.endsWith('.sol') ? '.sol' : null;
|
|
49
|
+
if (!suffix) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const domain = n.slice(0, -suffix.length);
|
|
53
|
+
const labels = domain.split('.');
|
|
54
|
+
if (labels.length > 2 || labels.some((l) => !l || l.includes('\0'))) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
return { domain, normalized: `${domain}.sns` };
|
|
58
|
+
}
|
|
59
|
+
function registryOf(account) {
|
|
60
|
+
if (!account || account.owner !== NAME_PROGRAM_ID || account.data.length < HEADER_LEN) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return { parent: encodeAddress(account.data.slice(0, 32)), owner: encodeAddress(account.data.slice(32, 64)), data: account.data.slice(HEADER_LEN) };
|
|
64
|
+
}
|
|
65
|
+
/** NftRecord:tag(1)+ nonce(1)+ 名字账户(32)+ owner(32)+ NFT mint(32);tag 2 表示域名正在代币化 */
|
|
66
|
+
function tokenized(account) {
|
|
67
|
+
return !!account && account.owner === NAME_TOKENIZER_ID && account.data[0] === 2;
|
|
68
|
+
}
|
|
69
|
+
const nftRecordKey = (domainKey) => findProgramAddress([encoder.encode('nft_record'), decodeAddress(domainKey)], NAME_TOKENIZER_ID);
|
|
70
|
+
const nftMint = (domainKey) => findProgramAddress([encoder.encode('tokenized_name'), decodeAddress(domainKey)], NAME_TOKENIZER_ID);
|
|
71
|
+
/** 记录账户:V1 的种子是 '\x01' + 记录名,parent 是域名;V2 是 '\x02' + 记录名,class 是 RECORDS_V2_CLASS */
|
|
72
|
+
const recordV1Key = (domainKey, record) => nameAccount(`\x01${record}`, undefined, domainKey);
|
|
73
|
+
const recordV2Key = (domainKey, record) => nameAccount(`\x02${record}`, RECORDS_V2_CLASS, domainKey);
|
|
74
|
+
/** V2 记录的验证方式和对应 id 的长度:0 None,1 Solana(32),2 Ethereum(20),3 UnverifiedSolana(32) */
|
|
75
|
+
const VALIDATION_LENGTH = [0, 32, 20, 32];
|
|
76
|
+
const VALIDATION_SOLANA = 1;
|
|
77
|
+
/**
|
|
78
|
+
* V2 的 SOL 记录(与官方 SDK 相同):数据是 u16 过期验证方式 + u16 关联验证方式 + u32 内容长度,然后是两个验证 id 和内容。
|
|
79
|
+
* 返回记录的地址;记录过期(过期验证的 id 不是当前 owner)时为 undefined(继续看 V1 / owner);记录不合法时为 null(不解析)
|
|
80
|
+
*/
|
|
81
|
+
function solRecordV2(registry, owner) {
|
|
82
|
+
if (!registry || registry.data.length < 8) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
const view = new DataView(registry.data.buffer, registry.data.byteOffset, registry.data.byteLength);
|
|
86
|
+
const staleness = view.getUint16(0, true);
|
|
87
|
+
const roa = view.getUint16(2, true);
|
|
88
|
+
const stalenessLength = VALIDATION_LENGTH[staleness];
|
|
89
|
+
const roaLength = VALIDATION_LENGTH[roa];
|
|
90
|
+
if (stalenessLength === undefined || roaLength === undefined) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const body = registry.data.slice(8);
|
|
94
|
+
const content = body.slice(stalenessLength + roaLength);
|
|
95
|
+
if (content.length !== 32 || staleness !== VALIDATION_SOLANA || roa !== VALIDATION_SOLANA) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (encodeAddress(body.slice(0, 32)) !== owner) {
|
|
99
|
+
return undefined; // owner 换了:记录过期
|
|
100
|
+
}
|
|
101
|
+
// 关联验证的 id 必须就是内容本身(内容地址签过名)
|
|
102
|
+
return encodeAddress(body.slice(32, 64)) === encodeAddress(content) ? encodeAddress(content) : null;
|
|
103
|
+
}
|
|
104
|
+
/** V1 的 SOL 记录:32 字节地址 + 64 字节 owner 的签名(签的是 hex(地址 ‖ 记录账户地址) 的 UTF-8);签名不对时为 null */
|
|
105
|
+
async function solRecordV1(registry, recordKey, owner) {
|
|
106
|
+
if (!registry || registry.data.length < 96) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
const target = registry.data.slice(0, 32);
|
|
110
|
+
const signature = registry.data.slice(32, 96);
|
|
111
|
+
const hex = [...target, ...decodeAddress(recordKey)].map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
112
|
+
return (await verifyEd25519(decodeAddress(owner), signature, encoder.encode(hex))) ? encodeAddress(target) : null;
|
|
113
|
+
}
|
|
114
|
+
/** Ed25519 验签(WebCrypto);运行环境不支持时当作验签失败 */
|
|
115
|
+
async function verifyEd25519(publicKey, signature, message) {
|
|
116
|
+
const subtle = globalThis.crypto?.subtle;
|
|
117
|
+
if (!subtle)
|
|
118
|
+
return false;
|
|
119
|
+
try {
|
|
120
|
+
const key = await subtle.importKey('raw', publicKey, { name: 'Ed25519' }, false, ['verify']);
|
|
121
|
+
return await subtle.verify('Ed25519', key, signature, message);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* 代币化域名的 NFT 持有人:getTokenLargestAccounts 找到唯一的持有账户,再读出它的 owner(与官方 SDK 相同)。
|
|
129
|
+
* 免费公共节点大多不支持 getTokenLargestAccounts,这时为 null
|
|
130
|
+
*/
|
|
131
|
+
async function nftHolders(client, domainKeys, signal) {
|
|
132
|
+
const largest = await Promise.all(domainKeys.map((key) => client
|
|
133
|
+
.request('getTokenLargestAccounts', [nftMint(key), { commitment: client.commitment }], { signal })
|
|
134
|
+
.then((res) => res.value.find((a) => a.amount === '1')?.address ?? null)
|
|
135
|
+
.catch((err) => {
|
|
136
|
+
if (signal?.aborted)
|
|
137
|
+
throw err;
|
|
138
|
+
return null;
|
|
139
|
+
})));
|
|
140
|
+
const holders = largest.filter((a) => a !== null);
|
|
141
|
+
const accounts = holders.length ? await client.accounts(holders, { signal }) : [];
|
|
142
|
+
const ownerOf = new Map(holders.map((a, i) => [a, accounts[i]?.owner === TOKEN_PROGRAM_ID ? encodeAddress(accounts[i].data.slice(32, 64)) : null]));
|
|
143
|
+
return new Map(domainKeys.map((key, i) => [key, largest[i] ? (ownerOf.get(largest[i]) ?? null) : null]));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 名字 → 地址(一次 getMultipleAccounts 读域名、NFT 记录、两版 SOL 记录;代币化的域名另外找 NFT 持有人)。
|
|
147
|
+
* 解析顺序同官方 SDK:代币化 → NFT 持有人;V2 SOL 记录(验证过、没过期);V1 SOL 记录(owner 签过名);owner(是 PDA 时默认不返回)
|
|
148
|
+
*
|
|
149
|
+
* ```ts
|
|
150
|
+
* await resolveNames(client, ['bonfida.sns', 'toly.sns'])
|
|
151
|
+
* // [{ name: 'bonfida.sns', normalized: 'bonfida.sns', address: 'Fw1E…Lb1v', owner: 'Fw1E…Lb1v', source: 'owner', service: 'sns' }, …]
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
export async function resolveNames(client, names, options = {}) {
|
|
155
|
+
const { signal, legacySol = false, allowPda = false } = options;
|
|
156
|
+
const items = names.map((name) => {
|
|
157
|
+
const parsed = parseName(name, legacySol);
|
|
158
|
+
if (!parsed)
|
|
159
|
+
return { name, parsed: null, key: null };
|
|
160
|
+
const { key } = snsDomainKey(parsed.domain);
|
|
161
|
+
return { name, parsed, key, nft: nftRecordKey(key), v1: recordV1Key(key, 'SOL'), v2: recordV2Key(key, 'SOL') };
|
|
162
|
+
});
|
|
163
|
+
const keys = items.flatMap((x) => (x.key ? [x.key, x.nft, x.v1, x.v2] : []));
|
|
164
|
+
const accounts = keys.length ? await client.accounts(keys, { signal }) : [];
|
|
165
|
+
const byKey = new Map(keys.map((k, i) => [k, accounts[i] ?? null]));
|
|
166
|
+
const nfts = items.filter((x) => x.key && registryOf(byKey.get(x.key)) && tokenized(byKey.get(x.nft))).map((x) => x.key);
|
|
167
|
+
const holders = nfts.length ? await nftHolders(client, nfts, signal) : new Map();
|
|
168
|
+
return Promise.all(items.map(async (x) => {
|
|
169
|
+
const base = { name: x.name, normalized: x.parsed?.normalized ?? null, service: x.parsed ? 'sns' : null };
|
|
170
|
+
const registry = x.key ? registryOf(byKey.get(x.key)) : null;
|
|
171
|
+
if (!x.key || !registry) {
|
|
172
|
+
return { ...base, address: null, owner: null, source: null };
|
|
173
|
+
}
|
|
174
|
+
if (holders.has(x.key)) {
|
|
175
|
+
const holder = holders.get(x.key) ?? null;
|
|
176
|
+
return { ...base, address: holder, owner: holder, source: 'nft' };
|
|
177
|
+
}
|
|
178
|
+
const owner = registry.owner;
|
|
179
|
+
const v2 = solRecordV2(registryOf(byKey.get(x.v2)), owner);
|
|
180
|
+
if (v2 !== undefined) {
|
|
181
|
+
return { ...base, address: v2, owner, source: 'record-v2' };
|
|
182
|
+
}
|
|
183
|
+
const v1 = await solRecordV1(registryOf(byKey.get(x.v1)), x.v1, owner);
|
|
184
|
+
if (v1) {
|
|
185
|
+
return { ...base, address: v1, owner, source: 'record-v1' };
|
|
186
|
+
}
|
|
187
|
+
return { ...base, address: allowPda || isOnCurve(decodeAddress(owner)) ? owner : null, owner, source: 'owner' };
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
/** 反查记录的数据:u32 长度 + 名字(子域名的以 \0 开头) */
|
|
191
|
+
function reverseName(account) {
|
|
192
|
+
const registry = registryOf(account);
|
|
193
|
+
if (!registry || registry.data.length < 4) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
const length = new DataView(registry.data.buffer, registry.data.byteOffset).getUint32(0, true);
|
|
197
|
+
if (registry.data.length < 4 + length) {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
return new TextDecoder().decode(registry.data.slice(4, 4 + length)).replace(/^\0/, '') || null;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* 地址 → 主域名:读地址设置的主域名(favourite domain),再读域名和反查记录拼出名字,核对名字确实推导出这个域名账户、
|
|
204
|
+
* 并且域名属于这个地址(owner 是它,或代币化后它持有 NFT)——换了 owner 的旧设置不算。通常两次 getMultipleAccounts(子域名三次)
|
|
205
|
+
*
|
|
206
|
+
* ```ts
|
|
207
|
+
* await lookupAddresses(client, [wallet]) // [{ address: wallet, name: 'bonfida.sns', service: 'sns' }]
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
export async function lookupAddresses(client, addresses, options = {}) {
|
|
211
|
+
const { signal } = options;
|
|
212
|
+
const wallets = [...new Set(addresses.filter((a) => isAddress(a)))];
|
|
213
|
+
const primaryKeys = wallets.map((w) => findProgramAddress([encoder.encode('favourite_domain'), decodeAddress(w)], PRIMARY_DOMAIN_PROGRAM));
|
|
214
|
+
const primaries = primaryKeys.length ? await client.accounts(primaryKeys, { signal }) : [];
|
|
215
|
+
// 主域名账户:tag(1)+ 名字账户(32)
|
|
216
|
+
const chosen = wallets.flatMap((wallet, i) => {
|
|
217
|
+
const a = primaries[i];
|
|
218
|
+
return a && a.owner === PRIMARY_DOMAIN_PROGRAM && a.data.length >= 33 ? [{ wallet, domain: encodeAddress(a.data.slice(1, 33)) }] : [];
|
|
219
|
+
});
|
|
220
|
+
// 先按顶级域名读反查记录(大多数情况);是子域名时再读一次
|
|
221
|
+
const round2 = chosen.flatMap((c) => [c.domain, reverseKey(c.domain), getAssociatedTokenAddress(c.wallet, nftMint(c.domain), TOKEN_PROGRAM_ID)]);
|
|
222
|
+
const accounts2 = round2.length ? await client.accounts(round2, { signal }) : [];
|
|
223
|
+
const found = chosen.map((c, i) => ({ ...c, registry: registryOf(accounts2[3 * i]), reverse: accounts2[3 * i + 1] ?? null, nft: accounts2[3 * i + 2] ?? null }));
|
|
224
|
+
const subs = found.filter((f) => f.registry && f.registry.parent !== SNS_ROOT_DOMAIN);
|
|
225
|
+
const round3 = subs.flatMap((f) => [reverseKey(f.domain, f.registry?.parent), reverseKey(f.registry?.parent)]);
|
|
226
|
+
const accounts3 = round3.length ? await client.accounts(round3, { signal }) : [];
|
|
227
|
+
const subNames = new Map(subs.map((f, i) => {
|
|
228
|
+
const [sub, parent] = [reverseName(accounts3[2 * i]), reverseName(accounts3[2 * i + 1])];
|
|
229
|
+
return [f, sub && parent ? `${sub}.${parent}` : null];
|
|
230
|
+
}));
|
|
231
|
+
const names = new Map();
|
|
232
|
+
for (const f of found) {
|
|
233
|
+
if (!f.registry)
|
|
234
|
+
continue;
|
|
235
|
+
const domain = f.registry.parent === SNS_ROOT_DOMAIN ? reverseName(f.reverse) : (subNames.get(f) ?? null);
|
|
236
|
+
if (!domain)
|
|
237
|
+
continue;
|
|
238
|
+
// 正查核对:名字推导出的账户就是主域名指向的账户(反查记录的内容格式不对时不会拼出别的名字)
|
|
239
|
+
let key;
|
|
240
|
+
try {
|
|
241
|
+
key = snsDomainKey(domain).key;
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
// 代币化的域名:钱包的 ATA 里有这个域名的 NFT(数量 1)
|
|
247
|
+
const holdsNft = !!f.nft && f.nft.owner === TOKEN_PROGRAM_ID && f.nft.data.length >= 72 && new DataView(f.nft.data.buffer, f.nft.data.byteOffset).getBigUint64(64, true) === 1n;
|
|
248
|
+
if (key === f.domain && (f.registry.owner === f.wallet || holdsNft)) {
|
|
249
|
+
names.set(f.wallet, `${domain}.sns`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return addresses.map((address) => {
|
|
253
|
+
const name = names.get(address) ?? null;
|
|
254
|
+
return { address, name, service: name ? 'sns' : null };
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"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"}
|
package/dist/pools.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type PdaPoolProtocol = 'raydium-clmm' | 'orca-whirlpool' | 'raydium-cpmm';
|
|
2
|
+
/** Orca 默认的 WhirlpoolsConfig */
|
|
3
|
+
export declare const ORCA_WHIRLPOOLS_CONFIG = "2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ";
|
|
4
|
+
/** 两个 mint 在这些协议里可能的池子地址(三个程序都要求 mint0 < mint1,按字节比较);两个 mint 相同时为空 */
|
|
5
|
+
export declare function poolAddresses(mintA: string, mintB: string, protocols: ReadonlySet<PdaPoolProtocol>): Array<{
|
|
6
|
+
protocol: PdaPoolProtocol;
|
|
7
|
+
address: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=pools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../src/pools.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,CAAA;AAEhF,gCAAgC;AAChC,eAAO,MAAM,sBAAsB,iDAAiD,CAAA;AAkBpF,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAa1J"}
|
package/dist/pools.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 按两个 mint 推导池子地址(PDA,不需要 getProgramAccounts):Raydium CLMM / CPMM 的每个 AmmConfig、Orca 的每个费率档位。
|
|
3
|
+
* 链上价格(/price)和兑换(/swap)共用;Raydium AMM v4 的池子地址要用 OpenBook 市场推导,不在这里
|
|
4
|
+
*/
|
|
5
|
+
import { decodeAddress, findProgramAddress } from './address.js';
|
|
6
|
+
import { ORCA_WHIRLPOOL_PROGRAM_ID, RAYDIUM_CLMM_PROGRAM_ID, RAYDIUM_CPMM_PROGRAM_ID, utf8 } from './lp.js';
|
|
7
|
+
/** Orca 默认的 WhirlpoolsConfig */
|
|
8
|
+
export const ORCA_WHIRLPOOLS_CONFIG = '2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ';
|
|
9
|
+
/**
|
|
10
|
+
* 池子 PDA 用到的配置(2026-10 主网实测存在的全部):
|
|
11
|
+
* - Raydium CLMM / CPMM 的 AmmConfig:PDA ["amm_config", index(u16 大端)],index 0~20
|
|
12
|
+
* - Orca 的费率档位:普通档位的种子是 tick spacing(1、2、4、8、16、64、96、128、256,32896 为 Splash 池),动态费率档位是 1025~1036
|
|
13
|
+
* Raydium CLMM 用 seed_index 建的自定义池子不在推导范围内
|
|
14
|
+
*/
|
|
15
|
+
const RAYDIUM_CONFIG_COUNT = 21;
|
|
16
|
+
const ORCA_FEE_TIERS = [1, 2, 4, 8, 16, 64, 96, 128, 256, 32896, ...Array.from({ length: 12 }, (_, i) => 1025 + i)];
|
|
17
|
+
let configs;
|
|
18
|
+
function poolConfigs() {
|
|
19
|
+
const derive = (program) => Array.from({ length: RAYDIUM_CONFIG_COUNT }, (_, i) => decodeAddress(findProgramAddress([utf8('amm_config'), new Uint8Array([i >> 8, i & 0xff])], program)));
|
|
20
|
+
configs ??= { clmm: derive(RAYDIUM_CLMM_PROGRAM_ID), cpmm: derive(RAYDIUM_CPMM_PROGRAM_ID), orca: decodeAddress(ORCA_WHIRLPOOLS_CONFIG) };
|
|
21
|
+
return configs;
|
|
22
|
+
}
|
|
23
|
+
/** 两个 mint 在这些协议里可能的池子地址(三个程序都要求 mint0 < mint1,按字节比较);两个 mint 相同时为空 */
|
|
24
|
+
export function poolAddresses(mintA, mintB, protocols) {
|
|
25
|
+
const a = decodeAddress(mintA);
|
|
26
|
+
const b = decodeAddress(mintB);
|
|
27
|
+
const i = a.findIndex((byte, k) => byte !== b[k]);
|
|
28
|
+
if (i < 0)
|
|
29
|
+
return [];
|
|
30
|
+
const [m0, m1] = a[i] < b[i] ? [a, b] : [b, a];
|
|
31
|
+
const { clmm, cpmm, orca } = poolConfigs();
|
|
32
|
+
const out = [];
|
|
33
|
+
const add = (protocol, seeds, program) => out.push({ protocol, address: findProgramAddress(seeds, program) });
|
|
34
|
+
if (protocols.has('raydium-clmm'))
|
|
35
|
+
for (const c of clmm)
|
|
36
|
+
add('raydium-clmm', [utf8('pool'), c, m0, m1], RAYDIUM_CLMM_PROGRAM_ID);
|
|
37
|
+
if (protocols.has('raydium-cpmm'))
|
|
38
|
+
for (const c of cpmm)
|
|
39
|
+
add('raydium-cpmm', [utf8('pool'), c, m0, m1], RAYDIUM_CPMM_PROGRAM_ID);
|
|
40
|
+
if (protocols.has('orca-whirlpool'))
|
|
41
|
+
for (const t of ORCA_FEE_TIERS)
|
|
42
|
+
add('orca-whirlpool', [utf8('whirlpool'), orca, m0, m1, new Uint8Array([t & 0xff, t >> 8])], ORCA_WHIRLPOOL_PROGRAM_ID);
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=pools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pools.js","sourceRoot":"","sources":["../src/pools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 资产总值(子路径 `@w3lib/solana-batch-call/price`):代币余额 × 价格,可选加上 LP 仓位的价值
|
|
3
|
+
*/
|
|
4
|
+
import type { RequestOptions, SolanaClient } from './client.js';
|
|
5
|
+
import { type LpPositionsOptions, type SolanaLpPosition } from './lp.js';
|
|
6
|
+
import { type SolanaPriceSource } from './price.js';
|
|
7
|
+
export interface PortfolioOptions extends RequestOptions {
|
|
8
|
+
/**
|
|
9
|
+
* 要计入的代币(SOL 用 NATIVE_MINT),按关联代币账户(ATA)读余额,免费公共节点也能用。
|
|
10
|
+
* 不传时列出地址持有的全部代币(同 getOwnerTokens,含 SOL,不含 NFT),需要支持 getTokenAccountsByOwner 的节点
|
|
11
|
+
*/
|
|
12
|
+
tokens?: readonly string[];
|
|
13
|
+
/** 价格源,依次使用,默认 [defillamaPrices(), onchainPrices()] */
|
|
14
|
+
sources?: readonly SolanaPriceSource[];
|
|
15
|
+
/**
|
|
16
|
+
* 同时计入 LP 仓位(参数同 lpPositions,价格源用上面的 sources),默认不计入。
|
|
17
|
+
* 注意 lpPositions 不传 mints 时也要扫描代币账户:免费公共节点上传 { mints: [仓位 NFT / LP mint], pools: [AMM 池子] }
|
|
18
|
+
*/
|
|
19
|
+
lp?: boolean | Omit<LpPositionsOptions, 'prices' | 'onPriceError' | 'fetch' | 'signal'>;
|
|
20
|
+
/** 价值低于它的代币不列出(不影响合计),默认 0 */
|
|
21
|
+
minUsd?: number;
|
|
22
|
+
/** 某个价格源出错时调用;回调本身出错会被忽略 */
|
|
23
|
+
onPriceError?: (err: unknown) => void;
|
|
24
|
+
/** 查价格用的 fetch,默认全局 fetch */
|
|
25
|
+
fetch?: typeof fetch;
|
|
26
|
+
}
|
|
27
|
+
export interface PortfolioToken {
|
|
28
|
+
/** 代币的 mint;SOL 为 NATIVE_MINT(或传入的 nativeMints 里的地址) */
|
|
29
|
+
token: string;
|
|
30
|
+
/** 原生 SOL;Wrapped SOL 的代币账户单独列出(native: false),价格同 SOL */
|
|
31
|
+
native: boolean;
|
|
32
|
+
symbol: string | null;
|
|
33
|
+
balance: string;
|
|
34
|
+
decimals: number;
|
|
35
|
+
formatted: string;
|
|
36
|
+
price: number | null;
|
|
37
|
+
/** 美元价值;没有价格时为 null */
|
|
38
|
+
value: number | null;
|
|
39
|
+
/** 给出价格的价格源 */
|
|
40
|
+
priceSource: string | null;
|
|
41
|
+
}
|
|
42
|
+
export interface Portfolio {
|
|
43
|
+
/** 合计(代币 + LP;没有价格的不计入) */
|
|
44
|
+
totalUsd: number;
|
|
45
|
+
tokensUsd: number;
|
|
46
|
+
lpUsd: number;
|
|
47
|
+
/** 有余额的代币,按价值从高到低 */
|
|
48
|
+
tokens: PortfolioToken[];
|
|
49
|
+
/** LP 仓位(开启 lp 时) */
|
|
50
|
+
lp: SolanaLpPosition[];
|
|
51
|
+
/** 有余额但没有价格的代币数(LP 仓位里缺价格的也算) */
|
|
52
|
+
unpriced: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 一个地址的资产总值:代币余额 × 价格,可选加上 LP 仓位。
|
|
56
|
+
*
|
|
57
|
+
* ```ts
|
|
58
|
+
* const p = await portfolio(client, owner, { tokens: [NATIVE_MINT, USDC, JUP] }) // 指定代币:免费公共节点也能用
|
|
59
|
+
* const all = await portfolio(new SolanaClient('https://my-rpc…'), owner, { lp: true }) // 全部持仓 + LP:需要支持 getTokenAccountsByOwner 的节点
|
|
60
|
+
* p.totalUsd // 1234.5
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function portfolio(client: SolanaClient, owner: string, options?: PortfolioOptions): Promise<Portfolio>;
|
|
64
|
+
//# sourceMappingURL=portfolio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAkC,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACxG,OAAO,EAA8D,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE/G,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACtC;;;OAGG;IACH,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;IACvF,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,6BAA6B;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,uBAAuB;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,eAAe;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,qBAAqB;IACrB,EAAE,EAAE,gBAAgB,EAAE,CAAA;IACtB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAWD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CA6BvH"}
|