bn.getWeb3Provider
▸ getWeb3Provider(): Web3Provider
description
The api to get web3 provider
remark
supported jssdk >= 4.0.0
example
//eg1: get web3 provider and then request with method
bn.getWeb3Provider()
.request({
method: 'eth_requestAccounts'
})
.then(accounts => {
console.log('accounts', accounts)
})
Returns
Web3Provider
Class: Web3Provider
Name | Type | Description |
---|---|---|
idMapping | default | |
rpc | default | |
callbacks | Map <number , JsonRpcCallback <JsonRpcCallbackResponse >> | |
wrapResults | Map <number , boolean > | |
isDebug | undefined | boolean | |
address | string [] = [] | |
ready | boolean = false | |
experimental | Object | |
chainId? | string | The chain ID of the currently connected Ethereum chain.; See chainId.network for more information. |
_rpcHooks | RPCHooks | |
isProcessingRequestAccounts | boolean = false | |
ProviderRpcError | typeof ProviderRpcError | |
setChainId | (value? ): void | |
setAddress | (value? ): void | |
setRpc | (rpcUrl , rpcHooks? ): void | |
request | (payload ): Promise <EthJsonRpc [T ]["response" ]["result" ]> | |
isConnected | (): boolean | deprecated Listen to "connect" event instead. |
enable | (): Promise <Maybe <string []>> | deprecated Use request({ method: "eth_requestAccounts" }) instead. |
send | (payload ): EthJsonRpc [T ]["response" ] | deprecated Use request() method instead. |
sendAsync | (payload , callback ): void | deprecated Use request() method instead. |
_request | (payload , wrapResult? ): Promise <undefined | null | string | boolean | object | ( (undefined | string | object )[] | ( (undefined | string )[] | JsonRpcSuccess <UnknownResponse > | JsonRpcSuccess <string []> | JsonRpcSuccess <string > | JsonRpcSuccess <boolean > | JsonRpcSuccess <null > | JsonRpcSuccess <never >> | |
eth_accounts | (): string [] | |
eth_coinbase | (): undefined | string | |
net_version | (): null | string | |
eth_chainId | (): null | string | |
eth_sign | (payload ): void | |
personal_sign | (payload ): void | |
eth_signTypedData | (payload , version ): void | |
getAccounts | (): Promise <string []> | |
requestAccounts | (): Promise <string []> | Metamask 行為描述 |
比照流程:https://github.com/MetaMask/metamask-extension/blob/develop/app/scripts/controllers/permissions/permissionsMethodMiddleware.js | ||
eth_sendTransaction | (payload ): Promise <Maybe <string >> | |
populateTransaction | (payload ): Promise <EthTransaction > | populate the transaction params |
eth_sendRawTransaction | (payload ): void | |
wallet_watchAsset | (payload ): void | |
wallet_addEthereumChain | (payload ): Promise <Maybe <null >> | |
wallet_switchEthereumChain | (payload ): Promise <Maybe <null >> | |
postMessage | (action , id , object ): void | |
_isJsonRpc | (result ): result is JsonRpcSuccess<UnknownResponse> | |
sendResponse | (id , result ): void | |
sendError | (id , error ): void |
setChainId
▸ setChainId(value?
): void
Parameters
Name | Type |
---|---|
value? | string | number |
Returns
void
setAddress
▸ setAddress(value?
): void
Parameters
Name | Type | Default value |
---|---|---|
value | string [] | [] |
Returns
void
setRpc
▸ Private
setRpc(rpcUrl
, rpcHooks?
): void
Parameters
Name | Type |
---|---|
rpcUrl | undefined | string |
rpcHooks? | RPCHooks |
Returns
void
request
▸ request<T
>(payload
): Promise
<EthJsonRpc
[T
]["response"
]["result"
]>
Type parameters
Name | Type |
---|---|
T | extends keyof EthJsonRpc |
Parameters
Name | Type |
---|---|
payload | EthJsonRpc [T ]["request" ] |
Returns
Promise
<EthJsonRpc
[T
]["response"
]["result"
]>
isConnected
▸ isConnected(): boolean
deprecated
Listen to "connect" event instead.
Returns
boolean
enable
▸ enable(): Promise
<Maybe
<string
[]>>
deprecated
Use request({ method: "eth_requestAccounts" }) instead.
Returns
Promise
<Maybe
<string
[]>>
send
▸ send<T
>(payload
): EthJsonRpc
[T
]["response"
]
deprecated
Use request() method instead.
Type parameters
Name | Type |
---|---|
T | extends keyof EthJsonRpc |
Parameters
Name | Type |
---|---|
payload | EthJsonRpc [T ]["request" ] |
Returns
EthJsonRpc
[T
]["response"
]
sendAsync
▸ sendAsync<T
>(payload
, callback
): void
deprecated
Use request() method instead.
Type parameters
Name | Type |
---|---|
T | extends keyof EthJsonRpc |
Parameters
Name | Type |
---|---|
payload | EthJsonRpc [T ]["request" ] | EthJsonRpc [T ]["request" ][] |
callback | JsonRpcCallback <EthJsonRpc [T ]["response" ] | EthJsonRpc [T ]["response" ][]> |
Returns
void
_request
▸ Private
_request(payload
, wrapResult?
): Promise
<undefined
| null
| string
| boolean
| object
| (undefined
| string
| object
)[] | (undefined
| string
)[] | JsonRpcSuccess
<UnknownResponse
> | JsonRpcSuccess
<string
[]> | JsonRpcSuccess
<string
> | JsonRpcSuccess
<boolean
> | JsonRpcSuccess
<null
> | JsonRpcSuccess
<never
>>
Parameters
Name | Type | Default value |
---|---|---|
payload | JsonRpcRequest <"unknown" , unknown > | JsonRpcRequest <"eth_accounts" , undefined > | JsonRpcRequest <"eth_coinbase" , undefined > | JsonRpcRequest <"net_version" , undefined > | JsonRpcRequest <"eth_chainId" , undefined > | JsonRpcRequest <"eth_sign" , [string , string ]> | JsonRpcRequest <"personal_sign" , [string ]> | JsonRpcRequest <"personal_ecRecover" , [string , string ]> | JsonRpcRequest <"eth_signTypedData" | "eth_signTypedData_v3" | "eth_signTypedData_v4" , [string , string ]> | JsonRpcRequest <"eth_sendTransaction" , [EthTransaction ]> | JsonRpcRequest <"eth_sendRawTransaction" , [string ]> | JsonRpcRequest <"eth_signTransaction" , [EthTransaction ]> | JsonRpcRequest <"eth_requestAccounts" , undefined > | JsonRpcRequest <"eth_privateRequestAccounts" , undefined > | JsonRpcRequest <"eth_getTransactionCount" , [string , BlockTag ]> | JsonRpcRequest <"eth_gasPrice" , undefined > | JsonRpcRequest <"eth_estimateGas" , [EthTransaction ]> | JsonRpcRequest <"wallet_watchAsset" , WatchAssetParameter > | JsonRpcRequest <"wallet_addEthereumChain" , [Pick <AddEthereumChainParameter , "chainName" | "nativeCurrency" | "rpcUrls" | "blockExplorerUrls" | "iconUrls" > & { chainId : string }]> | JsonRpcRequest <"wallet_switchEthereumChain" , [Omit <SwitchEthereumChainParameter , "chainId" > & { chainId : string }]> | JsonRpcRequest <"eth_newFilter" , never > | JsonRpcRequest <"eth_newBlockFilter" , never > | JsonRpcRequest <"eth_newPendingTransactionFilter" , never > | JsonRpcRequest <"eth_uninstallFilter" , never > | JsonRpcRequest <"eth_subscribe" , never > | undefined |
wrapResult | boolean | true |
Returns
Promise
<undefined
| null
| string
| boolean
| object
| (undefined
| string
| object
)[] | (undefined
| string
)[] | JsonRpcSuccess
<UnknownResponse
> | JsonRpcSuccess
<string
[]> | JsonRpcSuccess
<string
> | JsonRpcSuccess
<boolean
> | JsonRpcSuccess
<null
> | JsonRpcSuccess
<never
>>
eth_accounts
▸ Private
eth_accounts(): string
[]
Returns
string
[]
eth_coinbase
▸ Private
eth_coinbase(): undefined
| string
Returns
undefined
| string
net_version
▸ Private
net_version(): null
| string
Returns
null
| string
eth_chainId
▸ Private
eth_chainId(): null
| string
Returns
null
| string
eth_sign
▸ Private
eth_sign(payload
): void
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"eth_sign" , [string , string ]> |
Returns
void
personal_sign
▸ Private
personal_sign(payload
): void
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"personal_sign" , [string ]> |
Returns
void
eth_signTypedData
▸ Private
eth_signTypedData(payload
, version
): void
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"eth_signTypedData" | "eth_signTypedData_v3" | "eth_signTypedData_v4" , [string , string ]> |
version | V3 | V4 |
Returns
void
getAccounts
▸ Private
getAccounts(): Promise
<string
[]>
Returns
Promise
<string
[]>
requestAccounts
▸ Private
requestAccounts(): Promise
<string
[]>
Metamask 行為描述 比照流程:https://github.com/MetaMask/metamask-extension/blob/develop/app/scripts/controllers/permissions/permissionsMethodMiddleware.js
Returns
Promise
<string
[]>
eth_sendTransaction
▸ Private
eth_sendTransaction(payload
): Promise
<Maybe
<string
>>
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"eth_sendTransaction" , [EthTransaction ]> |
Returns
Promise
<Maybe
<string
>>
populateTransaction
▸ Private
populateTransaction(payload
): Promise
<EthTransaction
>
populate the transaction params
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"eth_sendTransaction" , [EthTransaction ]> |
Returns
Promise
<EthTransaction
>
eth_sendRawTransaction
▸ Private
eth_sendRawTransaction(payload
): void
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"eth_sendRawTransaction" , [string ]> |
Returns
void
wallet_watchAsset
▸ Private
wallet_watchAsset(payload
): void
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"wallet_watchAsset" , WatchAssetParameter > |
Returns
void
wallet_addEthereumChain
▸ Private
wallet_addEthereumChain(payload
): Promise
<Maybe
<null
>>
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"wallet_addEthereumChain" , [Pick <AddEthereumChainParameter , "chainName" | "nativeCurrency" | "rpcUrls" | "blockExplorerUrls" | "iconUrls" > & { chainId : string }]> |
Returns
Promise
<Maybe
<null
>>
wallet_switchEthereumChain
▸ Private
wallet_switchEthereumChain(payload
): Promise
<Maybe
<null
>>
Parameters
Name | Type |
---|---|
payload | JsonRpcRequest <"wallet_switchEthereumChain" , [Omit <SwitchEthereumChainParameter , "chainId" > & { chainId : string }]> |
Returns
Promise
<Maybe
<null
>>
postMessage
▸ Private
postMessage<T
>(action
, id
, object
): void
Type parameters
Name | Type |
---|---|
T | extends keyof PostMessagePayload |
Parameters
Name | Type |
---|---|
action | T |
id | number |
object | PostMessagePayload [T ]["object" ] |
Returns
void
_isJsonRpc
▸ Private
_isJsonRpc(result
): result is JsonRpcSuccess<UnknownResponse>
Parameters
Name | Type |
---|---|
result | JsonRpcSuccess <UnknownResponse > | Maybe <UnknownResponse > |
Returns
result is JsonRpcSuccess<UnknownResponse>
sendResponse
▸ Private
sendResponse<T
>(id
, result
): void
Type parameters
Name | Type |
---|---|
T | extends keyof EthJsonRpc |
Parameters
Name | Type |
---|---|
id | number |
result | EthJsonRpc [T ]["response" ] | EthJsonRpc [T ]["response" ]["result" ] |
Returns
void
sendError
▸ Private
sendError(id
, error
): void
Parameters
Name | Type |
---|---|
id | number |
error | string | Error | ProviderRpcError |
Returns
void
Interface: RPCHooks
Name | Type | Description |
---|---|---|
addEthereumChain | (payload ): Promise <void > | |
switchEthereumChain | (payload ): Promise <void > | |
postMessage | (payload ): void | |
getAccounts | (): Promise <string []> | |
sendTransaction | (payload ): Promise <Maybe <string >> | |
createAccount | (): Promise <void > | |
isUnlocked | (): Promise <boolean > | |
walletHubOpen | (payload ): Promise <void > | |
walletHubClose | (): Promise <void > | |
walletHubOpenWallet | (payload ): Promise <void > | |
rpcCall | (_payload : JsonRpcRequest <"unknown" , unknown > | JsonRpcRequest <"eth_accounts" , undefined > | JsonRpcRequest <"eth_coinbase" , undefined > | JsonRpcRequest <"net_version" , undefined > | JsonRpcRequest <"eth_chainId" , undefined > | JsonRpcRequest <"eth_sign" , [string , string ]> | JsonRpcRequest <"personal_sign" , [string ]> | JsonRpcRequest <"personal_ecRecover" , [string , string ]> | JsonRpcRequest <"eth_signTypedData" | "eth_signTypedData_v3" | "eth_signTypedData_v4" , [string , string ]> | JsonRpcRequest <"eth_sendTransaction" , [EthTransaction ]> | JsonRpcRequest <"eth_sendRawTransaction" , [string ]> | JsonRpcRequest <"eth_signTransaction" , [EthTransaction ]> | JsonRpcRequest <"eth_requestAccounts" , undefined > | JsonRpcRequest <"eth_privateRequestAccounts" , undefined > | JsonRpcRequest <"eth_getTransactionCount" , [string , BlockTag ]> | JsonRpcRequest <"eth_gasPrice" , undefined > | JsonRpcRequest <"eth_estimateGas" , [EthTransaction ]> | JsonRpcRequest <"wallet_watchAsset" , WatchAssetParameter > | JsonRpcRequest <"wallet_addEthereumChain" , [Pick <AddEthereumChainParameter , "chainName" | "nativeCurrency" | "rpcUrls" | "blockExplorerUrls" | "iconUrls" > & { chainId : string }]> | JsonRpcRequest <"wallet_switchEthereumChain" , [Omit <SwitchEthereumChainParameter , "chainId" > & { chainId : string }]> | JsonRpcRequest <"eth_newFilter" , never > | JsonRpcRequest <"eth_newBlockFilter" , never > | JsonRpcRequest <"eth_newPendingTransactionFilter" , never > | JsonRpcRequest <"eth_uninstallFilter" , never > | JsonRpcRequest <"eth_subscribe" , never >) => Promise <JsonRpcSuccess <UnknownResponse > | JsonRpcSuccess <string []> | JsonRpcSuccess <string > | JsonRpcSuccess <boolean > | JsonRpcSuccess <null > | JsonRpcSuccess <never >> |
addEthereumChain
▸ addEthereumChain(payload
): Promise
<void
>
Parameters
Name | Type |
---|---|
payload | AddEthereumChainParameter |
Returns
Promise
<void
>
switchEthereumChain
▸ switchEthereumChain(payload
): Promise
<void
>
Parameters
Name | Type |
---|---|
payload | SwitchEthereumChainParameter |
Returns
Promise
<void
>
postMessage
▸ postMessage(payload
): void
Parameters
Name | Type |
---|---|
payload | ValueOf <PostMessagePayload > |
Returns
void
getAccounts
▸ getAccounts(): Promise
<string
[]>
Returns
Promise
<string
[]>
sendTransaction
▸ sendTransaction(payload
): Promise
<Maybe
<string
>>
Parameters
Name | Type |
---|---|
payload | [EthTransaction ] |
Returns
Promise
<Maybe
<string
>>
createAccount
▸ createAccount(): Promise
<void
>
Returns
Promise
<void
>
isUnlocked
▸ isUnlocked(): Promise
<boolean
>
Returns
Promise
<boolean
>
walletHubOpen
▸ walletHubOpen(payload
): Promise
<void
>
Parameters
Name | Type |
---|---|
payload | WalletHubOpenPayload |
Returns
Promise
<void
>
walletHubClose
▸ walletHubClose(): Promise
<void
>
Returns
Promise
<void
>
walletHubOpenWallet
▸ walletHubOpenWallet(payload
): Promise
<void
>
Parameters
Name | Type |
---|---|
payload | WalletHubOpenWalletPayload |
Returns
Promise
<void
>