@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
29 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.signTransactionForSession = signTransactionForSession;
const viem_1 = require("viem");
const constants_js_1 = require("../constants.js");
const sessions_js_1 = require("../sessions.js");
const utils_js_1 = require("../utils.js");
const signTransaction_js_1 = require("./signTransaction.js");
async function signTransactionForSession(client, signerClient, publicClient, parameters, session, customPaymasterHandler = undefined) {
const isDeployed = await (0, utils_js_1.isSmartAccountDeployed)(publicClient, client.account.address);
if (!isDeployed) {
throw new viem_1.BaseError('Smart account not deployed');
}
const selector = parameters.data
? `0x${parameters.data.slice(2, 10)}`
: undefined;
if (!parameters.to) {
throw new viem_1.BaseError('Transaction to field is not specified');
}
return await (0, signTransaction_js_1.signTransaction)(client, signerClient, publicClient, parameters, 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: parameters.to,
selector,
timestamp: BigInt(Math.floor(Date.now() / 1000)),
})),
}, customPaymasterHandler);
}
//# sourceMappingURL=signTransactionForSession.js.map