/** * ERC20 授权额度检查(check 侧) * * 只读查询授权额度、批量查询(Multicall3)、智能路由检查等。 */ import { JsonRpcProvider } from 'ethers'; import { type SellApprovalChain } from './helpers.js'; /** * 检查代币授权状态 - Four.meme V1(只读,不发送交易) */ export declare function checkSellApprovalV1(chain: SellApprovalChain, rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{ isApproved: boolean; currentAllowance: bigint; requiredAllowance: bigint; }>; /** * 检查代币授权状态 - Four.meme V2(只读,不发送交易) */ export declare function checkSellApprovalV2(chain: SellApprovalChain, rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{ isApproved: boolean; currentAllowance: bigint; requiredAllowance: bigint; }>; /** * 检查代币授权状态 - Four.meme(通用,默认使用 V2) * @deprecated 建议使用明确版本的方法:checkSellApprovalV1 或 checkSellApprovalV2 */ export declare function checkSellApproval(chain: 'BSC' | 'BASE' | 'ARBITRUM_ONE', rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{ isApproved: boolean; currentAllowance: bigint; requiredAllowance: bigint; }>; /** * 检查代币授权状态 - Flap Protocol(只读,不发送交易) * @returns 是否已授权足够的额度 */ export declare function checkFlapSellApproval(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', rpcUrl: string, token: string, owner: string, amount: bigint): Promise<{ isApproved: boolean; currentAllowance: bigint; requiredAllowance: bigint; }>; /** * 批量检查 Flap Protocol 授权状态(默认按上限 2^256-1 判断) * ✅ 使用 Multicall3 批量查询,减少 RPC 调用次数 */ export declare function checkFlapSellApprovalBatch(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', rpcUrl: string, token: string, owners: string[], required?: bigint): Promise>; /** * 使用 Multicall3 批量查询 ERC20 授权额度 * @param provider - Provider 实例 * @param tokenAddress - ERC20 代币地址 * @param owners - 所有者地址数组 * @param spender - 被授权的 spender 地址 * @returns 每个地址的授权额度数组 */ export declare function batchCheckAllowances(provider: JsonRpcProvider, tokenAddress: string, owners: string[], spender: string): Promise; /** * ✅ 智能路由:检查单个 ERC20 授权额度(自动选择 spender) * * @param chain - 链名称 ('BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD') * @param platform - 平台名称 ('flap' | 'four' | 'pancake-v2' | 'pancake-v3') * @param rpcUrl - RPC 节点地址 * @param tokenAddress - 代币合约地址 * @param ownerAddress - 代币持有者地址 * @returns 当前授权额度(bigint) */ export declare function checkAllowance(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', platform: 'flap' | 'four' | 'pancake-v2' | 'pancake-v3', rpcUrl: string, tokenAddress: string, ownerAddress: string): Promise; /** * ✅ 底层方法:检查 ERC20 代币授权额度(手动指定 spender) * 适用于任意 spender 地址(Flap、Four、PancakeSwap V2/V3 等) * * @param rpcUrl - RPC 节点地址 * @param tokenAddress - 代币合约地址 * @param ownerAddress - 代币持有者地址 * @param spenderAddress - 被授权的合约地址(如 Router、Portal、TokenManager 等) * @returns 当前授权额度(bigint) */ export declare function checkAllowanceRaw(rpcUrl: string, tokenAddress: string, ownerAddress: string, spenderAddress: string): Promise; /** * ✅ 智能路由:批量检查多个钱包的授权额度(自动选择 spender) * * @param chain - 链名称 ('BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD') * @param platform - 平台名称 ('flap' | 'four' | 'pancake-v2' | 'pancake-v3') * @param rpcUrl - RPC 节点地址 * @param tokenAddress - 代币合约地址 * @param ownerAddresses - 代币持有者地址数组 * @returns 每个地址的授权额度数组 */ export declare function checkAllowanceBatch(chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD', platform: 'flap' | 'four' | 'pancake-v2' | 'pancake-v3', rpcUrl: string, tokenAddress: string, ownerAddresses: string[]): Promise; /** * ✅ 底层方法:批量检查多个钱包的授权额度(手动指定 spender) * 适用于任意 spender 地址(Flap、Four、PancakeSwap V2/V3 等) * * @param rpcUrl - RPC 节点地址 * @param tokenAddress - 代币合约地址 * @param ownerAddresses - 代币持有者地址数组 * @param spenderAddress - 被授权的合约地址 * @returns 每个地址的授权额度数组 */ export declare function checkAllowanceBatchRaw(rpcUrl: string, tokenAddress: string, ownerAddresses: string[], spenderAddress: string): Promise;