@secux/protocol-transaction
@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) ⇒
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
communicationDataDeprecated
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
communicationDataDeprecated
Begin signing command.
Returns: communicationData - data for sending to device
| Param | Type | Default |
|---|---|---|
| amount | string |
|
| toAddress | string |
|
| [showConfirm] | boolean |
false |
SecuxTransactionTool.txEnd() ⇒ communicationData
communicationDataDeprecated
End signing command.
Returns: communicationData - data for sending to device
SecuxTransactionTool.txSign(inputId) ⇒ communicationData
communicationDataDeprecated
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