/** Fee data returned by {@link EvmRpcExplorer.getFeeData}. */ export interface RpcFeeData { /** Whether the chain supports EIP-1559 (type-2 transactions). */ supportsEip1559: boolean; /** Max fee per gas in wei (EIP-1559). `undefined` when the chain is legacy-only. */ maxFeePerGas?: bigint; /** Max priority fee per gas in wei (EIP-1559). `undefined` when the chain is legacy-only. */ maxPriorityFeePerGas?: bigint; /** Gas price in wei (legacy). Always present as a fallback. */ gasPrice: bigint; } /** Minimal transaction receipt returned by {@link EvmRpcExplorer.getTransactionReceipt}. */ export interface RpcTransactionReceipt { /** Block number the transaction was included in. */ blockNumber: number; /** `1` for success, `0` for revert. */ status: number; } /** * Lightweight EVM explorer that communicates directly with a JSON-RPC 2.0 * endpoint. No dependency on the ChainGate API. * * Only exposes the subset of RPC methods needed by {@link EvmRpcConnector} and * {@link EvmRpcTransaction}. */ export declare class EvmRpcExplorer { /** JSON-RPC endpoint URL. */ readonly rpcUrl: string; /** EVM chain ID. */ readonly chainId: number; private nextId; constructor(rpcUrl: string, chainId: number); /** * Returns the wei balance for an address (`eth_getBalance` at `"latest"`). */ getBalance(address: string): Promise; /** * Returns the nonce / transaction count for an address * (`eth_getTransactionCount` at `"latest"`). */ getTransactionCount(address: string): Promise; /** * Estimates gas for a transaction (`eth_estimateGas`). */ estimateGas(params: { from: string; to: string; value: bigint; data?: string; }): Promise; /** * Returns fee data for the current block. * * Tries EIP-1559 (`eth_maxPriorityFeePerGas` + `baseFeePerGas` from the * latest block). If the chain does not support EIP-1559, falls back to * `eth_gasPrice`. */ getFeeData(): Promise; /** * Broadcasts a signed raw transaction (`eth_sendRawTransaction`). * * @returns The transaction hash. */ sendRawTransaction(signedTxHex: string): Promise; /** * Returns the transaction receipt, or `null` if the transaction is still * pending (`eth_getTransactionReceipt`). */ getTransactionReceipt(txHash: string): Promise; /** * Returns the number of decimals for an ERC-20 token contract. */ getTokenDecimals(contractAddress: string): Promise; /** Returns the current gas price via `eth_gasPrice`. */ private getGasPrice; /** * Sends a JSON-RPC 2.0 request to the configured endpoint. * * @throws {RpcError} if the response contains an `error` field or the HTTP * request fails. */ private call; }