Как вручную подписать транзакцию, используя Hedera JavaScript SDK?Javascript

Форум по Javascript
Ответить
Anonymous
 Как вручную подписать транзакцию, используя Hedera JavaScript SDK?

Сообщение Anonymous »

Я пытаюсь использовать аппаратный модуль безопасности (HSM), чтобы вручную подписать транзакцию Hedera, но Hedera JavaScript SDK требует, чтобы я передал свой личный ключ в SDK для подписания. Поскольку мой личный ключ не может покинуть HSM, и я могу использовать HSM только для подписи транзакций, я не уверен, как продолжить. Может ли кто -нибудь, пожалуйста, сообщить мне, как это сделать? Я не смог найти ни одного примера кода. < /P>
Поток, которым я должен следить,: < /p>

Создать транзакцию < /p>
< /li>
сериализуйте транзакцию в байты транзакции < /p>
< /li>

HSM для подписания < /p>
< /li>
Deserialize Bytes Transaction Bytes обратно в транзакцию < /p>
< /li>
Подписанная транзакция в сеть < /p>
< /li>
< /ol>
. Invalid_signature Ошибка. Я позаботился о том, чтобы ключ был правильным. < /P>

Код: Выделить всё

const {
Client,
AccountId,
PrivateKey,
TransferTransaction,
Hbar,
Transaction,
} = require("@hashgraph/sdk");

async function main() {
const client = Client.forTestnet();

const operatorPrivateKeyHex =
"0xXXX";
const operatorId = AccountId.fromString("0.0.XXX");
const operatorKey = PrivateKey.fromString(operatorPrivateKeyHex);
client.setOperator(operatorId, operatorPrivateKeyHex);

let transaction = await new TransferTransaction()
.addHbarTransfer(operatorId, Hbar.fromTinybars(-100))
.addHbarTransfer(AccountId.fromString("0.0.3"), Hbar.fromTinybars(100))
.setNodeAccountIds([AccountId.fromString("0.0.5")])
.freezeWith(client);

const txByte = transaction.toBytes();
const signature = operatorKey.sign(txByte);

transaction = Transaction.fromBytes(txByte);
transaction.addSignature(operatorKey.publicKey, signature);

const txResponse = await transaction.execute(client);
const receipt = await txResponse.getReceipt(client);
}

main();



Подробнее здесь: https://stackoverflow.com/questions/795 ... script-sdk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»