UNPKG

@abstract-foundation/agw-client

Version:
31 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendTransactionForSessionSync = sendTransactionForSessionSync; const viem_1 = require("viem"); const actions_1 = require("viem/actions"); const utils_1 = require("viem/utils"); const constants_js_1 = require("../constants.js"); const sessions_js_1 = require("../sessions.js"); const sendTransactionInternal_js_1 = require("./sendTransactionInternal.js"); async function sendTransactionForSessionSync(client, signerClient, publicClient, parameters, session, customPaymasterHandler = undefined) { const { throwOnReceiptRevert, timeout, ...txParameters } = parameters; const selector = txParameters.data ? `0x${txParameters.data.slice(2, 10)}` : undefined; if (!txParameters.to) { throw new viem_1.BaseError("Transaction to field is not specified"); } return (0, sendTransactionInternal_js_1.sendTransactionInternal)(client, signerClient, publicClient, txParameters, constants_js_1.SESSION_KEY_VALIDATOR_ADDRESS, { [constants_js_1.SESSION_KEY_VALIDATOR_ADDRESS]: (0, sessions_js_1.encodeSessionWithPeriodIds)(session, (0, sessions_js_1.getPeriodIdsForTransaction)({ sessionConfig: session, target: txParameters.to, selector, timestamp: BigInt(Math.floor(Date.now() / 1000)), })), }, customPaymasterHandler, (serializedTransaction) => (0, utils_1.getAction)(client, actions_1.sendRawTransactionSync, "sendRawTransactionSync")({ serializedTransaction, throwOnReceiptRevert, timeout, })); } //# sourceMappingURL=sendTransactionForSessionSync.js.map