UNPKG

@ledgerhq/coin-aptos

Version:
34 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.combine = exports.combineSignedTransaction = void 0; const ts_sdk_1 = require("@aptos-labs/ts-sdk"); function combineSignedTransaction(txRaw, signature, pubkey) { const authenticator = new ts_sdk_1.AccountAuthenticatorEd25519(pubkey, signature); return (0, ts_sdk_1.generateSignedTransaction)({ transaction: { rawTransaction: txRaw }, senderAuthenticator: authenticator, }); } exports.combineSignedTransaction = combineSignedTransaction; function combine(tx, signature, pubkey) { if (!ts_sdk_1.Hex.isValid(tx).valid) { throw new Error("tx must be a valid hex value"); } if (!ts_sdk_1.Hex.isValid(signature).valid) { throw new Error("signature must be a valid hex value"); } if (pubkey === undefined) { throw new Error("account must have a public key"); } if (!ts_sdk_1.Hex.isValid(pubkey).valid) { throw new Error("pubkey must be a valid hex value"); } const ed25519Signature = new ts_sdk_1.Ed25519Signature(signature); const ed25519PubKey = new ts_sdk_1.Ed25519PublicKey(pubkey); const txBytes = ts_sdk_1.Hex.fromHexString(tx).toUint8Array(); const txRaw = ts_sdk_1.RawTransaction.deserialize(new ts_sdk_1.Deserializer(txBytes)); const signedTxBytes = combineSignedTransaction(txRaw, ed25519Signature, ed25519PubKey); return ts_sdk_1.Hex.fromHexInput(signedTxBytes).toString(); } exports.combine = combine; //# sourceMappingURL=combine.js.map