import LitJsSdk from "lit-js-sdk"; import { joinSignature } from "@ethersproject/bytes"; import { SignaturesFromMessage } from "../interfaces"; export async function signMessageWithLit(message: any, litActionCode: string, issuer: string): Promise { let jsResult; // create litNodeClient and connect const litNodeClient = new LitJsSdk.LitNodeClient({ litNetwork: 'serrano', debug: false }); await litNodeClient.connect(); // issuer connects wallet to get authSig let authSig = await LitJsSdk.checkAndSignAuthMessage({chain: 'ethereum', switchChain: false}); // create signature for proof from issuer console.log('executeJS obj', { code: litActionCode, jsParams: { message: message, publicKey: issuer, sigName: 'sig1' }, authSig }) jsResult = await litNodeClient.executeJs({ code: litActionCode, jsParams: { message: message, publicKey: issuer, sigName: 'sig1' }, authSig }); console.log('jsResult', jsResult) const signatures = jsResult.signatures; const sig = signatures.sig1; const dataSigned = "0x" + sig.dataSigned; const encodedSig = joinSignature({ r: "0x" + sig.r, s: "0x" + sig.s, v: sig.recid, }); return { dataSigned, encodedSig } } export function testLog() { console.log('testLog works') }