-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Ethereum Provider API
Brave injects a windows.ethereum
provider object on all pages.
This object is defined by EIP-1193.
This object gives websites the ability to:
- Make requests to an Ethereum node (or a compatible network) to read data from the blockchain
- Request permission to 1 or more Ethereum accounts
- Ask the user (if given permission previously) to sign / submit a transaction
- Ask the user (if given permission previously) to sign a message
interface RequestArguments {
readonly method: string;
readonly params?: readonly unknown[] | object;
}
Provider.request(args: RequestArguments): Promise<unknown>;
Provider.isConnected(): boolean;
The Provider emits connect when it:
- first connects to a chain after being initialized.
- first connects to a chain, after the disconnect event was emitted.
interface ProviderConnectInfo {
readonly chainId: string;
}
Provider.on('connect', listener: (connectInfo: ProviderConnectInfo) => void): Provider;
The Provider emits disconnect when it becomes disconnected from all chains.
Provider.on('disconnect', listener: (error: ProviderRpcError) => void): Provider;
The Provider emits chainChanged when connecting to a new chain.
Provider.on('chainChanged', listener: (chainId: string) => void): Provider;
The Provider emits accountsChanged if the accounts returned from the Provider (eth_accounts) change.
Provider.on('accountsChanged', listener: (accounts: string[]) => void): Provider;
A number of legacy provider methods are provided for backwards compatability:
Provider.sendAsync(request: Object, callback: Function): void;
This method is superseded by request
.
Provider.send(...args: unknown[]): unknown;
This method is superseded by request
.
Not yet implemented, but Brave may implement it.
This event close
is superseded by disconnect
.
Not yet implemented, but Brave may implement it.
The event networkChanged
is superseded by chainChanged
.
This event is superseded by message
.
Brave has not implemented this event yet.
The message event is intended for arbitrary notifications not covered by other events.
The event will be emitted with an object argument of the following form:
interface ProviderMessage {
readonly type: string;
readonly data: unknown;
}
Chain ID | Network name |
---|---|
0x1 | Ethereum mainnet |
0x3 | Ropsten Testnet |
0x3 | Ropsten Testnet |
0x5 | Rinkeby Testnet |
0x2a | Kovan Testnet |
The Ethereum provider object can be disabled from brave://settings/wallet
by changing the Default cryptocurrency wallet to None
.