$ npm install @projectsophon/networkThis package contains functions and classes useful for communicating with the blockchain.
You can install this package using npm or
yarn by running:
npm install --save @projectsophon/network
yarn add @projectsophon/network
When using this in a plugin, you might want to load it with skypack
import * as network from 'http://cdn.skypack.dev/@projectsophon/network'
Ƭ AfterTransaction: (transactionRequest: Transaction, performanceMetrics: unknown) => Promise<void>
▸ (transactionRequest, performanceMetrics): Promise<void>
TxExecutor calls this after executing a transaction.
| Name | Type |
|---|---|
transactionRequest | Transaction |
performanceMetrics | unknown |
Promise<void>
Ƭ BeforeQueued: (id: TransactionId, intent: TxIntent, overrides?: providers.TransactionRequest) => Promise<void>
▸ (id, intent, overrides?): Promise<void>
TxExecutor calls this before queueing a function to determine whether or not that function should be queued. If this function rejects, a transaction is not queued.
| Name | Type |
|---|---|
id | TransactionId |
intent | TxIntent |
overrides? | providers.TransactionRequest |
Promise<void>
Ƭ BeforeTransaction: (transactionRequest: Transaction) => Promise<void>
▸ (transactionRequest): Promise<void>
TxExecutor calls this before executing a function to determine whether or not that function should execute. If this function rejects, the transaction is cancelled.
| Name | Type |
|---|---|
transactionRequest | Transaction |
Promise<void>
Ƭ ContractLoader<C>: (address: string, provider: providers.JsonRpcProvider, signer: Wallet | undefined) => Promise<C>
| Name | Type |
|---|---|
C | extends BaseContract |
▸ (address, provider, signer): Promise<C>
| Name | Type |
|---|---|
address | string |
provider | providers.JsonRpcProvider |
signer | Wallet | undefined |
Promise<C>
Ƭ GasPriceSettingProvider: (transactionRequest: Transaction) => AutoGasSetting | string
▸ (transactionRequest): AutoGasSetting | string
Returns either a string that represents the gas price we should use by default for transactions, or a string that represents the fact that we should be using one of the automatic gas prices.
| Name | Type |
|---|---|
transactionRequest | Transaction |
AutoGasSetting | string
Ƭ RetryErrorHandler: (i: number, e: Error) => void
▸ (i, e): void
| Name | Type |
|---|---|
i | number |
e | Error |
void
▸ aggregateBulkGetter<T>(total, querySize, getterFn, onProgress?, offset?): Promise<T[]>
A useful utility function that breaks up the proverbial number line (defined by {@code total} and {@code querySize}), and calls {@code getterFn} for each of the sections on the number line.
| Name |
|---|
T |
| Name | Type | Default value | Description |
|---|---|---|---|
total | number | undefined | the total amount of of items to get |
querySize | number | undefined | the chunk size |
getterFn | (startIdx: number, endIdx: number) => Promise<T[]> | undefined | a function that fetches something, given a start index and end index |
onProgress? | (fractionCompleted: number) => void | undefined | whenever a chunk is loaded, this function is called with the fraction of individual items that have been loaded so far. |
offset | number | 0 | the index to start fetching, can be used to skip previously fetched elements. |
Promise<T[]>
a list of each of the individual items that were loaded.
▸ assertProperlySigned(message): void
Ensures that the given message was properly signed.
| Name | Type |
|---|---|
message | SignedMessage<unknown> |
void
▸ callWithRetry<T>(fn, args?, onError?, maxRetries?, retryInterval?): Promise<T>
Calls the given function, retrying it if there is an error.
Todo
Get rid of this, and make use of ContractCaller.
| Name |
|---|
T |
| Name | Type | Default value |
|---|---|---|
fn | (...args: any[]) => Promise<T> | undefined |
args | any[] | [] |
onError? | RetryErrorHandler | undefined |
maxRetries | 12 | DEFAULT_MAX_CALL_RETRIES |
retryInterval | number | 1000 |
Promise<T>
▸ createContract<C>(contractAddress, contractABI, provider, signer?): C
| Name | Type |
|---|---|
C | extends Contract<C> |
| Name | Type | Description |
|---|---|---|
contractAddress | string | the address of the contract you want to connect to |
contractABI | ContractInterface | a javacript object representing the ABI |
provider | JsonRpcProvider | - |
signer? | Wallet | - |
C
▸ ethToWei(eth): BigNumber
Returns the given amount of eth in wei as a big integer.
| Name | Type |
|---|---|
eth | number |
BigNumber
▸ getAutoGasPrices(): Promise<GasPrices>
Gets the current gas prices from xDai's price oracle. If the oracle is broken, return some sane defaults.
Promise<GasPrices>
▸ getGasSettingGwei(setting, gasPrices): number | undefined
Given the user's auto gas setting, and the current set of gas prices on the network, returns the preferred gas price. If an invalid AutoGasSetting is provided, then returns undefined.
| Name | Type |
|---|---|
setting | AutoGasSetting |
gasPrices | GasPrices |
number | undefined
▸ gweiToWei(gwei): BigNumber
Returns the given amount of gwei in wei as a big integer.
| Name | Type |
|---|---|
gwei | number |
BigNumber
▸ isPurchase(tx?): boolean
Whether or not some value is being transferred in this transaction.
| Name | Type |
|---|---|
tx? | TransactionRequest |
boolean
▸ neverResolves(): Promise<void>
A function that just never resolves.s
Promise<void>
▸ verifySignature(message, signature, addr): boolean
Returns whether or not the given message was signed by the given address.
| Name | Type |
|---|---|
message | string |
signature | string |
addr | undefined | EthAddress |
boolean
▸ waitForTransaction(provider, txHash): Promise<providers.TransactionReceipt>
Given a transaction hash and a JsonRpcProvider, waits for the given transaction to complete.
| Name | Type |
|---|---|
provider | JsonRpcProvider |
txHash | string |
Promise<providers.TransactionReceipt>
▸ weiToEth(wei): number
Returns the given amount of wei in gwei as a number.
| Name | Type |
|---|---|
wei | BigNumber |
number
▸ weiToGwei(wei): number
Returns the given amount of wei in gwei as a number.
| Name | Type |
|---|---|
wei | BigNumber |
number