@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
-
.resolveResponse(response) ⇒
IAPDUResponse
SecuxTransactionTool.resolveResponse(response) ⇒ Resolve response from device.
Returns: IAPDUResponse
- response object
Param | Type | Description |
---|---|---|
response | communicationData |
data from device |
communicationData
SecuxTransactionTool.getPublickey(path, curve) ⇒ Query publickey (uncompressed) command.
Returns: communicationData
- data for sending to device
Param | Type | Description |
---|---|---|
path | string |
BIP32 |
curve | EllipticCurve |
0: SECP256K1, 1: ED25519 |
string
SecuxTransactionTool.resolvePublickey(response, curve, compressed) ⇒ 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 |
communicationData
SecuxTransactionTool.getXPublickey(path) ⇒ Query extended publickey command.
Returns: communicationData
- data for sending to device
Param | Type | Description |
---|---|---|
path | string |
BIP32 |
string
SecuxTransactionTool.resolveXPublickey(response, path) ⇒ Reslove extended publickey from SecuX device.
Returns: string
- xpub
Param | Type | Description |
---|---|---|
response | communicationData |
data from device |
path | string |
BIP32 |
communicationData
SecuxTransactionTool.signTransaction(path, tx, [option]) ⇒ 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 |
string
SecuxTransactionTool.resolveSignature(response) ⇒ Reslove signature from SecuX device.
Returns: string
- signature (base64 encoded)
Param | Type | Description |
---|---|---|
response | communicationData |
data from device |
communicationData
SecuxTransactionTool.signTransactionList(paths, txs, [otpion]) ⇒ 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 |
Array.<string>
SecuxTransactionTool.resolveSignatureList(response) ⇒ Reslove signature from SecuX device.
Returns: Array.<string>
- signature array of base64 string
Param | Type | Description |
---|---|---|
response | communicationData |
data from device |
communicationData
SecuxTransactionTool.signRawTransaction(path, tx, [option]) ⇒ Sign a transcation command.
Returns: communicationData
- data for sending to device
Param | Type | Description |
---|---|---|
path | string |
BIP32 |
tx | communicationData |
prepared transaction data |
[option] | TransactionOption |
communicationData
SecuxTransactionTool.signRawTransactionList(paths, txs, [confirm], [otpion]) ⇒ 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 |
communicationData
SecuxTransactionTool.signMessage(path, msg, [option]) ⇒ Sign message command.
Returns: communicationData
- data for sending to device
Param | Type | Description |
---|---|---|
path | string |
BIP32 |
msg | communicationData |
|
[option] | MessageOption |
communicationData
SecuxTransactionTool.signTypedMessage(path, typedMessageHash, [option]) ⇒ 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
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
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
communicationData
Deprecated
End signing command.
Returns: communicationData
- data for sending to device
SecuxTransactionTool.txSign(inputId) ⇒ communicationData
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