UNPKG

@xchainjs/xchain-evm

Version:
54 lines (53 loc) 1.93 kB
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>; }