startale-aa-sdk
Version:
SDK for startale account integration with support for account abstraction, ERC-7579, ERC-4337.
49 lines • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toSmartSessionsValidator = exports.getUsePermissionInitData = exports.getUsePermissionModuleInitData = exports.DUMMY_ECDSA_SIG = void 0;
const viem_1 = require("viem");
const constants_1 = require("../../../constants/index.js");
const toModule_1 = require("../../utils/toModule.js");
exports.DUMMY_ECDSA_SIG = "0xe8b94748580ca0b4993c9a1b86b5be851bfc076ff5ce3a1ff65bf16392acfcb800f9b4f1aef1555c7fce5599fffb17e7c635502154a0333ba21f3ae491839af51c";
const getUsePermissionModuleInitData = (_) => ({
address: constants_1.SMART_SESSIONS_ADDRESS,
type: "validator",
initData: "0x"
});
exports.getUsePermissionModuleInitData = getUsePermissionModuleInitData;
const getUsePermissionInitData = ({ signerAddress }) => (0, viem_1.encodePacked)(["address"], [signerAddress]);
exports.getUsePermissionInitData = getUsePermissionInitData;
const toSmartSessionsValidator = (parameters) => {
const { account, signer, moduleInitData: moduleInitData_, deInitData = "0x", initData: initData_, initArgs: initArgs_ = { signerAddress: signer.address }, moduleData: { permissionIdIndex = 0, permissionIds = [], mode = constants_1.SmartSessionMode.USE, enableSessionData } = {} } = parameters;
const initData = initData_ ?? (0, exports.getUsePermissionInitData)(initArgs_);
const moduleInitData = moduleInitData_ ?? (0, constants_1.getSmartSessionsValidator)({ useRegistry: false });
return (0, toModule_1.toModule)({
...parameters,
signer,
accountAddress: account.address,
address: constants_1.SMART_SESSIONS_ADDRESS,
initData,
moduleInitData,
deInitData,
getStubSignature: async () => (0, constants_1.encodeSmartSessionSignature)({
mode,
permissionId: permissionIds[permissionIdIndex],
enableSessionData,
signature: (0, constants_1.getOwnableValidatorMockSignature)({
threshold: 1
})
}),
signUserOpHash: async (userOpHash) => {
return (0, constants_1.encodeSmartSessionSignature)({
mode,
permissionId: permissionIds[permissionIdIndex],
enableSessionData,
signature: await signer.signMessage({
message: { raw: userOpHash }
})
});
}
});
};
exports.toSmartSessionsValidator = toSmartSessionsValidator;
//# sourceMappingURL=toSmartSessionsValidator.js.map