wallets-wrapper
Version:
How to install
84 lines (83 loc) • 3.79 kB
TypeScript
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>;
}