/** * Ethereum Chain Adapter * * Builds EVM transactions, attaches FROST signatures, and broadcasts * via ethers.js JsonRpcProvider. Works with Ethereum, Polygon, Arbitrum, * Optimism, Base, BSC, Avalanche — any EVM-compatible chain. */ import { ChainAdapter, EvmTransaction } from '../core/types'; export declare class EthereumAdapter implements ChainAdapter { private provider; private chainName; private chainId; constructor(chain?: string, rpcUrl?: string); getRpcUrl(): string; /** * Build an unsigned EVM transaction and serialize for signing * * @returns hex-encoded unsigned transaction hash (keccak256) */ buildTransaction(tx: EvmTransaction, fromAddress: string): Promise; /** * Attach a FROST-generated signature to the unsigned transaction * * @param unsignedTx - RLP-encoded unsigned transaction * @param signature - hex-encoded 65-byte signature (r || s || v) * @returns hex-encoded signed transaction ready for broadcast */ attachSignature(unsignedTx: string, signature: string): Promise; /** * Broadcast a signed transaction to the EVM chain * * @returns transaction hash */ broadcast(signedTx: string): Promise; /** * Get ETH/native token balance * * @returns balance in wei as string */ getBalance(address: string): Promise; /** Estimate gas for a transaction */ estimateGas(tx: EvmTransaction, from: string): Promise; /** Get current gas price info */ getGasPrice(): Promise<{ gasPrice: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; }>; /** Check if this chain uses legacy (type 0) transactions */ isLegacyChain(): boolean; /** Get current block number */ getBlockNumber(): Promise; /** Get transaction receipt */ getTransactionReceipt(hash: string): Promise; /** Wait for transaction confirmation */ waitForTransaction(hash: string, confirmations?: number): Promise; } /** Convenience factory function */ export declare function createEthereumAdapter(rpcUrl?: string): EthereumAdapter; export declare function createPolygonAdapter(rpcUrl?: string): EthereumAdapter; export declare function createArbitrumAdapter(rpcUrl?: string): EthereumAdapter; export declare function createBaseAdapter(rpcUrl?: string): EthereumAdapter; //# sourceMappingURL=ethereum.d.ts.map