UNPKG

@worldcoin/minikit-js

Version:

minikit-js is our SDK for building mini-apps.

55 lines (54 loc) 1.45 kB
// src/helpers/address-book.ts import { createPublicClient, http } from "viem"; import { worldchain } from "viem/chains"; var worldIdAddressBookContractAddress = "0x57b930D551e677CC36e2fA036Ae2fe8FdaE0330D"; var addressVerifiedUntilAbi = [ { inputs: [ { internalType: "address", name: "", type: "address" } ], name: "addressVerifiedUntil", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" } ]; var getIsUserVerified = async (walletAddress, rpcUrl) => { const publicClient = createPublicClient({ chain: worldchain, transport: http( rpcUrl || "https://worldchain-mainnet.g.alchemy.com/public" ) }); try { const verifiedUntilResponse = await publicClient.readContract({ address: worldIdAddressBookContractAddress, abi: addressVerifiedUntilAbi, functionName: "addressVerifiedUntil", args: [walletAddress] }); const verifiedUntil = Number(verifiedUntilResponse.toString()); if (!Number.isFinite(verifiedUntil)) { console.warn("Invalid verifiedUntil value:", verifiedUntil); return false; } const currentTime = Math.floor(Date.now() / 1e3); return verifiedUntil > currentTime; } catch (error) { console.error("Error verifying user:", error); return false; } }; export { getIsUserVerified };