@faast/ethereum-payments
Version:
Library to assist in processing ethereum payments, such as deriving addresses and sweeping funds
53 lines (52 loc) • 2.55 kB
TypeScript
import Web3 from 'web3';
import { PaymentsUtils, Payport, createUnitConverters, AutoFeeLevels, FeeRate, NetworkType, BalanceResult } from '@faast/payments-common';
import { Logger, Numeric } from '@faast/ts-common';
import { EthereumPaymentsUtilsConfig, EthereumTransactionInfo } from './types';
import { NetworkData } from './NetworkData';
declare type UnitConverters = ReturnType<typeof createUnitConverters>;
export declare class EthereumPaymentsUtils implements PaymentsUtils {
readonly networkType: NetworkType;
readonly coinSymbol: string;
readonly coinName: string;
readonly coinDecimals: number;
logger: Logger;
server: string | null;
web3: Web3;
eth: Web3['eth'];
gasStation: NetworkData;
constructor(config: EthereumPaymentsUtilsConfig);
init(): Promise<void>;
destroy(): Promise<void>;
toMainDenominationBigNumber: UnitConverters['toMainDenominationBigNumber'];
toBaseDenominationBigNumber: UnitConverters['toMainDenominationBigNumber'];
toMainDenomination: UnitConverters['toMainDenominationString'];
toBaseDenomination: UnitConverters['toBaseDenominationString'];
toMainDenominationBigNumberEth: UnitConverters['toMainDenominationBigNumber'];
toBaseDenominationBigNumberEth: UnitConverters['toMainDenominationBigNumber'];
toMainDenominationEth: UnitConverters['toMainDenominationString'];
toBaseDenominationEth: UnitConverters['toBaseDenominationString'];
isValidAddress(address: string, options?: {
format?: string;
}): boolean;
standardizeAddress(address: string, options?: {
format?: string;
}): string | null;
isValidExtraId(extraId: unknown): boolean;
isValidPayport(payport: Payport): boolean;
validatePayport(payport: Payport): void;
getPayportValidationMessage(payport: Payport): string | undefined;
isValidXprv(xprv: string): boolean;
isValidXpub(xpub: string): boolean;
isValidPrivateKey(prv: string): boolean;
privateKeyToAddress(prv: string): string;
private _getPayportValidationMessage;
getFeeRateRecommendation(level: AutoFeeLevels): Promise<FeeRate>;
_retryDced<T>(fn: () => Promise<T>): Promise<T>;
getCurrentBlockNumber(): Promise<number>;
isAddressBalanceSweepable(balanceEth: Numeric): boolean;
getAddressBalance(address: string): Promise<BalanceResult>;
getAddressNextSequenceNumber(address: string): Promise<string>;
getAddressUtxos(): Promise<never[]>;
getTransactionInfo(txid: string): Promise<EthereumTransactionInfo>;
}
export {};