npm.io
7.1.4 • Published 2 years ago

@dfares/network

Licence
MIT
Version
7.1.4
Deps
15
Size
177 kB
Vulns
1
Weekly
0

@dfares/network

This package contains functions and classes useful for communicating with the blockchain.

Installation

You can install this package using npm or yarn by running:

npm install --save @dfares/network
yarn add @dfares/network

When using this in a plugin, you might want to load it with skypack

import * as network from 'http://cdn.skypack.dev/@dfares/network';

Table of contents

Classes
Interfaces
Type aliases
Functions

Type aliases

AfterTransaction

Ƭ AfterTransaction: (transactionRequest: Transaction, performanceMetrics: unknown) => Promise<void>

Type declaration

▸ (transactionRequest, performanceMetrics): Promise<void>

TxExecutor calls this after executing a transaction.

Parameters
Name Type
transactionRequest Transaction
performanceMetrics unknown
Returns

Promise<void>


BeforeQueued

Ƭ BeforeQueued: (id: TransactionId, intent: TxIntent, overrides?: providers.TransactionRequest) => Promise<void>

Type declaration

▸ (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.

Parameters
Name Type
id TransactionId
intent TxIntent
overrides? providers.TransactionRequest
Returns

Promise<void>


BeforeTransaction

Ƭ BeforeTransaction: (transactionRequest: Transaction) => Promise<void>

Type declaration

▸ (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.

Parameters
Name Type
transactionRequest Transaction
Returns

Promise<void>


ContractLoader

Ƭ ContractLoader<T>: (address: string, provider: providers.JsonRpcProvider, signer?: Wallet) => Promise<T>

Type parameters
Name Type
T extends Contract
Type declaration

▸ (address, provider, signer?): Promise<T>

Parameters
Name Type
address string
provider providers.JsonRpcProvider
signer? Wallet
Returns

Promise<T>


GasPriceSettingProvider

Ƭ GasPriceSettingProvider: (transactionRequest: Transaction) => AutoGasSetting | string

Type declaration

▸ (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.

Parameters
Name Type
transactionRequest Transaction
Returns

AutoGasSetting | string


RetryErrorHandler

Ƭ RetryErrorHandler: (i: number, e: Error) => void

Type declaration

▸ (i, e): void

Parameters
Name Type
i number
e Error
Returns

void

Functions

aggregateBulkGetter

▸ 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.

Type parameters
Name
T
Parameters
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.
Returns

Promise<T[]>

a list of each of the individual items that were loaded.


assertProperlySigned

▸ assertProperlySigned(message): void

Ensures that the given message was properly signed.

Parameters
Name Type
message SignedMessage<unknown>
Returns

void


callWithRetry

▸ 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.

Type parameters
Name
T
Parameters
Name Type Default value
fn (...args: any[]) => Promise<T> undefined
args any[] []
onError? RetryErrorHandler undefined
maxRetries 12 DEFAULT_MAX_CALL_RETRIES
retryInterval number 1000
Returns

Promise<T>


createContract

▸ createContract<C>(contractAddress, contractABI, provider, signer?): C

Type parameters
Name Type
C extends Contract<C>
Parameters
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 -
Returns

C


createEthConnection

▸ createEthConnection(rpcUrl): Promise<EthConnection>

Parameters
Name Type
rpcUrl string
Returns

Promise<EthConnection>


ethToWei

▸ ethToWei(eth): BigNumber

Returns the given amount of eth in wei as a big integer.

Parameters
Name Type
eth number
Returns

BigNumber


getAutoGasPrices

▸ getAutoGasPrices(): Promise<GasPrices>

Gets the current gas prices from blockchain's price oracle. If the oracle is broken, return some sane defaults.

Returns

Promise<GasPrices>


getGasSettingGwei

▸ 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 {@link AutoGasSetting} is provided, then returns undefined.

Parameters
Name Type
setting AutoGasSetting
gasPrices GasPrices
Returns

number | undefined


gweiToWei

▸ gweiToWei(gwei): BigNumber

Returns the given amount of gwei in wei as a big integer.

Parameters
Name Type
gwei number
Returns

BigNumber


isPurchase

▸ isPurchase(tx?): boolean

Whether or not some value is being transferred in this transaction.

Parameters
Name Type
tx? TransactionRequest
Returns

boolean


makeProvider

▸ makeProvider(rpcUrl): providers.JsonRpcProvider

Creates a new {@link JsonRpcProvider}, and makes sure that it's connected to blockchain if we're in production.

Parameters
Name Type
rpcUrl string
Returns

providers.JsonRpcProvider


neverResolves

▸ neverResolves(): Promise<void>

A function that just never resolves.s

Returns

Promise<void>


verifySignature

▸ verifySignature(message, signature, addr): boolean

Returns whether or not the given message was signed by the given address.

Parameters
Name Type
message string
signature string
addr undefined | EthAddress
Returns

boolean


waitForTransaction

▸ waitForTransaction(provider, txHash): Promise<providers.TransactionReceipt>

Given a transaction hash and a JsonRpcProvider, waits for the given transaction to complete.

Parameters
Name Type
provider JsonRpcProvider
txHash string
Returns

Promise<providers.TransactionReceipt>


weiToEth

▸ weiToEth(wei): number

Returns the given amount of wei in gwei as a number.

Parameters
Name Type
wei BigNumber
Returns

number


weiToGwei

▸ weiToGwei(wei): number

Returns the given amount of wei in gwei as a number.

Parameters
Name Type
wei BigNumber
Returns

number