JSPM

  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q48065F
  • 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 (EIP-155)
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: 25000
    }
);
  1. Sign EIP-1559 transaction
const { raw_tx, signature } = await SecuxETH.signTransaction(
    device,
    "m/44'/60'/0'/0/0",
    {
        nonce: 0,
        to: "0xD080156885651fADbD6df14145051b934660a748",
        value: 1e10,
        chainId: 1,
        maxPriorityFeePerGas: 1e4,
        maxFeePerGas: 1e6,
        gasLimit: 25000
    }
);
  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: 25000
    }
);


// 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: 25000
    }
);
  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: 25000
    }
);

Note

  1. Value of chainId (same as EIP-155):

API doc

SecuxETH

ETH package for SecuX device

Kind: global class


SecuxETH.getAddress(trans, path)string

Get EIP55 address derived by given BIP32 path

Kind: static method of SecuxETH
Returns: string - EIP55 address

Param Type Description
trans ITransport
path string BIP32


SecuxETH.signTransaction(trans, path, content)object

Create transaction and Sign

Kind: static method of SecuxETH
Returns: object - signed
string - signed.raw_tx
Buffer - signed.signature

Param Type Description
trans ITransport
path string BIP32
content txDetail transaction content


SecuxETH.signMessage(trans, path, message, chainId)object

Create message type transaction and Sign

Kind: static method of SecuxETH
Returns: object - signed
string - signed.raw_tx
Buffer - signed.signature

Param Type Default Description
trans ITransport
path string BIP32
message string
chainId number 1 1: ETH, 56: BSC


SecuxETH.signTypedData(trans, path, data, chainId)object

Create EIP712 transaction and Sign

Kind: static method of SecuxETH
Returns: object - signed
string - signed.raw_tx
Buffer - signed.signature

Param Type Default Description
trans ITransport
path string BIP32
data TypedData EIP712
chainId number 1 1: ETH, 56: BSC


SecuxETH.signWalletConnectTransaction(trans, path, content)object

Create transaction and Sign using WalletConnect protocol

Kind: static method of SecuxETH
Returns: object - signed
string - signed.raw_tx
Buffer - signed.signature

Param Type Description
trans ITransport
path string BIP32
content txDetail transaction content