{"version":3,"sources":["../src/chains/evm/EVMHubClientAdapter.ts"],"sourcesContent":["/**\n * Veridex Protocol SDK - EVM Hub Client Adapter\n * \n * Adapts EVMClient to work with SessionManager's HubClient interface.\n * Provides a clean integration layer between session management and chain clients.\n */\n\nimport type { HubClient } from '../../sessions/index.js';\nimport type { RegisterSessionParams, RevokeSessionParams } from '../../types.js';\nimport type { EVMClient } from './EVMClient.js';\nimport type { ethers } from 'ethers';\n\n/**\n * Adapter that makes EVMClient compatible with SessionManager's HubClient interface\n * \n * Usage:\n * ```typescript\n * const hubAdapter = new EVMHubClientAdapter(evmClient, signer);\n * const sessionManager = new SessionManager(\n *   credential,\n *   hubAdapter,\n *   config\n * );\n * ```\n */\nexport class EVMHubClientAdapter implements HubClient {\n    constructor(\n        private evmClient: EVMClient,\n        private signer: ethers.Signer\n    ) {}\n    \n    /**\n     * Register a session on the Hub\n     * \n     * @param params Registration parameters with Passkey signature\n     * @returns Promise that resolves when registration completes\n     */\n    async registerSession(params: RegisterSessionParams): Promise<void> {\n        // Call EVMClient's registerSession method\n        await this.evmClient.registerSession(params, this.signer);\n    }\n    \n    /**\n     * Revoke a session on the Hub\n     * \n     * @param params Revocation parameters with Passkey signature\n     * @returns Promise that resolves when revocation completes\n     */\n    async revokeSession(params: RevokeSessionParams): Promise<void> {\n        // Call EVMClient's revokeSession method\n        await this.evmClient.revokeSession(params, this.signer);\n    }\n\n    /**\n     * Revoke all sessions for an identity on the Hub.\n     *\n     * Currently delegates to the single-revoke path since the Hub contract\n     * does not yet expose a batch-revoke entry point.  Subclasses or future\n     * Hub versions can override this with a true batch call.\n     * \n     * @param params Revocation parameters with Passkey signature\n     * @returns Number of sessions revoked (always 1 for now)\n     */\n    async revokeAllSessions(params: RevokeSessionParams): Promise<number> {\n        // TODO: Replace with a true batch-revoke Hub call when the contract\n        //       supports it.  For now, revoke the session identified by the\n        //       keyHash (or a sentinel-based wipe if the contract supports it).\n        await this.evmClient.revokeSession(params, this.signer);\n        return 1;\n    }\n    \n    /**\n     * Update the signer (e.g., when switching accounts)\n     * \n     * @param signer New Ethereum signer\n     */\n    updateSigner(signer: ethers.Signer): void {\n        this.signer = signer;\n    }\n}\n"],"mappings":";AAyBO,IAAM,sBAAN,MAA+C;AAAA,EAClD,YACY,WACA,QACV;AAFU;AACA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,MAAM,gBAAgB,QAA8C;AAEhE,UAAM,KAAK,UAAU,gBAAgB,QAAQ,KAAK,MAAM;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,cAAc,QAA4C;AAE5D,UAAM,KAAK,UAAU,cAAc,QAAQ,KAAK,MAAM;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,kBAAkB,QAA8C;AAIlE,UAAM,KAAK,UAAU,cAAc,QAAQ,KAAK,MAAM;AACtD,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,QAA6B;AACtC,SAAK,SAAS;AAAA,EAClB;AACJ;","names":[]}