JSPM

  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q48094F
  • License MIT

SecuX Hardware Wallet ETH API

Package Exports

  • @secux/app-eth

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@secux/app-eth) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@secux/app-eth

SecuX Hardware Wallet ETH API

Usage

import { SecuxETH } from "@secux/app-eth";

First, create instance of ITransport


Examples

  1. Get address derived by given BIP44 path
const address = await SecuxETH.getAddress(device, "m/44'/60'/0'/0/0");
  1. Sign legacy transaction
const { raw_tx, signature } = await SecuxETH.signTransaction(
    device,
    "m/44'/60'/0'/0/0",
    {
        nonce: 0,
        to: "0xD080156885651fADbD6df14145051b934660a748",
        value: 1e10,
        chainId: 1,
        gasPrice: 1e6,
        gasLimit: 1e6
    }
);
  1. Sign transaction with Smart Contract (ERC-20)
const { raw_tx, signature } = await SecuxETH.signTransaction(
    device,
    "m/44'/60'/0'/0/0",
    {
        nonce: 0,
        to: "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
        value: 0,
        data: "0xa9059cbb000000000000000000000000d080156885651fadbd6df14145051b934660a7410000000000000000000000000000000000000000000000000000000000989680",
        chainId: 1,
        gasPrice: 1e6,
        gasLimit: 1e6
    }
);


// transfer token easy use
const { raw_tx, signature } = await SecuxETH.signTransaction(
    device,
    "m/44'/60'/0'/0/0",
    {
        nonce: 0,
        to: "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
        value: 0,
        data: {
            toAddress: "0xD080156885651fADbD6df14145051b934660a748",
            amount: `0x${1e18.toString(16)}`
        },
        chainId: 1,
        gasPrice: 1e6,
        gasLimit: 1e6
    }
);
  1. Sign Message transaction
const { raw_tx, signature } = await SecuxETH.signMessage(device, "m/44'/60'/0'/0/0", msg);
  1. Sign TypedMessage transaction
const { raw_tx, signature } = await SecuxETH.signTypedMessage(device, "m/44'/60'/0'/0/0", msg);
  1. Sign transaction with WalletConnect
const { raw_tx, signature } = await SecuxETH.signWalletConnectTransaction(
    device,
    "m/44'/60'/0'/0/0",
    {
        nonce: 0,
        to: "0xD080156885651fADbD6df14145051b934660a748",
        value: 0,
        data: "0x7ff36ab5000000000000000000000000000000000000000000000000302bf3f82d406d120000000000000000000000000000000000000000000000000000000000000080000000000000000000000000d080156885651fadbd6df14145051b934660a7480000000000000000000000000000000000000000000000000000000060b613630000000000000000000000000000000000000000000000000000000000000003000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56",
        chainId: 56,
        gasPrice: 1e6,
        gasLimit: 1e6
    }
);

Note

  1. Value of chainId (same as EIP-155):
    • Ethereum Mainnet: 1
    • Binance Smart Chain Mainnet: 56
  2. Support for EIP-1559 coming soon