UNPKG

@biconomy-devx/modules

Version:

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

2 lines (1 loc) 1.07 kB
"use strict";import{encodeAbiParameters as s,parseAbiParameters as i}from"viem";export class ERC20SessionValidationModule{constructor(e){if(Object.defineProperty(this,"moduleAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"V1_0_0"}),!e.moduleAddress)throw new Error("Module address is required");this.moduleAddress=e.moduleAddress}static async create(e){return new ERC20SessionValidationModule(e)}async getSessionKeyData(e){return this._validateSessionKeyData(e),s(i("address, address, address, uint256"),[e.sessionKey,e.token,e.recipient,e.maxAmount])}_validateSessionKeyData(e){if(!e)throw new Error("Session data is required");if(!e.sessionKey)throw new Error("Session key is required in sessionData");if(!e.token)throw new Error("Token address is required in sessionData");if(!e.recipient)throw new Error("Recipient address is required in sessionData");if(!e.maxAmount)throw new Error("MaxAmount is required in sessionData")}getAddress(){return this.moduleAddress}}