@xchainjs/xchain-evm
Version:
Genereic EVM client for XChainJS
54 lines (53 loc) • 1.93 kB
TypeScript
import AppEth from '@ledgerhq/hw-app-eth';
import Transport from '@ledgerhq/hw-transport';
import { Address } from '@xchainjs/xchain-util';
import { SignApproveParams, SignTransferParams } from '../types';
import { Signer, SignerParams } from './signer';
/**
* Ledger signer parameters
*/
export type LedgerSignerParams = SignerParams & {
transport: Transport;
};
/**
* Signer which operates with an EVM account through the Ledger device
*/
export declare class LedgerSigner extends Signer {
private app;
constructor(params: LedgerSignerParams);
/**
* Get ethereum ledger app
* @returns {AppEth} Ethereum ledger app
*/
getApp(): AppEth;
/**
* Purge signer
*/
purge(): void;
/**
* Get the current address.
* @param {number} index The index of the address. Default 0
* @param {boolean} verify True to check the address against the Ledger device, otherwise false
* @returns {Address} The address corresponding to the index provided
* @returns
*/
getAddressAsync(index?: number, verify?: boolean): Promise<Address>;
/**
* Sign an EVM transaction with Ledger
*
* @param {SignTransferParams} params Sign transfer params
* @param {string} SignTransferParams.sender Fee option (optional)
* @param {Transaction} SignTransferParams.tx Fee option (optional)
* @returns {string} The raw signed transaction.
*/
signTransfer({ walletIndex, tx }: SignTransferParams): Promise<string>;
/**
* Sign an EVM approve transaction with Ledger
*
* @param {SignTransferParams} params Sign transfer params
* @param {string} SignTransferParams.sender The sender address
* @param {ethers.Transaction} SignTransferParams.tx Approve transaction to sign
* @returns {string} The raw signed transaction.
*/
signApprove({ walletIndex, tx }: SignApproveParams): Promise<string>;
}