interface ProviderInterface {
    request(args:
        | {
            method: "eth_accounts";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly `0x${string}`[];
        }
        | {
            method: "eth_blobBaseFee";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_blockNumber";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_call";
            params: [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }] | [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }, block: `0x${string}` | Tag | Identifier<bigint>] | [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }, block: `0x${string}` | Tag | Identifier<bigint>, stateOverrides: {}];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_chainId";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_coinbase";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_estimateGas";
            params: [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }] | [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }, block: `0x${string}` | Tag | Identifier<bigint>] | [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }, block: `0x${string}` | Tag | Identifier<bigint>, stateOverrides: {}];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_feeHistory";
            params: [blockCount: `0x${string}`, newestBlock: `0x${string}` | Tag, rewardPercentiles: number[]];
            id: number;
            jsonrpc: "2.0";
            _returnType: {
                baseFeePerGas: `0x${string}`[];
                gasUsedRatio: number[];
                oldestBlock: `0x${string}`;
                reward?: `0x${string}`[][];
            };
        }
        | {
            method: "eth_gasPrice";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getBalance";
            params: [address: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getBlockByHash";
            params: [hash: `0x${string}`, includeTransactionObjects: boolean];
            id: number;
            jsonrpc: "2.0";
            _returnType: null | {
                baseFeePerGas?: `0x${string}`;
                blobGasUsed?: `0x${string}`;
                difficulty?: `0x${string}`;
                excessBlobGas?: `0x${string}`;
                extraData?: `0x${string}`;
                gasLimit: `0x${string}`;
                gasUsed: `0x${string}`;
                hash: `0x${string}`;
                logsBloom: `0x${string}`;
                miner: `0x${string}`;
                mixHash: `0x${string}`;
                nonce: `0x${string}`;
                number: `0x${string}`;
                parentBeaconBlockRoot?: `0x${string}`;
                parentHash: `0x${string}`;
                receiptsRoot: `0x${string}`;
                sealFields?: readonly `0x${string}`[];
                sha3Uncles: `0x${string}`;
                size: `0x${string}`;
                stateRoot: `0x${string}`;
                timestamp: `0x${string}`;
                totalDifficulty?: `0x${string}`;
                transactions: readonly `0x${string}`[] | readonly Rpc<false>[];
                transactionsRoot: `0x${string}`;
                uncles: readonly `0x${string}`[];
                withdrawals?: readonly Withdrawal<`0x${string}`, `0x${string}`>[];
                withdrawalsRoot?: `0x${string}`;
            };
        }
        | {
            method: "eth_getBlockByNumber";
            params: [block: `0x${string}` | Tag, includeTransactionObjects: boolean];
            id: number;
            jsonrpc: "2.0";
            _returnType: null | {
                baseFeePerGas?: `0x${string}`;
                blobGasUsed?: `0x${string}`;
                difficulty?: `0x${string}`;
                excessBlobGas?: `0x${string}`;
                extraData?: `0x${string}`;
                gasLimit: `0x${string}`;
                gasUsed: `0x${string}`;
                hash: `0x${string}`;
                logsBloom: `0x${string}`;
                miner: `0x${string}`;
                mixHash: `0x${string}`;
                nonce: `0x${string}`;
                number: `0x${string}`;
                parentBeaconBlockRoot?: `0x${string}`;
                parentHash: `0x${string}`;
                receiptsRoot: `0x${string}`;
                sealFields?: readonly `0x${string}`[];
                sha3Uncles: `0x${string}`;
                size: `0x${string}`;
                stateRoot: `0x${string}`;
                timestamp: `0x${string}`;
                totalDifficulty?: `0x${string}`;
                transactions: readonly `0x${string}`[] | readonly Rpc<false>[];
                transactionsRoot: `0x${string}`;
                uncles: readonly `0x${string}`[];
                withdrawals?: readonly Withdrawal<`0x${string}`, `0x${string}`>[];
                withdrawalsRoot?: `0x${string}`;
            };
        }
        | {
            method: "eth_getBlockTransactionCountByHash";
            params: [hash: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getBlockTransactionCountByNumber";
            params: [block: `0x${string}` | Tag];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getCode";
            params: [address: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getFilterChanges";
            params: [filterId: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly `0x${string}`[] | readonly {
                address: `0x${string}`;
                blockHash: `0x${string}`;
                blockNumber: `0x${string}`;
                data: `0x${string}`;
                logIndex: `0x${string}`;
                topics: [`0x${string}`, ...`0x${string}`[]];
                transactionHash: `0x${string}`;
                transactionIndex: `0x${string}`;
                removed: boolean;
            }[];
        }
        | {
            method: "eth_getFilterLogs";
            params: [filterId: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly {
                address: `0x${string}`;
                blockHash: `0x${string}`;
                blockNumber: `0x${string}`;
                data: `0x${string}`;
                logIndex: `0x${string}`;
                topics: [`0x${string}`, ...`0x${string}`[]];
                transactionHash: `0x${string}`;
                transactionIndex: `0x${string}`;
                removed: boolean;
            }[];
        }
        | {
            method: "eth_getLogs";
            params: [filter: {
                address?: null | `0x${string}` | readonly `0x${string}`[];
                fromBlock?: `0x${string}` | Tag;
                toBlock?: `0x${string}` | Tag;
                topics?: Topics;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly {
                address: `0x${string}`;
                blockHash: `0x${string}`;
                blockNumber: `0x${string}`;
                data: `0x${string}`;
                logIndex: `0x${string}`;
                topics: [`0x${string}`, ...`0x${string}`[]];
                transactionHash: `0x${string}`;
                transactionIndex: `0x${string}`;
                removed: boolean;
            }[];
        }
        | {
            method: "eth_getProof";
            params: [address: `0x${string}`, storageKeys: `0x${string}`[], block: `0x${string}` | Tag | Identifier<bigint>];
            id: number;
            jsonrpc: "2.0";
            _returnType: Rpc;
        }
        | {
            method: "eth_getStorageAt";
            params: [address: `0x${string}`, index: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getTransactionByBlockHashAndIndex";
            params: [hash: `0x${string}`, index: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: null | Rpc<false>;
        }
        | {
            method: "eth_getTransactionByBlockNumberAndIndex";
            params: [block: `0x${string}` | Tag, index: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: null | Rpc<false>;
        }
        | {
            method: "eth_getTransactionByHash";
            params: [hash: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: null | Rpc<false>;
        }
        | {
            method: "eth_getTransactionCount";
            params: [address: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getTransactionReceipt";
            params: [hash: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: null | {
                blobGasPrice?: `0x${string}`;
                blobGasUsed?: `0x${string}`;
                blockHash: `0x${string}`;
                blockNumber: `0x${string}`;
                contractAddress?: null | `0x${string}`;
                cumulativeGasUsed: `0x${string}`;
                effectiveGasPrice: `0x${string}`;
                from: `0x${string}`;
                gasUsed: `0x${string}`;
                logs: {
                    address: `0x${string}`;
                    blockHash: `0x${string}`;
                    blockNumber: `0x${string}`;
                    data: `0x${string}`;
                    logIndex: `0x${string}`;
                    topics: [`0x${string}`, ...`0x${string}`[]];
                    transactionHash: `0x${string}`;
                    transactionIndex: `0x${string}`;
                    removed: boolean;
                }[];
                logsBloom: `0x${string}`;
                root?: `0x${string}`;
                status: RpcStatus;
                to: null | `0x${string}`;
                transactionHash: `0x${string}`;
                transactionIndex: `0x${string}`;
                type: RpcType;
            };
        }
        | {
            method: "eth_getUncleCountByBlockHash";
            params: [hash: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_getUncleCountByBlockNumber";
            params: [block: `0x${string}` | Tag];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_maxPriorityFeePerGas";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_newBlockFilter";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_newFilter";
            params: [filter: {
                address?: null | `0x${string}` | readonly `0x${string}`[];
                fromBlock?: `0x${string}` | Tag;
                toBlock?: `0x${string}` | Tag;
                topics?: Topics;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_newPendingTransactionFilter";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_protocolVersion";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: string;
        }
        | {
            method: "eth_requestAccounts";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly `0x${string}`[];
        }
        | {
            method: "eth_sendRawTransaction";
            params: [serializedTransaction: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_sendTransaction";
            params: [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_simulateV1";
            params: [{
                blockStateCalls: readonly {
                    blockOverrides?: Rpc;
                    calls?: readonly {
                        accessList?: readonly (...)[];
                        authorizationList?: readonly (...)[];
                        blobVersionedHashes?: readonly (...)[];
                        blobs?: readonly (...)[];
                        chainId?: `0x${(...)}`;
                        data?: `0x${(...)}`;
                        input?: `0x${(...)}`;
                        from?: `0x${(...)}`;
                        gas?: `0x${(...)}`;
                        gasPrice?: `0x${(...)}`;
                        maxFeePerBlobGas?: `0x${(...)}`;
                        maxFeePerGas?: `0x${(...)}`;
                        maxPriorityFeePerGas?: `0x${(...)}`;
                        nonce?: `0x${(...)}`;
                        to?: null | `0x${(...)}`;
                        type?: string;
                        value?: `0x${(...)}`;
                    }[];
                    stateOverrides?: {};
                }[];
                returnFullTransactions?: boolean;
                traceTransfers?: boolean;
                validation?: boolean;
            }, block: `0x${string}` | Tag | Identifier<bigint>];
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly ({
                baseFeePerGas?: `0x${string}`;
                blobGasUsed?: `0x${string}`;
                difficulty?: `0x${string}`;
                excessBlobGas?: `0x${string}`;
                extraData?: `0x${string}`;
                gasLimit: `0x${string}`;
                gasUsed: `0x${string}`;
                hash: `0x${string}`;
                logsBloom: `0x${string}`;
                miner: `0x${string}`;
                mixHash: `0x${string}`;
                nonce: `0x${string}`;
                number: `0x${string}`;
                parentBeaconBlockRoot?: `0x${string}`;
                parentHash: `0x${string}`;
                receiptsRoot: `0x${string}`;
                sealFields?: readonly `0x${string}`[];
                sha3Uncles: `0x${string}`;
                size: `0x${string}`;
                stateRoot: `0x${string}`;
                timestamp: `0x${string}`;
                totalDifficulty?: `0x${string}`;
                transactions: readonly `0x${string}`[] | readonly Rpc<false>[];
                transactionsRoot: `0x${string}`;
                uncles: readonly `0x${string}`[];
                withdrawals?: readonly Withdrawal<`0x${string}`, `0x${string}`>[];
                withdrawalsRoot?: `0x${string}`;
            } & {
                calls?: readonly {
                    error?: {
                        data?: (...) | (...);
                        code: number;
                        message: string;
                    };
                    logs?: readonly {
                        address: ...;
                        blockHash: ...;
                        blockNumber: ...;
                        data: ...;
                        logIndex: ...;
                        topics: ...;
                        transactionHash: ...;
                        transactionIndex: ...;
                        removed: ...;
                    }[];
                    gasUsed: `0x${string}`;
                    returnData: `0x${string}`;
                    status: `0x${string}`;
                }[];
            })[];
        }
        | {
            method: "eth_signTransaction";
            params: [request: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_signTypedData_v4";
            params: [address: `0x${string}`, message: string];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_uninstallFilter";
            params: [filterId: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: boolean;
        }
        | {
            method: "eth_requestAccounts";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly `0x${string}`[];
        }
        | {
            method: "eth_sendRawTransaction";
            params: [serializedTransaction: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_sendTransaction";
            params: [transaction: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_signTransaction";
            params: [request: {
                accessList?: readonly {
                    address: `0x${string}`;
                    storageKeys: readonly `0x${string}`[];
                }[];
                authorizationList?: readonly {
                    address: `0x${string}`;
                    chainId: `0x${string}`;
                    nonce: `0x${string}`;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    yParity: `0x${string}`;
                }[];
                blobVersionedHashes?: readonly `0x${string}`[];
                blobs?: readonly `0x${string}`[];
                chainId?: `0x${string}`;
                data?: `0x${string}`;
                input?: `0x${string}`;
                from?: `0x${string}`;
                gas?: `0x${string}`;
                gasPrice?: `0x${string}`;
                maxFeePerBlobGas?: `0x${string}`;
                maxFeePerGas?: `0x${string}`;
                maxPriorityFeePerGas?: `0x${string}`;
                nonce?: `0x${string}`;
                to?: null | `0x${string}`;
                type?: string;
                value?: `0x${string}`;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "eth_signTypedData_v4";
            params: [address: `0x${string}`, message: string];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "personal_sign";
            params: [data: `0x${string}`, address: `0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: `0x${string}`;
        }
        | {
            method: "wallet_addEthereumChain";
            params: [chain: {
                chainId: string;
                chainName: string;
                nativeCurrency?: {
                    name: string;
                    symbol: string;
                    decimals: number;
                };
                rpcUrls: readonly string[];
                blockExplorerUrls?: readonly string[];
                iconUrls?: readonly string[];
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: null;
        }
        | {
            method: "wallet_getCallsStatus";
            params?: [string];
            id: number;
            jsonrpc: "2.0";
            _returnType: {
                status: "PENDING" | "CONFIRMED";
                receipts?: readonly {
                    logs: {
                        address: `0x${string}`;
                        data: `0x${string}`;
                        topics: readonly `0x${string}`[];
                    }[];
                    status: `0x${string}`;
                    blockHash: `0x${string}`;
                    blockNumber: `0x${string}`;
                    gasUsed: `0x${string}`;
                    transactionHash: `0x${string}`;
                }[];
            };
        }
        | {
            method: "wallet_getCapabilities";
            params?: [`0x${string}`];
            id: number;
            jsonrpc: "2.0";
            _returnType: {};
        }
        | {
            method: "wallet_getPermissions";
            params?: undefined;
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly {
                caveats: readonly WalletPermissionCaveat[];
                date: number;
                id: string;
                invoker: `http://${string}` | `https://${string}`;
                parentCapability: string;
            }[];
        }
        | {
            method: "wallet_grantPermissions";
            params?: [WalletGrantPermissionsParameters];
            id: number;
            jsonrpc: "2.0";
            _returnType: {
                expiry: number;
                factory?: `0x${string}`;
                factoryData?: string;
                grantedPermissions: readonly {
                    data: unknown;
                    policies: readonly {
                        data: unknown;
                        type: string;
                    }[];
                    required?: boolean;
                    type: string;
                }[];
                permissionsContext: string;
                signerData?: {
                    userOpBuilder?: `0x${string}`;
                    submitToAddress?: `0x${string}`;
                };
            };
        }
        | {
            method: "wallet_requestPermissions";
            params: [permissions: {
                eth_accounts: Record<string, any>;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: readonly {
                caveats: readonly WalletPermissionCaveat[];
                date: number;
                id: string;
                invoker: `http://${string}` | `https://${string}`;
                parentCapability: string;
            }[];
        }
        | {
            method: "wallet_revokePermissions";
            params: [permissions: {
                eth_accounts: Record<string, any>;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: null;
        }
        | {
            method: "wallet_sendCalls";
            params: [{
                calls: readonly {
                    to?: `0x${string}`;
                    data?: `0x${string}`;
                    value?: `0x${string}`;
                }[];
                capabilities?: WalletCapabilities;
                chainId?: `0x${string}`;
                from: `0x${string}`;
                version: string;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: string;
        }
        | {
            method: "wallet_showCallsStatus";
            params: [string];
            id: number;
            jsonrpc: "2.0";
            _returnType: undefined;
        }
        | {
            method: "wallet_switchEthereumChain";
            params: [chain: {
                chainId: string;
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: null;
        }
        | {
            method: "wallet_watchAsset";
            params: [{
                type: "ERC20";
                options: {
                    address: string;
                    symbol: string;
                    decimals: number;
                    image?: string;
                };
            }];
            id: number;
            jsonrpc: "2.0";
            _returnType: boolean;
        }
        | {
            method: "handshake";
            params: undefined | object | readonly unknown[];
            id: number;
            jsonrpc: "2.0";
            _returnType: undefined;
        }
        | {
            method: "wallet_disconnect";
            id: number;
            jsonrpc: "2.0";
            _returnType: undefined;
        }
        | {
            method: "wallet_connect";
            params?: [ConnectParameters];
            id: number;
            jsonrpc: "2.0";
            _returnType: ConnectReturnType;
        }): Promise<unknown>;
    disconnect(): Promise<void>;
    emit<K>(event: K, ...args: [ProviderEventMap[K]]): boolean;
    on<K>(event: K, listener: ((_: ProviderEventMap[K]) => void)): this;
    eventNames(): (keyof ProviderEventMap)[];
    listeners<T>(event: T): ((...args: any[]) => void)[];
    listenerCount(event: keyof ProviderEventMap): number;
    addListener<T>(event: T, fn: ((...args: any[]) => void), context?: any): this;
    once<T>(event: T, fn: ((...args: any[]) => void), context?: any): this;
    removeListener<T>(event: T, fn?: ((...args: any[]) => void), context?: any, once?: boolean): this;
    off<T>(event: T, fn?: ((...args: any[]) => void), context?: any, once?: boolean): this;
    removeAllListeners(event?: keyof ProviderEventMap): this;
}

Hierarchy

  • ProviderEventEmitter
    • ProviderInterface

Methods

  • Parameters

    • args:
          | {
              method: "eth_accounts";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly `0x${string}`[];
          }
          | {
              method: "eth_blobBaseFee";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_blockNumber";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_call";
              params: [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }] | [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }, block: `0x${string}` | Tag | Identifier<bigint>] | [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }, block: `0x${string}` | Tag | Identifier<bigint>, stateOverrides: {}];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_chainId";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_coinbase";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_estimateGas";
              params: [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }] | [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }, block: `0x${string}` | Tag | Identifier<bigint>] | [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }, block: `0x${string}` | Tag | Identifier<bigint>, stateOverrides: {}];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_feeHistory";
              params: [blockCount: `0x${string}`, newestBlock: `0x${string}` | Tag, rewardPercentiles: number[]];
              id: number;
              jsonrpc: "2.0";
              _returnType: {
                  baseFeePerGas: `0x${string}`[];
                  gasUsedRatio: number[];
                  oldestBlock: `0x${string}`;
                  reward?: `0x${string}`[][];
              };
          }
          | {
              method: "eth_gasPrice";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getBalance";
              params: [address: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getBlockByHash";
              params: [hash: `0x${string}`, includeTransactionObjects: boolean];
              id: number;
              jsonrpc: "2.0";
              _returnType: null | {
                  baseFeePerGas?: `0x${string}`;
                  blobGasUsed?: `0x${string}`;
                  difficulty?: `0x${string}`;
                  excessBlobGas?: `0x${string}`;
                  extraData?: `0x${string}`;
                  gasLimit: `0x${string}`;
                  gasUsed: `0x${string}`;
                  hash: `0x${string}`;
                  logsBloom: `0x${string}`;
                  miner: `0x${string}`;
                  mixHash: `0x${string}`;
                  nonce: `0x${string}`;
                  number: `0x${string}`;
                  parentBeaconBlockRoot?: `0x${string}`;
                  parentHash: `0x${string}`;
                  receiptsRoot: `0x${string}`;
                  sealFields?: readonly `0x${string}`[];
                  sha3Uncles: `0x${string}`;
                  size: `0x${string}`;
                  stateRoot: `0x${string}`;
                  timestamp: `0x${string}`;
                  totalDifficulty?: `0x${string}`;
                  transactions: readonly `0x${string}`[] | readonly Rpc<false>[];
                  transactionsRoot: `0x${string}`;
                  uncles: readonly `0x${string}`[];
                  withdrawals?: readonly Withdrawal<`0x${string}`, `0x${string}`>[];
                  withdrawalsRoot?: `0x${string}`;
              };
          }
          | {
              method: "eth_getBlockByNumber";
              params: [block: `0x${string}` | Tag, includeTransactionObjects: boolean];
              id: number;
              jsonrpc: "2.0";
              _returnType: null | {
                  baseFeePerGas?: `0x${string}`;
                  blobGasUsed?: `0x${string}`;
                  difficulty?: `0x${string}`;
                  excessBlobGas?: `0x${string}`;
                  extraData?: `0x${string}`;
                  gasLimit: `0x${string}`;
                  gasUsed: `0x${string}`;
                  hash: `0x${string}`;
                  logsBloom: `0x${string}`;
                  miner: `0x${string}`;
                  mixHash: `0x${string}`;
                  nonce: `0x${string}`;
                  number: `0x${string}`;
                  parentBeaconBlockRoot?: `0x${string}`;
                  parentHash: `0x${string}`;
                  receiptsRoot: `0x${string}`;
                  sealFields?: readonly `0x${string}`[];
                  sha3Uncles: `0x${string}`;
                  size: `0x${string}`;
                  stateRoot: `0x${string}`;
                  timestamp: `0x${string}`;
                  totalDifficulty?: `0x${string}`;
                  transactions: readonly `0x${string}`[] | readonly Rpc<false>[];
                  transactionsRoot: `0x${string}`;
                  uncles: readonly `0x${string}`[];
                  withdrawals?: readonly Withdrawal<`0x${string}`, `0x${string}`>[];
                  withdrawalsRoot?: `0x${string}`;
              };
          }
          | {
              method: "eth_getBlockTransactionCountByHash";
              params: [hash: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getBlockTransactionCountByNumber";
              params: [block: `0x${string}` | Tag];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getCode";
              params: [address: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getFilterChanges";
              params: [filterId: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly `0x${string}`[] | readonly {
                  address: `0x${string}`;
                  blockHash: `0x${string}`;
                  blockNumber: `0x${string}`;
                  data: `0x${string}`;
                  logIndex: `0x${string}`;
                  topics: [`0x${string}`, ...`0x${string}`[]];
                  transactionHash: `0x${string}`;
                  transactionIndex: `0x${string}`;
                  removed: boolean;
              }[];
          }
          | {
              method: "eth_getFilterLogs";
              params: [filterId: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly {
                  address: `0x${string}`;
                  blockHash: `0x${string}`;
                  blockNumber: `0x${string}`;
                  data: `0x${string}`;
                  logIndex: `0x${string}`;
                  topics: [`0x${string}`, ...`0x${string}`[]];
                  transactionHash: `0x${string}`;
                  transactionIndex: `0x${string}`;
                  removed: boolean;
              }[];
          }
          | {
              method: "eth_getLogs";
              params: [filter: {
                  address?: null | `0x${string}` | readonly `0x${string}`[];
                  fromBlock?: `0x${string}` | Tag;
                  toBlock?: `0x${string}` | Tag;
                  topics?: Topics;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly {
                  address: `0x${string}`;
                  blockHash: `0x${string}`;
                  blockNumber: `0x${string}`;
                  data: `0x${string}`;
                  logIndex: `0x${string}`;
                  topics: [`0x${string}`, ...`0x${string}`[]];
                  transactionHash: `0x${string}`;
                  transactionIndex: `0x${string}`;
                  removed: boolean;
              }[];
          }
          | {
              method: "eth_getProof";
              params: [address: `0x${string}`, storageKeys: `0x${string}`[], block: `0x${string}` | Tag | Identifier<bigint>];
              id: number;
              jsonrpc: "2.0";
              _returnType: Rpc;
          }
          | {
              method: "eth_getStorageAt";
              params: [address: `0x${string}`, index: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getTransactionByBlockHashAndIndex";
              params: [hash: `0x${string}`, index: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: null | Rpc<false>;
          }
          | {
              method: "eth_getTransactionByBlockNumberAndIndex";
              params: [block: `0x${string}` | Tag, index: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: null | Rpc<false>;
          }
          | {
              method: "eth_getTransactionByHash";
              params: [hash: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: null | Rpc<false>;
          }
          | {
              method: "eth_getTransactionCount";
              params: [address: `0x${string}`, block: `0x${string}` | Tag | Identifier<bigint>];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getTransactionReceipt";
              params: [hash: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: null | {
                  blobGasPrice?: `0x${string}`;
                  blobGasUsed?: `0x${string}`;
                  blockHash: `0x${string}`;
                  blockNumber: `0x${string}`;
                  contractAddress?: null | `0x${string}`;
                  cumulativeGasUsed: `0x${string}`;
                  effectiveGasPrice: `0x${string}`;
                  from: `0x${string}`;
                  gasUsed: `0x${string}`;
                  logs: {
                      address: `0x${string}`;
                      blockHash: `0x${string}`;
                      blockNumber: `0x${string}`;
                      data: `0x${string}`;
                      logIndex: `0x${string}`;
                      topics: [`0x${string}`, ...`0x${string}`[]];
                      transactionHash: `0x${string}`;
                      transactionIndex: `0x${string}`;
                      removed: boolean;
                  }[];
                  logsBloom: `0x${string}`;
                  root?: `0x${string}`;
                  status: RpcStatus;
                  to: null | `0x${string}`;
                  transactionHash: `0x${string}`;
                  transactionIndex: `0x${string}`;
                  type: RpcType;
              };
          }
          | {
              method: "eth_getUncleCountByBlockHash";
              params: [hash: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_getUncleCountByBlockNumber";
              params: [block: `0x${string}` | Tag];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_maxPriorityFeePerGas";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_newBlockFilter";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_newFilter";
              params: [filter: {
                  address?: null | `0x${string}` | readonly `0x${string}`[];
                  fromBlock?: `0x${string}` | Tag;
                  toBlock?: `0x${string}` | Tag;
                  topics?: Topics;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_newPendingTransactionFilter";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_protocolVersion";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: string;
          }
          | {
              method: "eth_requestAccounts";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly `0x${string}`[];
          }
          | {
              method: "eth_sendRawTransaction";
              params: [serializedTransaction: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_sendTransaction";
              params: [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_simulateV1";
              params: [{
                  blockStateCalls: readonly {
                      blockOverrides?: Rpc;
                      calls?: readonly {
                          accessList?: readonly (...)[];
                          authorizationList?: readonly (...)[];
                          blobVersionedHashes?: readonly (...)[];
                          blobs?: readonly (...)[];
                          chainId?: `0x${(...)}`;
                          data?: `0x${(...)}`;
                          input?: `0x${(...)}`;
                          from?: `0x${(...)}`;
                          gas?: `0x${(...)}`;
                          gasPrice?: `0x${(...)}`;
                          maxFeePerBlobGas?: `0x${(...)}`;
                          maxFeePerGas?: `0x${(...)}`;
                          maxPriorityFeePerGas?: `0x${(...)}`;
                          nonce?: `0x${(...)}`;
                          to?: null | `0x${(...)}`;
                          type?: string;
                          value?: `0x${(...)}`;
                      }[];
                      stateOverrides?: {};
                  }[];
                  returnFullTransactions?: boolean;
                  traceTransfers?: boolean;
                  validation?: boolean;
              }, block: `0x${string}` | Tag | Identifier<bigint>];
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly ({
                  baseFeePerGas?: `0x${string}`;
                  blobGasUsed?: `0x${string}`;
                  difficulty?: `0x${string}`;
                  excessBlobGas?: `0x${string}`;
                  extraData?: `0x${string}`;
                  gasLimit: `0x${string}`;
                  gasUsed: `0x${string}`;
                  hash: `0x${string}`;
                  logsBloom: `0x${string}`;
                  miner: `0x${string}`;
                  mixHash: `0x${string}`;
                  nonce: `0x${string}`;
                  number: `0x${string}`;
                  parentBeaconBlockRoot?: `0x${string}`;
                  parentHash: `0x${string}`;
                  receiptsRoot: `0x${string}`;
                  sealFields?: readonly `0x${string}`[];
                  sha3Uncles: `0x${string}`;
                  size: `0x${string}`;
                  stateRoot: `0x${string}`;
                  timestamp: `0x${string}`;
                  totalDifficulty?: `0x${string}`;
                  transactions: readonly `0x${string}`[] | readonly Rpc<false>[];
                  transactionsRoot: `0x${string}`;
                  uncles: readonly `0x${string}`[];
                  withdrawals?: readonly Withdrawal<`0x${string}`, `0x${string}`>[];
                  withdrawalsRoot?: `0x${string}`;
              } & {
                  calls?: readonly {
                      error?: {
                          data?: (...) | (...);
                          code: number;
                          message: string;
                      };
                      logs?: readonly {
                          address: ...;
                          blockHash: ...;
                          blockNumber: ...;
                          data: ...;
                          logIndex: ...;
                          topics: ...;
                          transactionHash: ...;
                          transactionIndex: ...;
                          removed: ...;
                      }[];
                      gasUsed: `0x${string}`;
                      returnData: `0x${string}`;
                      status: `0x${string}`;
                  }[];
              })[];
          }
          | {
              method: "eth_signTransaction";
              params: [request: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_signTypedData_v4";
              params: [address: `0x${string}`, message: string];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_uninstallFilter";
              params: [filterId: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: boolean;
          }
          | {
              method: "eth_requestAccounts";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly `0x${string}`[];
          }
          | {
              method: "eth_sendRawTransaction";
              params: [serializedTransaction: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_sendTransaction";
              params: [transaction: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_signTransaction";
              params: [request: {
                  accessList?: readonly {
                      address: `0x${string}`;
                      storageKeys: readonly `0x${string}`[];
                  }[];
                  authorizationList?: readonly {
                      address: `0x${string}`;
                      chainId: `0x${string}`;
                      nonce: `0x${string}`;
                      r: `0x${string}`;
                      s: `0x${string}`;
                      yParity: `0x${string}`;
                  }[];
                  blobVersionedHashes?: readonly `0x${string}`[];
                  blobs?: readonly `0x${string}`[];
                  chainId?: `0x${string}`;
                  data?: `0x${string}`;
                  input?: `0x${string}`;
                  from?: `0x${string}`;
                  gas?: `0x${string}`;
                  gasPrice?: `0x${string}`;
                  maxFeePerBlobGas?: `0x${string}`;
                  maxFeePerGas?: `0x${string}`;
                  maxPriorityFeePerGas?: `0x${string}`;
                  nonce?: `0x${string}`;
                  to?: null | `0x${string}`;
                  type?: string;
                  value?: `0x${string}`;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "eth_signTypedData_v4";
              params: [address: `0x${string}`, message: string];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "personal_sign";
              params: [data: `0x${string}`, address: `0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: `0x${string}`;
          }
          | {
              method: "wallet_addEthereumChain";
              params: [chain: {
                  chainId: string;
                  chainName: string;
                  nativeCurrency?: {
                      name: string;
                      symbol: string;
                      decimals: number;
                  };
                  rpcUrls: readonly string[];
                  blockExplorerUrls?: readonly string[];
                  iconUrls?: readonly string[];
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: null;
          }
          | {
              method: "wallet_getCallsStatus";
              params?: [string];
              id: number;
              jsonrpc: "2.0";
              _returnType: {
                  status: "PENDING" | "CONFIRMED";
                  receipts?: readonly {
                      logs: {
                          address: `0x${string}`;
                          data: `0x${string}`;
                          topics: readonly `0x${string}`[];
                      }[];
                      status: `0x${string}`;
                      blockHash: `0x${string}`;
                      blockNumber: `0x${string}`;
                      gasUsed: `0x${string}`;
                      transactionHash: `0x${string}`;
                  }[];
              };
          }
          | {
              method: "wallet_getCapabilities";
              params?: [`0x${string}`];
              id: number;
              jsonrpc: "2.0";
              _returnType: {};
          }
          | {
              method: "wallet_getPermissions";
              params?: undefined;
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly {
                  caveats: readonly WalletPermissionCaveat[];
                  date: number;
                  id: string;
                  invoker: `http://${string}` | `https://${string}`;
                  parentCapability: string;
              }[];
          }
          | {
              method: "wallet_grantPermissions";
              params?: [WalletGrantPermissionsParameters];
              id: number;
              jsonrpc: "2.0";
              _returnType: {
                  expiry: number;
                  factory?: `0x${string}`;
                  factoryData?: string;
                  grantedPermissions: readonly {
                      data: unknown;
                      policies: readonly {
                          data: unknown;
                          type: string;
                      }[];
                      required?: boolean;
                      type: string;
                  }[];
                  permissionsContext: string;
                  signerData?: {
                      userOpBuilder?: `0x${string}`;
                      submitToAddress?: `0x${string}`;
                  };
              };
          }
          | {
              method: "wallet_requestPermissions";
              params: [permissions: {
                  eth_accounts: Record<string, any>;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: readonly {
                  caveats: readonly WalletPermissionCaveat[];
                  date: number;
                  id: string;
                  invoker: `http://${string}` | `https://${string}`;
                  parentCapability: string;
              }[];
          }
          | {
              method: "wallet_revokePermissions";
              params: [permissions: {
                  eth_accounts: Record<string, any>;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: null;
          }
          | {
              method: "wallet_sendCalls";
              params: [{
                  calls: readonly {
                      to?: `0x${string}`;
                      data?: `0x${string}`;
                      value?: `0x${string}`;
                  }[];
                  capabilities?: WalletCapabilities;
                  chainId?: `0x${string}`;
                  from: `0x${string}`;
                  version: string;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: string;
          }
          | {
              method: "wallet_showCallsStatus";
              params: [string];
              id: number;
              jsonrpc: "2.0";
              _returnType: undefined;
          }
          | {
              method: "wallet_switchEthereumChain";
              params: [chain: {
                  chainId: string;
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: null;
          }
          | {
              method: "wallet_watchAsset";
              params: [{
                  type: "ERC20";
                  options: {
                      address: string;
                      symbol: string;
                      decimals: number;
                      image?: string;
                  };
              }];
              id: number;
              jsonrpc: "2.0";
              _returnType: boolean;
          }
          | {
              method: "handshake";
              params: undefined | object | readonly unknown[];
              id: number;
              jsonrpc: "2.0";
              _returnType: undefined;
          }
          | {
              method: "wallet_disconnect";
              id: number;
              jsonrpc: "2.0";
              _returnType: undefined;
          }
          | {
              method: "wallet_connect";
              params?: [ConnectParameters];
              id: number;
              jsonrpc: "2.0";
              _returnType: ConnectReturnType;
          }

    Returns Promise<unknown>

  • Returns Promise<void>

  • Calls each of the listeners registered for a given event.

    Type Parameters

    • K extends keyof ProviderEventMap

    Parameters

    • event: K
    • Rest...args: [ProviderEventMap[K]]

    Returns boolean

  • Add a listener for a given event.

    Type Parameters

    • K extends keyof ProviderEventMap

    Parameters

    • event: K
    • listener: ((_: ProviderEventMap[K]) => void)
        • (_): void
        • Parameters

          • _: ProviderEventMap[K]

          Returns void

    Returns this

  • Return an array listing the events for which the emitter has registered listeners.

    Returns (keyof ProviderEventMap)[]

  • Return the listeners registered for a given event.

    Type Parameters

    • T extends keyof ProviderEventMap

    Parameters

    • event: T

    Returns ((...args: any[]) => void)[]

  • Return the number of listeners listening to a given event.

    Parameters

    • event: keyof ProviderEventMap

    Returns number

  • Type Parameters

    • T extends keyof ProviderEventMap

    Parameters

    • event: T
    • fn: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    • Optionalcontext: any

    Returns this

  • Add a one-time listener for a given event.

    Type Parameters

    • T extends keyof ProviderEventMap

    Parameters

    • event: T
    • fn: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    • Optionalcontext: any

    Returns this

  • Remove the listeners of a given event.

    Type Parameters

    • T extends keyof ProviderEventMap

    Parameters

    • event: T
    • Optionalfn: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    • Optionalcontext: any
    • Optionalonce: boolean

    Returns this

  • Type Parameters

    • T extends keyof ProviderEventMap

    Parameters

    • event: T
    • Optionalfn: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    • Optionalcontext: any
    • Optionalonce: boolean

    Returns this

  • Remove all listeners, or those of the specified event.

    Parameters

    • Optionalevent: keyof ProviderEventMap

    Returns this