four-flap-meme-sdk 1.5.5 → 1.5.6
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/dist/abis/common.js +0 -2
- package/dist/contracts/tm-bundle-merkle/config.d.ts +1 -0
- package/dist/contracts/tm-bundle-merkle/config.js +1 -0
- package/dist/contracts/tm-bundle-merkle/core.js +9 -13
- package/dist/flap/portal-bundle-merkle/config.d.ts +1 -0
- package/dist/flap/portal-bundle-merkle/config.js +1 -0
- package/dist/flap/portal-bundle-merkle/create-to-dex.d.ts +2 -8
- package/dist/flap/portal-bundle-merkle/create-to-dex.js +126 -159
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/sol/constants.d.ts +150 -0
- package/dist/sol/constants.js +188 -0
- package/dist/sol/dex/blockrazor/client.d.ts +51 -0
- package/dist/sol/dex/blockrazor/client.js +96 -0
- package/dist/sol/dex/blockrazor/constants.d.ts +34 -0
- package/dist/sol/dex/blockrazor/constants.js +55 -0
- package/dist/sol/dex/blockrazor/geyser.d.ts +128 -0
- package/dist/sol/dex/blockrazor/geyser.js +530 -0
- package/dist/sol/dex/blockrazor/index.d.ts +18 -0
- package/dist/sol/dex/blockrazor/index.js +23 -0
- package/dist/sol/dex/blockrazor/send.d.ts +135 -0
- package/dist/sol/dex/blockrazor/send.js +254 -0
- package/dist/sol/dex/blockrazor/types.d.ts +191 -0
- package/dist/sol/dex/blockrazor/types.js +5 -0
- package/dist/sol/dex/index.d.ts +10 -0
- package/dist/sol/dex/index.js +16 -0
- package/dist/sol/dex/jup/client.d.ts +33 -0
- package/dist/sol/dex/jup/client.js +110 -0
- package/dist/sol/dex/jup/index.d.ts +16 -0
- package/dist/sol/dex/jup/index.js +148 -0
- package/dist/sol/dex/jup/legacy.d.ts +623 -0
- package/dist/sol/dex/jup/legacy.js +416 -0
- package/dist/sol/dex/jup/lend.d.ts +640 -0
- package/dist/sol/dex/jup/lend.js +603 -0
- package/dist/sol/dex/jup/portfolio.d.ts +362 -0
- package/dist/sol/dex/jup/portfolio.js +367 -0
- package/dist/sol/dex/jup/price.d.ts +173 -0
- package/dist/sol/dex/jup/price.js +220 -0
- package/dist/sol/dex/jup/recurring.d.ts +437 -0
- package/dist/sol/dex/jup/recurring.js +320 -0
- package/dist/sol/dex/jup/send.d.ts +282 -0
- package/dist/sol/dex/jup/send.js +295 -0
- package/dist/sol/dex/jup/studio.d.ts +457 -0
- package/dist/sol/dex/jup/studio.js +488 -0
- package/dist/sol/dex/jup/tokens.d.ts +767 -0
- package/dist/sol/dex/jup/tokens.js +697 -0
- package/dist/sol/dex/jup/trigger.d.ts +511 -0
- package/dist/sol/dex/jup/trigger.js +397 -0
- package/dist/sol/dex/jup/types.d.ts +433 -0
- package/dist/sol/dex/jup/types.js +5 -0
- package/dist/sol/dex/jup/ultra.d.ts +646 -0
- package/dist/sol/dex/jup/ultra.js +853 -0
- package/dist/sol/dex/meteora/client.d.ts +76 -0
- package/dist/sol/dex/meteora/client.js +219 -0
- package/dist/sol/dex/meteora/damm-v1-bundle.d.ts +61 -0
- package/dist/sol/dex/meteora/damm-v1-bundle.js +112 -0
- package/dist/sol/dex/meteora/damm-v1.d.ts +118 -0
- package/dist/sol/dex/meteora/damm-v1.js +315 -0
- package/dist/sol/dex/meteora/damm-v2-bundle.d.ts +82 -0
- package/dist/sol/dex/meteora/damm-v2-bundle.js +242 -0
- package/dist/sol/dex/meteora/damm-v2.d.ts +172 -0
- package/dist/sol/dex/meteora/damm-v2.js +632 -0
- package/dist/sol/dex/meteora/dbc-bundle.d.ts +123 -0
- package/dist/sol/dex/meteora/dbc-bundle.js +304 -0
- package/dist/sol/dex/meteora/dbc.d.ts +192 -0
- package/dist/sol/dex/meteora/dbc.js +619 -0
- package/dist/sol/dex/meteora/dlmm-bundle.d.ts +39 -0
- package/dist/sol/dex/meteora/dlmm-bundle.js +189 -0
- package/dist/sol/dex/meteora/dlmm.d.ts +157 -0
- package/dist/sol/dex/meteora/dlmm.js +671 -0
- package/dist/sol/dex/meteora/index.d.ts +25 -0
- package/dist/sol/dex/meteora/index.js +65 -0
- package/dist/sol/dex/meteora/types.d.ts +787 -0
- package/dist/sol/dex/meteora/types.js +110 -0
- package/dist/sol/dex/orca/index.d.ts +10 -0
- package/dist/sol/dex/orca/index.js +16 -0
- package/dist/sol/dex/orca/orca-bundle.d.ts +41 -0
- package/dist/sol/dex/orca/orca-bundle.js +173 -0
- package/dist/sol/dex/orca/orca.d.ts +65 -0
- package/dist/sol/dex/orca/orca.js +474 -0
- package/dist/sol/dex/orca/types.d.ts +263 -0
- package/dist/sol/dex/orca/types.js +38 -0
- package/dist/sol/dex/orca/wavebreak-bundle.d.ts +34 -0
- package/dist/sol/dex/orca/wavebreak-bundle.js +198 -0
- package/dist/sol/dex/orca/wavebreak-types.d.ts +227 -0
- package/dist/sol/dex/orca/wavebreak-types.js +23 -0
- package/dist/sol/dex/orca/wavebreak.d.ts +78 -0
- package/dist/sol/dex/orca/wavebreak.js +497 -0
- package/dist/sol/dex/pump/index.d.ts +9 -0
- package/dist/sol/dex/pump/index.js +14 -0
- package/dist/sol/dex/pump/pump-bundle.d.ts +92 -0
- package/dist/sol/dex/pump/pump-bundle.js +383 -0
- package/dist/sol/dex/pump/pump-swap-bundle.d.ts +103 -0
- package/dist/sol/dex/pump/pump-swap-bundle.js +380 -0
- package/dist/sol/dex/pump/pump-swap.d.ts +46 -0
- package/dist/sol/dex/pump/pump-swap.js +199 -0
- package/dist/sol/dex/pump/pump.d.ts +35 -0
- package/dist/sol/dex/pump/pump.js +352 -0
- package/dist/sol/dex/pump/types.d.ts +215 -0
- package/dist/sol/dex/pump/types.js +5 -0
- package/dist/sol/dex/raydium/index.d.ts +8 -0
- package/dist/sol/dex/raydium/index.js +12 -0
- package/dist/sol/dex/raydium/launchlab.d.ts +68 -0
- package/dist/sol/dex/raydium/launchlab.js +210 -0
- package/dist/sol/dex/raydium/raydium-bundle.d.ts +64 -0
- package/dist/sol/dex/raydium/raydium-bundle.js +324 -0
- package/dist/sol/dex/raydium/raydium.d.ts +40 -0
- package/dist/sol/dex/raydium/raydium.js +366 -0
- package/dist/sol/dex/raydium/types.d.ts +240 -0
- package/dist/sol/dex/raydium/types.js +5 -0
- package/dist/sol/index.d.ts +11 -0
- package/dist/sol/index.js +18 -0
- package/dist/sol/jito/bundle.d.ts +90 -0
- package/dist/sol/jito/bundle.js +263 -0
- package/dist/sol/jito/index.d.ts +7 -0
- package/dist/sol/jito/index.js +7 -0
- package/dist/sol/jito/tip.d.ts +51 -0
- package/dist/sol/jito/tip.js +83 -0
- package/dist/sol/jito/types.d.ts +100 -0
- package/dist/sol/jito/types.js +5 -0
- package/dist/sol/nozomi/client.d.ts +63 -0
- package/dist/sol/nozomi/client.js +222 -0
- package/dist/sol/nozomi/index.d.ts +8 -0
- package/dist/sol/nozomi/index.js +8 -0
- package/dist/sol/nozomi/tip.d.ts +50 -0
- package/dist/sol/nozomi/tip.js +80 -0
- package/dist/sol/nozomi/types.d.ts +96 -0
- package/dist/sol/nozomi/types.js +5 -0
- package/dist/sol/token/create-complete.d.ts +115 -0
- package/dist/sol/token/create-complete.js +235 -0
- package/dist/sol/token/create-token.d.ts +57 -0
- package/dist/sol/token/create-token.js +230 -0
- package/dist/sol/token/index.d.ts +9 -0
- package/dist/sol/token/index.js +14 -0
- package/dist/sol/token/metadata-upload.d.ts +86 -0
- package/dist/sol/token/metadata-upload.js +173 -0
- package/dist/sol/token/metadata.d.ts +92 -0
- package/dist/sol/token/metadata.js +274 -0
- package/dist/sol/token/types.d.ts +153 -0
- package/dist/sol/token/types.js +5 -0
- package/dist/sol/types.d.ts +176 -0
- package/dist/sol/types.js +7 -0
- package/dist/sol/utils/balance.d.ts +160 -0
- package/dist/sol/utils/balance.js +638 -0
- package/dist/sol/utils/connection.d.ts +78 -0
- package/dist/sol/utils/connection.js +168 -0
- package/dist/sol/utils/index.d.ts +9 -0
- package/dist/sol/utils/index.js +9 -0
- package/dist/sol/utils/lp-inspect.d.ts +129 -0
- package/dist/sol/utils/lp-inspect.js +900 -0
- package/dist/sol/utils/transfer.d.ts +196 -0
- package/dist/sol/utils/transfer.js +307 -0
- package/dist/sol/utils/wallet.d.ts +107 -0
- package/dist/sol/utils/wallet.js +210 -0
- package/package.json +41 -5
- package/README.zh-CN.pdf +0 -0
- package/dist/flap/portal-bundle-merkle/encryption.d.ts +0 -16
- package/dist/flap/portal-bundle-merkle/encryption.js +0 -146
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana SDK 类型定义
|
|
3
|
+
* @module sol/types
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, Keypair } from '@solana/web3.js';
|
|
6
|
+
/**
|
|
7
|
+
* 支持的 Solana DEX
|
|
8
|
+
*/
|
|
9
|
+
export type SolanaDex = 'PUMP' | 'PUMP_SWAP' | 'RAYDIUM' | 'ORCA' | 'METEORA';
|
|
10
|
+
/**
|
|
11
|
+
* 池子类型
|
|
12
|
+
*/
|
|
13
|
+
export type PoolType = 'AMM' | 'CLMM' | 'DLMM' | 'DAMM' | 'BONDING_CURVE';
|
|
14
|
+
/**
|
|
15
|
+
* LP 目标 DEX
|
|
16
|
+
*/
|
|
17
|
+
export type LpTargetDex = 'RAYDIUM_AMM' | 'RAYDIUM_CLMM' | 'ORCA' | 'METEORA_DLMM' | 'METEORA_DAMM';
|
|
18
|
+
/**
|
|
19
|
+
* 代币发射平台
|
|
20
|
+
*/
|
|
21
|
+
export type TokenLaunchPlatform = 'SPL_TOKEN_2022' | 'SPL' | 'PUMP' | 'RAYDIUM' | 'METEORA_DBC';
|
|
22
|
+
/**
|
|
23
|
+
* Solana 钱包信息
|
|
24
|
+
*/
|
|
25
|
+
export interface SolanaWallet {
|
|
26
|
+
publicKey: PublicKey;
|
|
27
|
+
secretKey: Uint8Array;
|
|
28
|
+
address: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 钱包生成结果
|
|
32
|
+
*/
|
|
33
|
+
export interface WalletGenerateResult {
|
|
34
|
+
publicKey: string;
|
|
35
|
+
secretKey: Uint8Array;
|
|
36
|
+
secretKeyBase58: string;
|
|
37
|
+
address: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 代币元数据
|
|
41
|
+
*/
|
|
42
|
+
export interface TokenMetadata {
|
|
43
|
+
name: string;
|
|
44
|
+
symbol: string;
|
|
45
|
+
description: string;
|
|
46
|
+
image: string;
|
|
47
|
+
external_url?: string;
|
|
48
|
+
attributes?: Array<{
|
|
49
|
+
trait_type: string;
|
|
50
|
+
value: string | number;
|
|
51
|
+
}>;
|
|
52
|
+
properties?: {
|
|
53
|
+
files?: Array<{
|
|
54
|
+
uri: string;
|
|
55
|
+
type: string;
|
|
56
|
+
}>;
|
|
57
|
+
category?: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Token-2022 创建参数
|
|
62
|
+
*/
|
|
63
|
+
export interface CreateToken2022Params {
|
|
64
|
+
name: string;
|
|
65
|
+
symbol: string;
|
|
66
|
+
decimals: number;
|
|
67
|
+
initialSupply: bigint;
|
|
68
|
+
uri: string;
|
|
69
|
+
creator: Keypair;
|
|
70
|
+
mintAuthority?: PublicKey;
|
|
71
|
+
freezeAuthority?: PublicKey | null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 代币创建结果
|
|
75
|
+
*/
|
|
76
|
+
export interface TokenCreateResult {
|
|
77
|
+
mint: PublicKey;
|
|
78
|
+
metadataAddress: PublicKey;
|
|
79
|
+
signature: string;
|
|
80
|
+
metadataUri?: string;
|
|
81
|
+
lpPoolAddress?: string;
|
|
82
|
+
lpSignature?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 交易参数
|
|
86
|
+
*/
|
|
87
|
+
export interface SwapParams {
|
|
88
|
+
dex: SolanaDex;
|
|
89
|
+
tokenAddress: string;
|
|
90
|
+
amount: bigint;
|
|
91
|
+
slippage: number;
|
|
92
|
+
wallet: Keypair;
|
|
93
|
+
isBuy: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 批量交易参数
|
|
97
|
+
*/
|
|
98
|
+
export interface BatchSwapParams {
|
|
99
|
+
dex: SolanaDex;
|
|
100
|
+
tokenAddress: string;
|
|
101
|
+
wallets: Array<{
|
|
102
|
+
wallet: Keypair;
|
|
103
|
+
amount: bigint;
|
|
104
|
+
}>;
|
|
105
|
+
slippage: number;
|
|
106
|
+
isBuy: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 交易结果
|
|
110
|
+
*/
|
|
111
|
+
export interface TransactionResult {
|
|
112
|
+
success: boolean;
|
|
113
|
+
signature?: string;
|
|
114
|
+
error?: string;
|
|
115
|
+
fee?: bigint;
|
|
116
|
+
timestamp: number;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 批量交易结果
|
|
120
|
+
*/
|
|
121
|
+
export interface BatchTransactionResult {
|
|
122
|
+
totalCount: number;
|
|
123
|
+
successCount: number;
|
|
124
|
+
failedCount: number;
|
|
125
|
+
results: TransactionResult[];
|
|
126
|
+
signatures: string[];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* LP 操作参数
|
|
130
|
+
*/
|
|
131
|
+
export interface LiquidityParams {
|
|
132
|
+
dex: SolanaDex;
|
|
133
|
+
poolAddress: string;
|
|
134
|
+
tokenA: string;
|
|
135
|
+
tokenB: string;
|
|
136
|
+
amountA: bigint;
|
|
137
|
+
amountB: bigint;
|
|
138
|
+
wallet: Keypair;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* LP 添加结果
|
|
142
|
+
*/
|
|
143
|
+
export interface AddLiquidityResult {
|
|
144
|
+
poolAddress: string;
|
|
145
|
+
lpTokenAmount: bigint;
|
|
146
|
+
signature: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 交易类型
|
|
150
|
+
*/
|
|
151
|
+
export type TransactionType = 'BUY' | 'SELL' | 'ADD_LP' | 'REMOVE_LP' | 'CREATE' | 'TRANSFER';
|
|
152
|
+
/**
|
|
153
|
+
* 交易状态
|
|
154
|
+
*/
|
|
155
|
+
export type TransactionStatus = 'PENDING' | 'SUCCESS' | 'FAILED';
|
|
156
|
+
/**
|
|
157
|
+
* 交易流水记录
|
|
158
|
+
*/
|
|
159
|
+
export interface TransactionLog {
|
|
160
|
+
id: string;
|
|
161
|
+
chain: 'SOLANA';
|
|
162
|
+
type: TransactionType;
|
|
163
|
+
dex?: SolanaDex;
|
|
164
|
+
tokenAddress: string;
|
|
165
|
+
tokenSymbol?: string;
|
|
166
|
+
walletAddress: string;
|
|
167
|
+
amount: string;
|
|
168
|
+
solAmount?: string;
|
|
169
|
+
fee: string;
|
|
170
|
+
signature: string;
|
|
171
|
+
status: TransactionStatus;
|
|
172
|
+
timestamp: number;
|
|
173
|
+
blockTime?: number;
|
|
174
|
+
slot?: number;
|
|
175
|
+
errorMessage?: string;
|
|
176
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana 余额查询功能
|
|
3
|
+
* 使用批量 RPC 调用优化,减少限流风险
|
|
4
|
+
* @module sol/utils/balance
|
|
5
|
+
*/
|
|
6
|
+
import { Connection } from '@solana/web3.js';
|
|
7
|
+
/**
|
|
8
|
+
* SOL 余额结果
|
|
9
|
+
*/
|
|
10
|
+
export interface SolBalanceResult {
|
|
11
|
+
address: string;
|
|
12
|
+
lamports: bigint;
|
|
13
|
+
sol: number;
|
|
14
|
+
success: boolean;
|
|
15
|
+
error?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 代币余额结果
|
|
19
|
+
*/
|
|
20
|
+
export interface TokenBalanceResult {
|
|
21
|
+
address: string;
|
|
22
|
+
tokenAddress: string;
|
|
23
|
+
balance: bigint;
|
|
24
|
+
decimals: number;
|
|
25
|
+
uiBalance: number;
|
|
26
|
+
success: boolean;
|
|
27
|
+
error?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 批量余额查询结果
|
|
31
|
+
*/
|
|
32
|
+
export interface BatchBalanceResult<T> {
|
|
33
|
+
results: T[];
|
|
34
|
+
successCount: number;
|
|
35
|
+
failedCount: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 钱包完整余额信息
|
|
39
|
+
*/
|
|
40
|
+
export interface WalletBalanceInfo {
|
|
41
|
+
address: string;
|
|
42
|
+
sol: {
|
|
43
|
+
lamports: bigint;
|
|
44
|
+
balance: number;
|
|
45
|
+
};
|
|
46
|
+
tokens: Array<{
|
|
47
|
+
mint: string;
|
|
48
|
+
balance: bigint;
|
|
49
|
+
decimals: number;
|
|
50
|
+
uiBalance: number;
|
|
51
|
+
}>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 查询单个地址的 SOL 余额
|
|
55
|
+
* @param connection Solana 连接
|
|
56
|
+
* @param address 钱包地址
|
|
57
|
+
*/
|
|
58
|
+
export declare function getSolBalance(connection: Connection, address: string): Promise<SolBalanceResult>;
|
|
59
|
+
/**
|
|
60
|
+
* 批量查询 SOL 余额
|
|
61
|
+
* @param connection Solana 连接
|
|
62
|
+
* @param addresses 钱包地址列表
|
|
63
|
+
* @param batchSize 每批查询数量(默认 100)
|
|
64
|
+
*/
|
|
65
|
+
export declare function batchGetSolBalance(connection: Connection, addresses: string[], batchSize?: number): Promise<BatchBalanceResult<SolBalanceResult>>;
|
|
66
|
+
/**
|
|
67
|
+
* 查询单个地址的代币余额
|
|
68
|
+
* @param connection Solana 连接
|
|
69
|
+
* @param walletAddress 钱包地址
|
|
70
|
+
* @param tokenMint 代币 Mint 地址
|
|
71
|
+
* @param useToken2022 是否使用 Token-2022 程序(默认 false)
|
|
72
|
+
*/
|
|
73
|
+
export declare function getTokenBalance(connection: Connection, walletAddress: string, tokenMint: string, useToken2022?: boolean): Promise<TokenBalanceResult>;
|
|
74
|
+
/**
|
|
75
|
+
* 批量查询代币余额(多个钱包,同一代币)
|
|
76
|
+
* 使用 getMultipleAccountsInfo 优化,单次 RPC 调用查询多个账户
|
|
77
|
+
*
|
|
78
|
+
* @param connection Solana 连接
|
|
79
|
+
* @param walletAddresses 钱包地址列表
|
|
80
|
+
* @param tokenMint 代币 Mint 地址
|
|
81
|
+
* @param useToken2022 是否使用 Token-2022 程序
|
|
82
|
+
*/
|
|
83
|
+
export declare function batchGetTokenBalance(connection: Connection, walletAddresses: string[], tokenMint: string, useToken2022?: boolean): Promise<BatchBalanceResult<TokenBalanceResult>>;
|
|
84
|
+
/**
|
|
85
|
+
* 批量查询多个代币余额(单个钱包,多个代币)
|
|
86
|
+
*
|
|
87
|
+
* @param connection Solana 连接
|
|
88
|
+
* @param walletAddress 钱包地址
|
|
89
|
+
* @param tokenMints 代币 Mint 地址列表
|
|
90
|
+
* @param useToken2022 是否使用 Token-2022 程序
|
|
91
|
+
*/
|
|
92
|
+
export declare function batchGetMultiTokenBalance(connection: Connection, walletAddress: string, tokenMints: string[], useToken2022?: boolean): Promise<BatchBalanceResult<TokenBalanceResult>>;
|
|
93
|
+
/**
|
|
94
|
+
* 获取钱包持有的所有代币
|
|
95
|
+
* @param connection Solana 连接
|
|
96
|
+
* @param walletAddress 钱包地址
|
|
97
|
+
* @param includeToken2022 是否包含 Token-2022 代币
|
|
98
|
+
*/
|
|
99
|
+
export declare function getAllTokenBalances(connection: Connection, walletAddress: string, includeToken2022?: boolean): Promise<WalletBalanceInfo>;
|
|
100
|
+
/**
|
|
101
|
+
* 批量获取钱包完整余额信息
|
|
102
|
+
* @param connection Solana 连接
|
|
103
|
+
* @param walletAddresses 钱包地址列表
|
|
104
|
+
*/
|
|
105
|
+
export declare function batchGetAllBalances(connection: Connection, walletAddresses: string[]): Promise<WalletBalanceInfo[]>;
|
|
106
|
+
/**
|
|
107
|
+
* 矩阵查询结果
|
|
108
|
+
*/
|
|
109
|
+
export interface MatrixBalanceResult {
|
|
110
|
+
/** 按钱包分组的结果 */
|
|
111
|
+
byWallet: Map<string, Map<string, TokenBalanceResult>>;
|
|
112
|
+
/** 按代币分组的结果 */
|
|
113
|
+
byToken: Map<string, Map<string, TokenBalanceResult>>;
|
|
114
|
+
/** 扁平化结果列表 */
|
|
115
|
+
results: TokenBalanceResult[];
|
|
116
|
+
/** 统计 */
|
|
117
|
+
stats: {
|
|
118
|
+
totalQueries: number;
|
|
119
|
+
successCount: number;
|
|
120
|
+
failedCount: number;
|
|
121
|
+
rpcCalls: number;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 批量查询多个钱包的多个代币余额(矩阵查询)
|
|
126
|
+
* 优化 RPC 调用次数,适合大批量查询
|
|
127
|
+
*
|
|
128
|
+
* @param connection Solana 连接
|
|
129
|
+
* @param walletAddresses 钱包地址列表
|
|
130
|
+
* @param tokenMints 代币 Mint 地址列表
|
|
131
|
+
* @param useToken2022 是否使用 Token-2022 程序
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const result = await batchGetMatrixBalance(
|
|
136
|
+
* connection,
|
|
137
|
+
* ['wallet1', 'wallet2', 'wallet3'],
|
|
138
|
+
* ['tokenA', 'tokenB'],
|
|
139
|
+
* )
|
|
140
|
+
*
|
|
141
|
+
* // 获取某个钱包的某个代币余额
|
|
142
|
+
* const balance = result.byWallet.get('wallet1')?.get('tokenA')
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare function batchGetMatrixBalance(connection: Connection, walletAddresses: string[], tokenMints: string[], useToken2022?: boolean): Promise<MatrixBalanceResult>;
|
|
146
|
+
/**
|
|
147
|
+
* 清除 decimals 缓存
|
|
148
|
+
* @param mint 可选,指定代币地址;不传则清除全部
|
|
149
|
+
*/
|
|
150
|
+
export declare function clearDecimalsCache(mint?: string): void;
|
|
151
|
+
/**
|
|
152
|
+
* 获取缓存的 decimals 数量
|
|
153
|
+
*/
|
|
154
|
+
export declare function getDecimalsCacheSize(): number;
|
|
155
|
+
/**
|
|
156
|
+
* 预热 decimals 缓存
|
|
157
|
+
* @param connection Solana 连接
|
|
158
|
+
* @param mints 代币 Mint 地址列表
|
|
159
|
+
*/
|
|
160
|
+
export declare function warmupDecimalsCache(connection: Connection, mints: string[]): Promise<void>;
|