UNPKG

@lit-protocol/vincent-scaffold-sdk

Version:

Shared build configuration and utilities for Vincent abilities and policies

29 lines (28 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signTx = void 0; /** * Signs a transaction using the PKP's public key. * @param {Object} params - The parameters object * @param {string} params.pkpPublicKey - The PKP's public key * @param {any} params.tx - The transaction to sign * @param {string} params.sigName - The name of the signature * @returns {Promise<string>} The signed transaction. */ const signTx = async ({ sigName, pkpPublicKey, tx, }) => { console.log(`Signing TX: ${sigName}`); const pkForLit = pkpPublicKey.startsWith("0x") ? pkpPublicKey.slice(2) : pkpPublicKey; const sig = await Lit.Actions.signAndCombineEcdsa({ toSign: ethers.utils.arrayify(ethers.utils.keccak256(ethers.utils.serializeTransaction(tx))), publicKey: pkForLit, sigName, }); return ethers.utils.serializeTransaction(tx, ethers.utils.joinSignature({ r: "0x" + JSON.parse(sig).r.substring(2), s: "0x" + JSON.parse(sig).s, v: JSON.parse(sig).v, })); }; exports.signTx = signTx;