UNPKG

@ledgerhq/coin-aptos

Version:
40 lines 2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.signTransaction = void 0; const ts_sdk_1 = require("@aptos-labs/ts-sdk"); const sha3_1 = require("@noble/hashes/sha3"); const combine_1 = require("../logic/combine"); __exportStar(require("./client"), exports); async function signTransaction(signerContext, account, deviceId, rawTxn) { const { freshAddressPath: derivationPath } = account; if (!account.xpub) { throw Error("Account must have a public signing key"); } const publicKey = Buffer.from(ts_sdk_1.AccountAddress.from(account.xpub).toUint8Array()); const hash = sha3_1.sha3_256.create(); hash.update(publicKey.toString("hex")); hash.update("\x00"); const signingMessage = (0, ts_sdk_1.generateSigningMessageForTransaction)({ rawTransaction: rawTxn, }); const response = await signerContext(deviceId, async (signer) => await signer.signTransaction(derivationPath, Buffer.from(signingMessage))); const signature = new ts_sdk_1.Ed25519Signature(response.signature.toString("hex")); const pubkey = new ts_sdk_1.Ed25519PublicKey(publicKey.toString("hex")); return (0, combine_1.combineSignedTransaction)(rawTxn, signature, pubkey); } exports.signTransaction = signTransaction; //# sourceMappingURL=index.js.map