3.1.5 • Published 1 year ago

@secux/protocol-transaction v3.1.5

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
1 year ago

lerna view on npm npm module downloads

@secux/protocol-transaction

SecuX Hardware Wallet transcation related protocol API

Usage

import { EllipticCurve, SecuxTransactionTool } from "@secux/protocol-transaction";

First, create instance of ITransport

Examples

  1. 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
);
  1. 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

Resolve response from device.

Returns: IAPDUResponse - response object

ParamTypeDescription
responsecommunicationDatadata from device

SecuxTransactionTool.getPublickey(path, curve) ⇒ communicationData

Query publickey (uncompressed) command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathstringBIP32
curveEllipticCurve0: SECP256K1, 1: ED25519

SecuxTransactionTool.resolvePublickey(response, curve, compressed) ⇒ string

Reslove publickey from SecuX device.

Returns: string - publickey (base64 encoded)

ParamTypeDefaultDescription
responsecommunicationDatadata from device
curveEllipticCurve0: SECP256K1, 1: ED25519
compressedbooleantruesetting for secp256k1

SecuxTransactionTool.getXPublickey(path) ⇒ communicationData

Query extended publickey command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathstringBIP32

SecuxTransactionTool.resolveXPublickey(response, path) ⇒ string

Reslove extended publickey from SecuX device.

Returns: string - xpub

ParamTypeDescription
responsecommunicationDatadata from device
pathstringBIP32

SecuxTransactionTool.signTransaction(path, tx, option) ⇒ communicationData

Sign a hashed transcation command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathstringBIP32
txcommunicationDataprepared transaction data
optionTransactionOption

SecuxTransactionTool.resolveSignature(response) ⇒ string

Reslove signature from SecuX device.

Returns: string - signature (base64 encoded)

ParamTypeDescription
responsecommunicationDatadata from device

SecuxTransactionTool.signTransactionList(paths, txs, otpion) ⇒ communicationData

Sign hashed transactions command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathsArray.<string>BIP32
txsArray.<Buffer>prepared transaction data corresponding to above path
otpionTransactionOption

SecuxTransactionTool.resolveSignatureList(response) ⇒ Array.<string>

Reslove signature from SecuX device.

Returns: Array.<string> - signature array of base64 string

ParamTypeDescription
responsecommunicationDatadata from device

SecuxTransactionTool.signRawTransaction(path, tx, option) ⇒ communicationData

Sign a transcation command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathstringBIP32
txcommunicationDataprepared transaction data
optionTransactionOption

SecuxTransactionTool.signRawTransactionList(paths, txs, confirm, otpion) ⇒ communicationData

Sign transactions command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathsArray.<string>BIP32
txsArray.<Buffer>prepared transaction data corresponding to above path
confirmcommunicationData
otpionTransactionOption

SecuxTransactionTool.signMessage(path, msg, option) ⇒ communicationData

Sign message command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathstringBIP32
msgcommunicationData
optionMessageOption

SecuxTransactionTool.signTypedMessage(path, typedMessageHash, option) ⇒ communicationData

Sign typed message command.

Returns: communicationData - data for sending to device

ParamTypeDescription
pathstringBIP32
typedMessageHashcommunicationData
optionMessageOption

SecuxTransactionTool.txPrepare(path, inputId, tx, confirm, isToken) ⇒ communicationData

Deprecated

Send utxo command.

Returns: communicationData - data for sending to device

ParamTypeDefaultDescription
pathstringBIP32
inputIdnumberuint8
txcommunicationData
confirmcommunicationData
isTokenbooleanfalse

SecuxTransactionTool.txBegin(amount, toAddress, showConfirm) ⇒ communicationData

Deprecated

Begin signing command.

Returns: communicationData - data for sending to device

ParamTypeDefault
amountstring
toAddressstring
showConfirmbooleanfalse

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

ParamTypeDescription
inputIdnumberuint8

IAPDUResponse

Properties

NameTypeDescription
statusnumberStatusCode
datastringbase64 encoded
dataLengthnumberlength of the data

StatusCode

Properties

NameTypeDescription
DATA_ERRORnumber0x5001
CLA_ERRORnumber0x5002
INS_ERRORnumber0x5003
SUCCESSnumber0x9000

TransactionType

Properties

NameTypeDescription
NORMALnumber0
TOKENnumber1
NFTnumber2

EllipticCurve

Properties

NameTypeDescription
SECP256K1number0
ED25519number1

TransactionOption

Properties

NameType
tpTransactionType
curveEllipticCurve
chainIdnumber

© 2018-21 SecuX Technology Inc.

authors: andersonwu@secuxtech.com