Package Exports
- @secux/app-eth
- @secux/app-eth/lib/app-eth.js
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
- Get address derived by given BIP44 path
const address = await SecuxETH.getAddress(device, "m/44'/60'/0'/0/0");
- 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
}
);
- 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
}
);
- 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
}
);
// alternative usage
const { raw_tx, signature } = await SecuxETH.ERC20.transfer(
device,
"m/44'/60'/0'/0/0",
{
nonce: 0,
to: "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
value: 0,
chainId: 1,
gasPrice: 1e6,
gasLimit: 25000
},
{
toAddress: "0xD080156885651fADbD6df14145051b934660a748",
amount: `0x${1e18.toString(16)}`
}
);
- Sign Message transaction
const { raw_tx, signature } = await SecuxETH.signMessage(device, "m/44'/60'/0'/0/0", msg);
- Sign TypeData transaction (EIP-712)
const { raw_tx, signature } = await SecuxETH.signTypedData(device, "m/44'/60'/0'/0/0", msg);
- 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
- Value of chainId (same as EIP-155):
- Ethereum Mainnet: 1
- Binance Smart Chain Mainnet: 56
- Polygon Network: 137
- goto https://chainlist.org/ for your specific chain
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 | Description |
---|---|---|
trans | ITransport |
|
path | string |
BIP32 |
message | string |
|
[chainId] | number |
if give a chainId, the signature of output will be EIP-155 applied |
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 | Description |
---|---|---|
trans | ITransport |
|
path | string |
BIP32 |
data | TypedData |
EIP712 |
[chainId] | number |
if give a chainId, the signature of output will be EIP-155 applied |
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 |