@secux/app-trx
v3.0.6
Published
SecuX Hardware Wallet TRX API
Downloads
34
Maintainers
Readme
@secux/app-trx
SecuX Hardware Wallet TRX API
Usage
import { SecuxTRX } from "@secux/app-trx";
First, create instance of ITransport
Examples
- Get address of bip44 path
const path = "m/44'/195'/0'/0/0";
const address = await device.getAddress(path);
/*
// transfer data to hardware wallet by custom transport layer.
const data = SecuxTRX.prepareAddress(path);
const response = await device.Exchange(data);
const address = SecuxTRX.resolveAddress(response);
*/
- Sign transaction (TransferContract)
const TronWeb = require("tronweb");
// fetch block data
const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io' });
const block = await tronWeb.trx.getConfirmedCurrentBlock();
const content = {
to: "TJKiYicrKqB7PR2wywfWKkNMppNRqd6tXt",
amount: 1e5,
blockID: block.blockID,
blockNumber: block.block_header.raw_data.number,
timestamp: block.block_header.raw_data.timestamp
};
// sign
const { raw_tx, signature } = await device.sign("m/44'/195'/0'/0/0", content);
/*
// transfer data to hardware wallet by custom transport layer.
const { commandData, rawTx } = SecuxTRX.prepareSign("m/44'/195'/0'/0/0", content);
const response = await device.Exchange(commandData);
const raw_tx = SecuxTRX.resolveTransaction(response, rawTx);
*/
// broadcast
const response = await tronWeb.trx.sendHexTransaction(raw_tx);
- Sign TRC10 transaction (TransferAssetContract)
const content = {
to: "TJKiYicrKqB7PR2wywfWKkNMppNRqd6tXt",
token: 1002000,
amount: 1e5,
blockID: block.blockID,
blockNumber: block.block_header.raw_data.number,
timestamp: block.block_header.raw_data.timestamp
};
const { raw_tx, signature } = await device.sign("m/44'/195'/0'/0/0", content);
/*
// transfer data to hardware wallet by custom transport layer.
const { commandData, rawTx } = SecuxTRX.prepareSign("m/44'/195'/0'/0/0", content);
const response = await device.Exchange(commandData);
const raw_tx = SecuxTRX.resolveTransaction(response, rawTx);
*/
- Sign TRC20 transaction (TriggerSmartContract)
- [tokenId]: the TRC10 asset ID that transfered to the contract while calling the contract.
- [tokenValue]: the amount of TRC10 asset that transfered to the contract while calling the contract.
- [callValue]: the amount of TRX that transfered to the contract while calling the contract, the unit is sun.
const content = {
contract: "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
// data field can use abi encoded string optionally
data: [
{ type: "address", value: "TJKiYicrKqB7PR2wywfWKkNMppNRqd6tXt" },
{ type: "uint256", value: 1e5 }
],
blockID: block.blockID,
blockNumber: block.block_header.raw_data.number,
timestamp: block.block_header.raw_data.timestamp
};
const { raw_tx, signature } = await device.sign("m/44'/195'/0'/0/0", content);
/*
// transfer data to hardware wallet by custom transport layer.
const { commandData, rawTx } = SecuxTRX.prepareSign("m/44'/195'/0'/0/0", content);
const response = await device.Exchange(commandData);
const raw_tx = SecuxTRX.resolveTransaction(response, rawTx);
*/
API Reference
TRX package for SecuX device
Kind: global class
- SecuxTRX
- .addressConvert(publickey) ⇒ string
- .toHexAddress(address) ⇒ string
- .prepareAddress(path) ⇒ communicationData
- .resolveAddress(response) ⇒ string
- .preparePublickey(path) ⇒ communicationData
- .resolvePublickey(response) ⇒ string
- .prepareXPublickey(path) ⇒ communicationData
- .resolveXPublickey(response, path) ⇒
- .prepareSign(path, content) ⇒ prepared
- .resolveSignature(response) ⇒ string
- .resolveTransaction(response, serialized) ⇒ string
SecuxTRX.addressConvert(publickey) ⇒ string
Convert secp256k1 publickey to TRX address.
Returns: string - TRX address
| Param | Type | | --- | --- | | publickey | string | Buffer |
SecuxTRX.toHexAddress(address) ⇒ string
Convert TRX address to hex representation
Returns: string - TRX address (hex)
| Param | Type | Description | | --- | --- | --- | | address | string | TRX address |
SecuxTRX.prepareAddress(path) ⇒ communicationData
Prepare data for address generation.
Returns: communicationData - data for sending to device
| Param | Type | Description | | --- | --- | --- | | path | string | m/44'/195'/... |
SecuxTRX.resolveAddress(response) ⇒ string
Generate address from response data.
Returns: string - TRX address
| Param | Type | Description | | --- | --- | --- | | response | communicationData | data from device |
SecuxTRX.preparePublickey(path) ⇒ communicationData
Prepare data for secp256k1 publickey.
Returns: communicationData - data for sending to device
| Param | Type | Description | | --- | --- | --- | | path | string | m/44'/195'/... |
SecuxTRX.resolvePublickey(response) ⇒ string
Resolve secp256k1 publickey from response data.
Returns: string - secp256k1 publickey
| Param | Type | Description | | --- | --- | --- | | response | communicationData | data from device |
SecuxTRX.prepareXPublickey(path) ⇒ communicationData
Prepare data for xpub.
Returns: communicationData - data for sending to device
| Param | Type | Description | | --- | --- | --- | | path | string | m/44'/195'/... |
SecuxTRX.resolveXPublickey(response, path) ⇒
Resolve xpub from response data.
Returns: xpub
| Param | Type | Description | | --- | --- | --- | | response | communicationData | data from device | | path | string | m/44'/195'/... |
SecuxTRX.prepareSign(path, content) ⇒ prepared
Prepare data for signing.
Returns: prepared - prepared object
| Param | Type | Description | | --- | --- | --- | | path | string | m/44'/195'/... | | content | transferData | trc10_Data | trc20_Data | transaction object |
SecuxTRX.resolveSignature(response) ⇒ string
Resolve signature from response data.
Returns: string - signature (hex string)
| Param | Type | Description | | --- | --- | --- | | response | communicationData | data from device |
SecuxTRX.resolveTransaction(response, serialized) ⇒ string
Resolve transaction for broadcasting.
Returns: string - signed raw transaction
| Param | Type | Description | | --- | --- | --- | | response | communicationData | data from device | | serialized | communicationData | raw transaction |
transferData : object
Properties
| Name | Type | Description | | --- | --- | --- | | from | string | sending address | | to | string | receiving address | | amount | number | transfer amount | | blockID | string | | | blockNumber | number | | | timestamp | number | | | [feeLimit] | number | | | [expiration] | number | |
trc10_Data : object
Properties
| Name | Type | Description | | --- | --- | --- | | from | string | sending address | | to | string | receiving address | | token | string | number | token id number | | amount | number | transfer amount | | blockID | string | | | blockNumber | number | | | timestamp | number | | | [feeLimit] | number | | | [expiration] | number | |
trc20_Data : object
Properties
| Name | Type | Description | | --- | --- | --- | | from | string | sending address | | to | string | receiving address | | amount | number | string | transfer amount | | contract | string | contract address | | [data] | string | abi encoded string | | blockID | string | | | blockNumber | number | | | timestamp | number | | | [callValue] | number | amount of TRX to send to the contract when triggers. | | [tokenId] | number | id of TRC-10 token to be sent to the contract. | | [tokenValue] | number | amount of TRC-10 token to send to the contract when triggers. | | [feeLimit] | number | | | [expiration] | number | |
prepared : object
Properties
| Name | Type | Description | | --- | --- | --- | | commandData | communicationData | data for sending to device | | rawTx | communicationData | unsigned raw transaction |
© 2018-21 SecuX Technology Inc.
authors: [email protected]