@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
48 lines • 2.04 kB
TypeScript
import type { Address, Hash, PublicClient, Transport } from 'viem';
import { type SessionConfig, SessionStatus } from '../sessions.js';
/**
* Function to check the current status of a session key from the validator contract.
*
* Allows you to determine if a session is active, expired, closed, or not initialized.
*
* @example
* ```tsx
* import { useAbstractClient } from "@abstract-foundation/agw-react";
* import { SessionStatus } from "@abstract-foundation/agw-client/sessions";
* import { useAccount } from "wagmi";
*
* export default function CheckSessionStatus() {
* const { address } = useAccount();
* const { data: agwClient } = useAbstractClient();
*
* async function checkStatus() {
* if (!address || !agwClient) return;
*
* // Provide either a session hash or session config object
* const sessionHashOrConfig = "..."; // or { ... }
* const status = await agwClient.getSessionStatus(sessionHashOrConfig);
*
* // Handle the different status cases
* switch (status) {
* case 0: // Not initialized
* console.log("Session does not exist");
* case 1: // Active
* console.log("Session is active and can be used");
* case 2: // Closed
* console.log("Session has been revoked");
* case 3: // Expired
* console.log("Session has expired");
* }
* }
* }
* ```
*
* @param sessionHashOrConfig - Either the hash of the session configuration or the session configuration object itself
* @returns The current status of the session:
* - `SessionStatus.NotInitialized` (0): The session has not been created
* - `SessionStatus.Active` (1): The session is active and can be used
* - `SessionStatus.Closed` (2): The session has been revoked
* - `SessionStatus.Expired` (3): The session has expired
*/
export declare function getSessionStatus(publicClient: PublicClient<Transport>, address: Address, sessionHashOrConfig: Hash | SessionConfig): Promise<SessionStatus>;
//# sourceMappingURL=getSessionStatus.d.ts.map