import TaxTokenAbi from '../abis/TaxToken.json'; /** TaxToken 转账模式 */ export declare enum TransferMode { /** 正常转账模式 - 允许所有转账 */ NORMAL = 0, /** 限制转账模式 - 禁止所有转账 */ RESTRICTED = 1, /** 受控转账模式 - 只允许与 owner 相关的转账 */ CONTROLLED = 2 } /** TaxToken 税收配置状态 */ export type TaxTokenConfig = { /** 交易费率(基点,10000 = 100%) */ feeRate: bigint; /** 创始人分配比例(百分比,100 = 100%) */ rateFounder: bigint; /** 持有者分配比例 */ rateHolder: bigint; /** 销毁比例 */ rateBurn: bigint; /** 流动性比例 */ rateLiquidity: bigint; /** 创始人地址 */ founder: string; /** 报价代币地址 */ quote: string; /** PancakeSwap 配对地址 */ pair: string; /** 当前转账模式 */ mode: TransferMode; /** 最低分发阈值 */ minDispatch: bigint; /** 最低持仓参与分红门槛 */ minShare: bigint; }; /** TaxToken 奖励统计数据 */ export type TaxTokenRewardStats = { /** 总持仓份额 */ totalShares: bigint; /** 每份额累计奖励 */ feePerShare: bigint; /** 累积待分发手续费 */ feeAccumulated: bigint; /** 已分发手续费总额 */ feeDispatched: bigint; /** 分配给创始人的代币总额 */ feeFounder: bigint; /** 分配给持有者的代币总额 */ feeHolder: bigint; /** 销毁的代币总额 */ feeBurn: bigint; /** 注入流动性的代币总额 */ feeLiquidity: bigint; /** 创始人获得的报价代币总额 */ quoteFounder: bigint; /** 持有者获得的报价代币总额 */ quoteHolder: bigint; /** 已领取的报价代币总额 */ quoteClaimed: bigint; }; /** 用户在 TaxToken 中的奖励信息 */ export type TaxTokenUserInfo = { /** 用户持仓份额 */ share: bigint; /** 已计入的奖励债务 */ rewardDebt: bigint; /** 可领取的奖励金额(报价代币) */ claimable: bigint; /** 已领取的奖励金额(报价代币) */ claimed: bigint; }; /** TaxToken 完整信息 */ export type TaxTokenInfo = { config: TaxTokenConfig; rewardStats: TaxTokenRewardStats; }; /** * 链上判断代币是否是 TaxToken * * 原理:读取 TokenManager2._tokenInfos[token].template, * 提取 creatorType = (template >> 10) & 0x3F,判断是否等于 5 * * @param tokenAddress - 代币合约地址 * @param rpcUrl - BSC RPC URL * @returns 是否为 TaxToken */ export declare function isTaxToken(tokenAddress: string, rpcUrl: string): Promise; /** * 链上判断代币是否启用了 AntiSniperFeeMode * * 原理:读取 TokenManager2._tokenInfoEx1s[token].feeSetting > 0 * * @param tokenAddress - 代币合约地址 * @param rpcUrl - BSC RPC URL * @returns 是否启用 AntiSniperFeeMode */ export declare function isAntiSniperFeeMode(tokenAddress: string, rpcUrl: string): Promise; /** * 获取代币的 creatorType * * @param tokenAddress - 代币合约地址 * @param rpcUrl - BSC RPC URL * @returns creatorType 数值 */ export declare function getCreatorType(tokenAddress: string, rpcUrl: string): Promise; /** * 获取 TaxToken 的完整配置信息 * * @param tokenAddress - TaxToken 合约地址 * @param rpcUrl - BSC RPC URL * @returns 税收配置 + 奖励统计 */ export declare function getTaxTokenInfo(tokenAddress: string, rpcUrl: string): Promise; /** * 查询用户在 TaxToken 中的可领取奖励 * * @param tokenAddress - TaxToken 合约地址 * @param account - 用户钱包地址 * @param rpcUrl - BSC RPC URL * @returns 可领取的报价代币数量(wei) */ export declare function getClaimableFee(tokenAddress: string, account: string, rpcUrl: string): Promise; /** * 查询用户在 TaxToken 中的已领取奖励 * * @param tokenAddress - TaxToken 合约地址 * @param account - 用户钱包地址 * @param rpcUrl - BSC RPC URL * @returns 已领取的报价代币数量(wei) */ export declare function getClaimedFee(tokenAddress: string, account: string, rpcUrl: string): Promise; /** * 查询用户在 TaxToken 中的完整奖励信息 * * @param tokenAddress - TaxToken 合约地址 * @param account - 用户钱包地址 * @param rpcUrl - BSC RPC URL * @returns 用户奖励信息(份额、债务、可领取、已领取) */ export declare function getUserRewardInfo(tokenAddress: string, account: string, rpcUrl: string): Promise; /** * 构建 TaxToken 奖励领取的签名交易(不发送) * * @param tokenAddress - TaxToken 合约地址 * @param privateKey - 用户私钥 * @param rpcUrl - BSC RPC URL * @returns 签名后的交易 hex */ export declare function buildClaimFeeTx(tokenAddress: string, privateKey: string, rpcUrl: string): Promise; /** * 批量构建 TaxToken 奖励领取交易(多个钱包) * * @param tokenAddress - TaxToken 合约地址 * @param privateKeys - 用户私钥数组 * @param rpcUrl - BSC RPC URL * @returns 签名后的交易 hex 数组 */ export declare function buildBatchClaimFeeTxs(tokenAddress: string, privateKeys: string[], rpcUrl: string): Promise; /** * 验证 FourTokenTaxInfo 参数合法性 * * @param info - 税币配置 * @returns 验证结果,valid=true 表示合法 */ export declare function validateFourTokenTaxInfo(info: { feeRate: number; burnRate: number; divideRate: number; liquidityRate: number; recipientRate: number; minSharing: number; }): { valid: boolean; error?: string; }; export { TaxTokenAbi as TAX_TOKEN_ABI };