UNPKG

wallets-wrapper

Version:

How to install

84 lines (83 loc) 3.79 kB
import { LoginChallenge, RequestLoginAsync } from '@trezor/connect/lib/types/api/requestLogin'; import { Manifest, Params } from '@trezor/connect-web'; import { BehaviorSubject } from 'rxjs'; import { AccountInfo, ChainInfo, IProviderRpcError, SubscriptionMessage, WalletsNames, WalletStateProps } from '../../../models'; import { CustomTrezorGetAddress, GetTrezorAccountInfo, ITrezorWrapper, SendSignedTransactionProps, SendTransactionProps, TransferProps, TrezorData } from '../models'; /** * The client describes how to work with Trezor. * @implements ITrezorWrapper * @class */ export declare class TrezorWrapper implements ITrezorWrapper { static instance: TrezorWrapper; static type: WalletsNames; address$: BehaviorSubject<string[]>; chainId$: BehaviorSubject<ChainInfo | null>; subscriptionMessage$: BehaviorSubject<SubscriptionMessage | null>; isConnected$: BehaviorSubject<boolean>; errors$: BehaviorSubject<IProviderRpcError | null>; trezorData$: BehaviorSubject<TrezorData | null>; constructor({ address$, chainId$, isConnected$, subscriptionMessage$, errors$, }: WalletStateProps); /** * init TrezorConnect library * @param {Manifest} object * @return {Promise<void>} * @async */ init({ appUrl, email }: Manifest): Promise<boolean>; isInstalled(): Promise<boolean>; /** * Get current trezor wallet addresses * @param {GetAddressProps} object * @param {Networks} network * @param {AllCoins[]} coins * @param {boolean} showOnTrezor * @return {Promise<string[]>} - wallet address * @async */ getAddress: CustomTrezorGetAddress; /** * Get balance from current wallet in native coin * @param {AllCoins[]} coins - * @return {Promise<number[]>} - balance value * @async */ getBalance(): Promise<void>; /** * Get account info from current wallets in native coin * @param {GetAccountInfo[]} args - * @return {Promise<number[]>} * @async */ getAccountInfo(args: GetTrezorAccountInfo[]): Promise<AccountInfo[]>; /** * Get data for sign in via trezor * @param {Params<RequestLoginAsync | LoginChallenge>} params * @return {Promise<string[]>} - wallet address * @async */ connectWallet(params?: Params<RequestLoginAsync | LoginChallenge>): Promise<string[]>; /** * Send Transaction with user's trezor * @param {SendSignedTransactionProps} object * @return {Promise<SignedTransaction | PushedTransaction | CardanoSignedTxData | EosSignedTx>} * @async */ sendSignedTransaction({ network, coin, transaction }: SendSignedTransactionProps): Promise<import("xrpl").TxResponse | import("@ethersproject/abstract-provider").TransactionResponse | import("@trezor/connect/lib/types/api/pushTransaction").PushedTransaction>; /** * Send Transaction * @param {SendTransactionProps} object * @return {Promise<PushedTransaction>} * @async */ sendTransaction({ coin, transaction }: SendTransactionProps): Promise<import("@trezor/connect/lib/types/api/pushTransaction").PushedTransaction>; /** * Transfer native coin * @param {TransferProps} args * @return {Promise<SignedTransaction | CardanoSignedTxData | EosSignedTx | PushedTransaction>} * @async */ transfer({ network, coin, from, addressTo, value }: TransferProps): Promise<import("xrpl").TxResponse | import("@ethersproject/abstract-provider").TransactionResponse | import("@trezor/connect/lib/types/api/pushTransaction").PushedTransaction>; sign(): Promise<void>; getProvider(): Promise<import("@trezor/connect-web").TrezorConnect>; }