Hedera (HBAR & HTS)
In order to get public key for Hedera Account, you can use
getAddress()
function.If you use
DcentCLIConnector.coinType.HEDERA
as a coinType parameter for getAddress()
function, you can get public key for the private key of the BIP44 path.For more detail about
getAddress()
, please see the below section.Transaction | Supported | Group |
---|---|---|
AccountCreateTransaction | O | Accounts |
AccountUpdateTransaction | O | Accounts |
TransferTransaction | O | Accounts |
AccountDeleteTransaction | X | Accounts |
AccountAllowanceApprovalTransaction | X | Accounts |
AccountAllowanceAdjustTransaction | X | Accounts |
TokenCreateTransaction | O | Token |
TokenUpdateTransaction | O | Token |
TokenDeleteTransaction | X | Token |
TokenAssociateTransaction | O | Token |
TokenDissociateTransaction | O | Token |
TokenMintTransaction | O | Token |
TokenBurnTransaction | O | Token |
TokenFreezeTransaction | O | Token |
TokenFeeScheduleUpdateTransaction | X | Token |
TokenUnfreezeTransaction | O | Token |
TokenGrantKycTransaction | X | Token |
TokenRevokeKycTransaction | X | Token |
TokenPauseTransaction | O | Token |
TokenUnpauseTransaction | O | Token |
TokenWipeTransaction | O | Token |
For your reference, all transaction types for Hedera can be found here.
- Hedera(HTS)
- path: key path, wallet sign with that private key with a given key path (BIP32 ex) "m/44'/144'/0'").
- symbol: symbol, It is a symbol that the wallet displays on the screen.
- decimals: hedera or hts token's decimals.
- D'CENT Biometric Wallet version 2.19.3. or higher is required.
const _buf2hex = (buffer) => { // buffer is an ArrayBuffer
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}
const client = HederaSDK.Client.forMainnet()
const nodeList = client._network.getNodeAccountIdsForExecute()
const validStart = Timestamp.generate()
const fromAccountId = AccountId.fromString('accountIdString')
const txId = new TransactionId(fromAccountId, validStart)
const tx = new HederaSDK.TransferTransaction()
// when you transfer hbar
tx.addHbarTransfer(fromAccountId, HederaSDK.Hbar.fromTinybars('-' + amountTinybar))
tx.addHbarTransfer('toAccountIdString', HederaSDK.Hbar.fromTinybars(amountTinybar))
// or you can transfer token like this.
tx.addTokenTransfer(contractAddress, fromAccountId, HederaSDK.Hbar.fromTinybars('-' + amountTinybar))
tx.addTokenTransfer(contractAddress, 'toAccountIdString', HederaSDK.Hbar.fromTinybars(amountTinybar))
tx.setNodeAccountIds([nodeList[nodeList.length - 1]])
tx.setTransactionId(txId)
tx.setTransactionMemo('')
tx.setMaxTransactionFee(fee)
tx.freezeWith(client)
const bodyBytes = tx._signedTransactions[0].bodyBytes
const unsignedTx = _buf2hex(bodyBytes)
const transactionJson = {
unsignedTx: unsignedTx,
path: `m/44'/3030'/0'`,
symobl: HBAR,
decimals: 8,
}
var result
try {
result = await dcent.getHederaSignedTransaction(transactionJson);
} catch (e) {
console.log(e)
result = e
}
{
"header": {
"version": "1.0",
"response_from": "hedera",
"status": "success"
},
"body": {
"command": "transaction",
"parameter": {
"signed_tx": "0x31aa13b5e04cb6fc6381ea0520bf7f6727ebdb6e96cd7ca8625bb3e3dd36cf0e2cee4ece13aa9f7ddc09ee10c74aa00af954201829d8016317f10f5a921dcc0d",
"pubkey": "0x9a5c753d02038e512c06867556324b37181c9c1fc19c21c27752c520e8f0d822"
}
}
}
Last modified 6mo ago