@pgchain/blockchain-libs
Version:
PGWallet Blockchain Libs
46 lines (45 loc) • 2.94 kB
TypeScript
import BigNumber from 'bignumber.js';
import { ChainInfo, CoinInfo } from '../types/chain';
import { AddressInfo, AddressValidation, ClientInfo, FeePricePerUnit, PartialTokenInfo, SignedTx, TransactionStatus, TypedMessage, UnsignedTx, UTXO } from '../types/provider';
import { Signer, Verifier } from '../types/secret';
import { BaseClient, BaseProvider, ClientFilter } from './abc';
declare class ProviderController {
chainSelector: (chainCode: string) => ChainInfo;
private clientsCache;
private lastClientCache;
constructor(chainSelector: (chainCode: string) => ChainInfo);
getClient(chainCode: string, filter?: ClientFilter): Promise<BaseClient>;
getProvider(chainCode: string): Promise<BaseProvider>;
requireChainImpl(impl: string): any;
getInfo(chainCode: string): Promise<ClientInfo>;
getAddresses(chainCode: string, address: Array<string>): Promise<Array<AddressInfo | undefined>>;
getBalances(chainCode: string, requests: Array<{
address: string;
coin: Partial<CoinInfo>;
}>): Promise<Array<BigNumber | undefined>>;
getTransactionStatuses(chainCode: string, txids: Array<string>): Promise<Array<TransactionStatus | undefined>>;
getFeePricePerUnit(chainCode: string): Promise<FeePricePerUnit>;
broadcastTransaction(chainCode: string, rawTx: string): Promise<string>;
getTokenInfos(chainCode: string, tokenAddresses: Array<string>): Promise<Array<PartialTokenInfo | undefined>>;
getUTXOs(chainCode: string, address: Array<string>): Promise<{
[address: string]: Array<UTXO>;
}>;
buildUnsignedTx(chainCode: string, unsignedTx: UnsignedTx): Promise<UnsignedTx>;
pubkeyToAddress(chainCode: string, verifier: Verifier, encoding: string | undefined): Promise<string>;
signTransaction(chainCode: string, unsignedTx: UnsignedTx, signers: {
[p: string]: Signer;
}): Promise<SignedTx>;
verifyAddress(chainCode: string, address: string): Promise<AddressValidation>;
verifyTokenAddress(chainCode: string, address: string): Promise<AddressValidation>;
signMessage(chainCode: string, message: TypedMessage, signer: Signer, address?: string): Promise<string>;
verifyMessage(chainCode: string, address: string, message: TypedMessage, signature: string): Promise<boolean>;
hardwareGetXpubs(chainCode: string, paths: string[], showOnDevice?: boolean): Promise<{
path: string;
xpub: string;
}[]>;
hardwareGetAddress(chainCode: string, path: string, showOnDevice?: boolean, addressToVerify?: string): Promise<string>;
hardwareSignTransaction(chainCode: string, unsignedTx: UnsignedTx, signers: Record<string, string>): Promise<SignedTx>;
hardwareSignMessage(chainCode: string, message: TypedMessage, signer: string): Promise<string>;
hardwareVerifyMessage(chainCode: string, address: string, message: TypedMessage, signature: string): Promise<boolean>;
}
export { ProviderController };