UNPKG

@biconomy-devx/modules

Version:

This package provides different validation modules/plugins for ERC4337 compatible modular account

60 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ERC20SessionValidationModule = void 0; const viem_1 = require("viem"); class ERC20SessionValidationModule { constructor(moduleConfig) { Object.defineProperty(this, "moduleAddress", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "version", { enumerable: true, configurable: true, writable: true, value: "V1_0_0" }); if (!moduleConfig.moduleAddress) { throw new Error("Module address is required"); } this.moduleAddress = moduleConfig.moduleAddress; } static async create(moduleConfig) { const module = new ERC20SessionValidationModule(moduleConfig); return module; } async getSessionKeyData(sessionData) { this._validateSessionKeyData(sessionData); const sessionKeyData = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)("address, address, address, uint256"), [ sessionData.sessionKey, sessionData.token, sessionData.recipient, sessionData.maxAmount, ]); return sessionKeyData; } _validateSessionKeyData(sessionData) { if (!sessionData) { throw new Error("Session data is required"); } if (!sessionData.sessionKey) { throw new Error("Session key is required in sessionData"); } if (!sessionData.token) { throw new Error("Token address is required in sessionData"); } if (!sessionData.recipient) { throw new Error("Recipient address is required in sessionData"); } if (!sessionData.maxAmount) { throw new Error("MaxAmount is required in sessionData"); } } getAddress() { return this.moduleAddress; } } exports.ERC20SessionValidationModule = ERC20SessionValidationModule; //# sourceMappingURL=ERC20SessionValidationModule.js.map