@secux/protocol-transaction v3.1.5
@secux/protocol-transaction
SecuX Hardware Wallet transcation related protocol API
Usage
import { EllipticCurve, SecuxTransactionTool } from "@secux/protocol-transaction";First, create instance of ITransport
Examples
- Query publickey from SecuX Hardware Wallet
const data = SecuxTransactionTool.getPublickey("m/44'/0'/0'/0/0", EllipticCurve.SECP256K1);
const response = await device.Exchange(data);
const publickey = SecuxTransactionTool.resolvePublickey(
response,
EllipticCurve.SECP256K1,
true // SECP256K1 compress flag
);- Query extended publickey from SecuX Hardware Wallet
const data = SecuxTransactionTool.getXPublickey("m/44'/0'/0'/0/0");
const response = await device.Exchange(data);
const xpub = SecuxTransactionTool.resolveXPublickey(response, "m/44'/0'/0'/0/0");API Reference
Protocol layer of transaction related method
Kind: global class
- SecuxTransactionTool
- .resolveResponse(response) ⇒ IAPDUResponse
- .getPublickey(path, curve) ⇒ communicationData
- .resolvePublickey(response, curve, compressed) ⇒ string
- .getXPublickey(path) ⇒ communicationData
- .resolveXPublickey(response, path) ⇒ string
- .signTransaction(path, tx, [option]) ⇒ communicationData
- .resolveSignature(response) ⇒ string
- .signTransactionList(paths, txs, [otpion]) ⇒ communicationData
- .resolveSignatureList(response) ⇒ Array.<string>
- .signRawTransaction(path, tx, [option]) ⇒ communicationData
- .signRawTransactionList(paths, txs, [confirm], [otpion]) ⇒ communicationData
- .signMessage(path, msg, [option]) ⇒ communicationData
- .signTypedMessage(path, typedMessageHash, [option]) ⇒ communicationData
.txPrepare(path, inputId, tx, confirm, [isToken]) ⇒ communicationData.txBegin(amount, toAddress, [showConfirm]) ⇒ communicationData.txEnd() ⇒ communicationData.txSign(inputId) ⇒ communicationData
SecuxTransactionTool.resolveResponse(response) ⇒ IAPDUResponse
Resolve response from device.
Returns: IAPDUResponse - response object
| Param | Type | Description |
|---|---|---|
| response | communicationData | data from device |
SecuxTransactionTool.getPublickey(path, curve) ⇒ communicationData
Query publickey (uncompressed) command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| path | string | BIP32 |
| curve | EllipticCurve | 0: SECP256K1, 1: ED25519 |
SecuxTransactionTool.resolvePublickey(response, curve, compressed) ⇒ string
Reslove publickey from SecuX device.
Returns: string - publickey (base64 encoded)
| Param | Type | Default | Description |
|---|---|---|---|
| response | communicationData | data from device | |
| curve | EllipticCurve | 0: SECP256K1, 1: ED25519 | |
| compressed | boolean | true | setting for secp256k1 |
SecuxTransactionTool.getXPublickey(path) ⇒ communicationData
Query extended publickey command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| path | string | BIP32 |
SecuxTransactionTool.resolveXPublickey(response, path) ⇒ string
Reslove extended publickey from SecuX device.
Returns: string - xpub
| Param | Type | Description |
|---|---|---|
| response | communicationData | data from device |
| path | string | BIP32 |
SecuxTransactionTool.signTransaction(path, tx, option) ⇒ communicationData
Sign a hashed transcation command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| path | string | BIP32 |
| tx | communicationData | prepared transaction data |
| option | TransactionOption |
SecuxTransactionTool.resolveSignature(response) ⇒ string
Reslove signature from SecuX device.
Returns: string - signature (base64 encoded)
| Param | Type | Description |
|---|---|---|
| response | communicationData | data from device |
SecuxTransactionTool.signTransactionList(paths, txs, otpion) ⇒ communicationData
Sign hashed transactions command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| paths | Array.<string> | BIP32 |
| txs | Array.<Buffer> | prepared transaction data corresponding to above path |
| otpion | TransactionOption |
SecuxTransactionTool.resolveSignatureList(response) ⇒ Array.<string>
Reslove signature from SecuX device.
Returns: Array.<string> - signature array of base64 string
| Param | Type | Description |
|---|---|---|
| response | communicationData | data from device |
SecuxTransactionTool.signRawTransaction(path, tx, option) ⇒ communicationData
Sign a transcation command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| path | string | BIP32 |
| tx | communicationData | prepared transaction data |
| option | TransactionOption |
SecuxTransactionTool.signRawTransactionList(paths, txs, confirm, otpion) ⇒ communicationData
Sign transactions command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| paths | Array.<string> | BIP32 |
| txs | Array.<Buffer> | prepared transaction data corresponding to above path |
| confirm | communicationData | |
| otpion | TransactionOption |
SecuxTransactionTool.signMessage(path, msg, option) ⇒ communicationData
Sign message command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| path | string | BIP32 |
| msg | communicationData | |
| option | MessageOption |
SecuxTransactionTool.signTypedMessage(path, typedMessageHash, option) ⇒ communicationData
Sign typed message command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| path | string | BIP32 |
| typedMessageHash | communicationData | |
| option | MessageOption |
SecuxTransactionTool.txPrepare(path, inputId, tx, confirm, isToken) ⇒ communicationData
Deprecated
Send utxo command.
Returns: communicationData - data for sending to device
| Param | Type | Default | Description |
|---|---|---|---|
| path | string | BIP32 | |
| inputId | number | uint8 | |
| tx | communicationData | ||
| confirm | communicationData | ||
| isToken | boolean | false |
SecuxTransactionTool.txBegin(amount, toAddress, showConfirm) ⇒ communicationData
Deprecated
Begin signing command.
Returns: communicationData - data for sending to device
| Param | Type | Default |
|---|---|---|
| amount | string | |
| toAddress | string | |
| showConfirm | boolean | false |
SecuxTransactionTool.txEnd() ⇒ communicationData
Deprecated
End signing command.
Returns: communicationData - data for sending to device
SecuxTransactionTool.txSign(inputId) ⇒ communicationData
Deprecated
Sign command.
Returns: communicationData - data for sending to device
| Param | Type | Description |
|---|---|---|
| inputId | number | uint8 |
IAPDUResponse
Properties
| Name | Type | Description |
|---|---|---|
| status | number | StatusCode |
| data | string | base64 encoded |
| dataLength | number | length of the data |
StatusCode
Properties
| Name | Type | Description |
|---|---|---|
| DATA_ERROR | number | 0x5001 |
| CLA_ERROR | number | 0x5002 |
| INS_ERROR | number | 0x5003 |
| SUCCESS | number | 0x9000 |
TransactionType
Properties
| Name | Type | Description |
|---|---|---|
| NORMAL | number | 0 |
| TOKEN | number | 1 |
| NFT | number | 2 |
EllipticCurve
Properties
| Name | Type | Description |
|---|---|---|
| SECP256K1 | number | 0 |
| ED25519 | number | 1 |
TransactionOption
Properties
| Name | Type |
|---|---|
| tp | TransactionType |
| curve | EllipticCurve |
| chainId | number |
© 2018-21 SecuX Technology Inc.
authors: andersonwu@secuxtech.com