UNPKG

zksync-sso

Version:
64 lines 3.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.revokeSession = exports.createSession = void 0; const viem_1 = require("viem"); const actions_1 = require("viem/actions"); const zksync_1 = require("viem/zksync"); const SessionKeyValidator_js_1 = require("../../../abi/SessionKeyValidator.js"); const index_js_1 = require("../../../paymaster/index.js"); const helpers_js_1 = require("../../../utils/helpers.js"); const createSession = async (client, args) => { const callData = (0, viem_1.encodeFunctionData)({ abi: SessionKeyValidator_js_1.SessionKeyValidatorAbi, functionName: "createSession", args: [args.sessionConfig], }); const sendTransactionArgs = { account: client.account, to: args.contracts.session, paymaster: args.paymaster?.address, paymasterInput: args.paymaster?.address ? (args.paymaster?.paymasterInput || (0, zksync_1.getGeneralPaymasterInput)({ innerInput: "0x" })) : undefined, data: callData, gas: 10000000n, }; const transactionWithPaymasterData = await (0, index_js_1.getTransactionWithPaymasterData)(client.chain.id, client.account.address, sendTransactionArgs, args.paymasterHandler); const transactionHash = await (0, zksync_1.sendTransaction)(client, transactionWithPaymasterData); if (args.onTransactionSent) { (0, helpers_js_1.noThrow)(() => args.onTransactionSent?.(transactionHash)); } const transactionReceipt = await (0, actions_1.waitForTransactionReceipt)(client, { hash: transactionHash }); if (transactionReceipt.status !== "success") throw new Error("createSession transaction reverted"); return { transactionReceipt, }; }; exports.createSession = createSession; const revokeSession = async (client, args) => { const callData = (0, viem_1.encodeFunctionData)({ abi: SessionKeyValidator_js_1.SessionKeyValidatorAbi, functionName: "revokeKey", args: [args.sessionId], }); const sendTransactionArgs = { account: client.account, to: args.contracts.session, paymaster: args.paymaster?.address, paymasterInput: args.paymaster?.address ? (args.paymaster?.paymasterInput || (0, zksync_1.getGeneralPaymasterInput)({ innerInput: "0x" })) : undefined, data: callData, gas: 10000000n, }; const transactionWithPaymasterData = await (0, index_js_1.getTransactionWithPaymasterData)(client.chain.id, client.account.address, sendTransactionArgs, args.paymasterHandler); const transactionHash = await (0, zksync_1.sendTransaction)(client, transactionWithPaymasterData); if (args.onTransactionSent) { (0, helpers_js_1.noThrow)(() => args.onTransactionSent?.(transactionHash)); } const transactionReceipt = await (0, actions_1.waitForTransactionReceipt)(client, { hash: transactionHash }); if (transactionReceipt.status !== "success") throw new Error("createSession transaction reverted"); return { transactionReceipt, }; }; exports.revokeSession = revokeSession; //# sourceMappingURL=session.js.map