UNPKG

@reown/appkit-siwx

Version:

The chain agnostic tool to enable authentication for AppKit applications.

36 lines 1.26 kB
import { createPublicClient, http } from 'viem'; import { ConstantsUtil } from '@reown/appkit-common'; import { ChainController } from '@reown/appkit-controllers'; import { SIWXVerifier } from '../core/SIWXVerifier.js'; /** * Default verifier for EIP155 sessions. */ export class EIP155Verifier extends SIWXVerifier { constructor() { super(...arguments); this.chainNamespace = ConstantsUtil.CHAIN.EVM; } async verify(session) { const caipNetwork = ChainController.state.chains .get('eip155') ?.caipNetworks?.find(cn => cn.caipNetworkId === session.data.chainId); if (!caipNetwork) { throw new Error('EIP155.verify: CaipNetwork not found'); } try { const client = createPublicClient({ chain: caipNetwork, transport: http(caipNetwork?.['rpcUrls'].default.http[0]) }); return await client.verifyMessage({ message: session.message.toString(), signature: session.signature, address: session.data.accountAddress }); } catch (error) { return false; } } } //# sourceMappingURL=EIP155Verifier.js.map