142 lines
5.1 KiB
Plaintext
142 lines
5.1 KiB
Plaintext
_title: Abstract Provider
|
|
|
|
|
|
_section: Provider @<provider>
|
|
|
|
Explain what a provider is...
|
|
|
|
|
|
_subsection: Accounts Methods
|
|
|
|
_property: provider.getBalance(address [ , blockTag = "latest" ]) => Promise<[[bignumber]]>
|
|
Returns the balance of //address// as of the //blockTag// block height.
|
|
|
|
_property: provider.getCode(address [ , blockTag = "latest" ]) => Promise<[[hexstring]]>
|
|
Returns the contract code of //address// as of the //blockTag// block height. If there is
|
|
no contract currently deployed, the result is ``0x``.
|
|
|
|
_property: provider.getStorageAt(address, position [ , blockTag = "latest" ]) => Promise<[[hexstring]]>
|
|
Returns the ``Bytes32`` value of the //position// at //address//, as of the //blockTag//.
|
|
|
|
_property: provider.getTransactionCount(address [ , blockTag = "latest" ]) => Promise<number>
|
|
Returns the number of transactions //address// has ever **sent**, as of //blockTag//.
|
|
This value is required to be the nonce for the next transaction from //address//
|
|
sent to the network.
|
|
|
|
_heading: Examples
|
|
|
|
_code: example-account.js
|
|
|
|
|
|
_subsection: Blocks Methods
|
|
|
|
_property: provider.getBlock(block) => Promise<[[provider-block]]>
|
|
Get the //block// from the network, where the ``result.transactions`` is a list
|
|
of transaction hashes.
|
|
|
|
_property: provider.getBlockWithTransactions(block) => Promise<[[provider-blocktxs]]>
|
|
Get the //block// from the network, where the ``result.transactions`` is
|
|
an Array of [[provider-transactionresponse]] objects.
|
|
|
|
|
|
_subsection: Ethereum Naming Service (ENS) Methods
|
|
|
|
TODO: Explain ENS here...
|
|
|
|
_property: provider.lookupAddress(address) => Promise<string>
|
|
Performs a reverse lookup of the //address// in ENS using the
|
|
//Reverse Registrar//. If the name does not exist, or the
|
|
forward lookup does not match, ``null`` is returned.
|
|
|
|
_property: provider.resovleName(name) => Promise<string>
|
|
Looks up the address of //name//. If the name is not owned, or
|
|
does not have a //Resolver// configured, or the //Resolver// does
|
|
not have an address configured, ``null`` is returned.
|
|
|
|
_heading: Examples
|
|
|
|
_code: example-ens.js
|
|
|
|
_subsection: Logs Methods
|
|
|
|
_property: provider.getLogs(filter) => Promise<Array<[[provider-log]]>>
|
|
Returns the Array of [[provider-log]] matching the //filter//.
|
|
|
|
Keep in mind that many backends will discard old events, and that requests
|
|
which are too broad may get dropped as they require too many resources to
|
|
execute the query.
|
|
|
|
|
|
_subsection: Network Status Methods
|
|
|
|
_property: provider.getNetwork() => Promise<[[provider-network]]>
|
|
Returns the [[provider-network]] this Provider is connected to.
|
|
|
|
_property: provider.getBlockNumber() => Promise<number>
|
|
Returns the block number (or height) of the most recently mined block.
|
|
|
|
_property: provider.getGasPrice() => Promise<[[bignumber]]>
|
|
Returns a //best guess// of the [[gas-price]] to use in a transaction.
|
|
|
|
|
|
_subsection: Transactions Methods
|
|
|
|
_property: provider.call(transaction [ , blockTag = "latest" ]) => Promise<[[hexstring]]>
|
|
Returns the result of executing the //transaction//, using //call//. A call
|
|
does not require any ether, but cannot change any state. This is useful
|
|
for calling gettings on Contracts.
|
|
|
|
_property: provider.estimateGas(transaction) => Promise<[[bignumber]]>
|
|
Returns an estimate of the amount of gas that would be required to submit //transaction//
|
|
to the network.
|
|
|
|
An estimate may not be accurate since there could be another transaction
|
|
on the network that was not accounted for, but after being mined affected
|
|
relevant state.
|
|
|
|
_property: provider.sendTransaction(transaction) => Promise<[[provider-transactionresponse]]>
|
|
Submits //transaction// to the network to be mined. The //transaction// **must** be signed,
|
|
and be valid (i.e. the nonce is correct and the account has sufficient balance to pay
|
|
for the transaction).
|
|
|
|
_property: provider.waitForTransaction(transactionHash) => Promise<[[provider-transactionreceipt]]>
|
|
Returns a Promise which will not resolve until //transactionHash// is mined.
|
|
|
|
|
|
_subsection: Event Emitter Methods
|
|
|
|
Explain events here...
|
|
|
|
_property: provider.on(eventName, listener) => this
|
|
Add a //listener// to be triggered for each //eventName//.
|
|
|
|
_property: provider.once(eventName, listener) => this
|
|
Add a //listener// to be triggered for only the next //eventName//,
|
|
at which time it be removed.
|
|
|
|
_property: provider.emit(eventName, ...args) => boolean
|
|
Notify all listeners of //eventName//, passing //args// to each listener. This
|
|
is generally only used internally.
|
|
|
|
_property: provider.off(eventName [ , listener ]) => this
|
|
Remove a //listener// for //eventName//. If no //listener// is provided,
|
|
all listeners for //eventName// are removed.
|
|
|
|
_property: provider.removeAllListeners([ eventName ]) => this
|
|
Remove all the listeners for //eventName//. If no //eventName// is provided,
|
|
**all** events are removed.
|
|
|
|
_property: provider.listenerCount([ eventName ]) => number
|
|
Returns the number of listeners for //eventName//. If no //eventName// is
|
|
provided, the total number of listeners is returned.
|
|
|
|
_property: provider.listeners(eventName) => Array<Listener>
|
|
Returns the list of Listeners for //eventName//.
|
|
|
|
|
|
_subsection: Inspection Methods
|
|
|
|
_property: Provider.isProvider(object) => boolean
|
|
Returns true if and only if //object// is a Provider.
|
|
|