@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
31 lines • 1.67 kB
JavaScript
;
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