UNPKG

@randombits/use-siwe

Version:

React hook and API endpoints that provide Sign In With Ethereum support

295 lines (287 loc) 9.12 kB
import { PropsWithChildren } from 'react'; import * as _tanstack_react_query from '@tanstack/react-query'; import { UseQueryOptions } from '@tanstack/react-query'; import { SiweMessage } from 'siwe'; declare module "iron-session" { interface IronSessionData { address?: string | undefined; nonce?: string | undefined; } } type GetSessionResponse = { authenticated: boolean; address?: string; nonce?: string; }; type UseSiweOptions = { baseUrl?: string; }; type SiweProviderProps = PropsWithChildren & { options?: UseSiweOptions; }; declare const SiweProvider: ({ children, options }: SiweProviderProps) => JSX.Element; declare const getSession: (options?: UseSiweOptions) => Promise<GetSessionResponse>; declare const useSession: () => { authenticated: boolean; address?: string; nonce?: string; error: unknown; isError: true; isLoading: false; isLoadingError: false; isRefetchError: true; isSuccess: false; status: "error"; dataUpdatedAt: number; errorUpdatedAt: number; failureCount: number; failureReason: unknown; errorUpdateCount: number; isFetched: boolean; isFetchedAfterMount: boolean; isFetching: boolean; isInitialLoading: boolean; isPaused: boolean; isPlaceholderData: boolean; isPreviousData: boolean; isRefetching: boolean; isStale: boolean; refetch: <TPageData>(options?: _tanstack_react_query.RefetchOptions & _tanstack_react_query.RefetchQueryFilters<TPageData>) => Promise<_tanstack_react_query.QueryObserverResult<GetSessionResponse, unknown>>; remove: () => void; fetchStatus: _tanstack_react_query.FetchStatus; } | { authenticated: boolean; address?: string; nonce?: string; error: null; isError: false; isLoading: false; isLoadingError: false; isRefetchError: false; isSuccess: true; status: "success"; dataUpdatedAt: number; errorUpdatedAt: number; failureCount: number; failureReason: unknown; errorUpdateCount: number; isFetched: boolean; isFetchedAfterMount: boolean; isFetching: boolean; isInitialLoading: boolean; isPaused: boolean; isPlaceholderData: boolean; isPreviousData: boolean; isRefetching: boolean; isStale: boolean; refetch: <TPageData>(options?: _tanstack_react_query.RefetchOptions & _tanstack_react_query.RefetchQueryFilters<TPageData>) => Promise<_tanstack_react_query.QueryObserverResult<GetSessionResponse, unknown>>; remove: () => void; fetchStatus: _tanstack_react_query.FetchStatus; } | { authenticated: boolean; address?: string; nonce?: string; error: unknown; isError: true; isLoading: false; isLoadingError: true; isRefetchError: false; isSuccess: false; status: "error"; dataUpdatedAt: number; errorUpdatedAt: number; failureCount: number; failureReason: unknown; errorUpdateCount: number; isFetched: boolean; isFetchedAfterMount: boolean; isFetching: boolean; isInitialLoading: boolean; isPaused: boolean; isPlaceholderData: boolean; isPreviousData: boolean; isRefetching: boolean; isStale: boolean; refetch: <TPageData>(options?: _tanstack_react_query.RefetchOptions & _tanstack_react_query.RefetchQueryFilters<TPageData>) => Promise<_tanstack_react_query.QueryObserverResult<GetSessionResponse, unknown>>; remove: () => void; fetchStatus: _tanstack_react_query.FetchStatus; } | { authenticated: boolean; address?: string; nonce?: string; error: null; isError: false; isLoading: true; isLoadingError: false; isRefetchError: false; isSuccess: false; status: "loading"; dataUpdatedAt: number; errorUpdatedAt: number; failureCount: number; failureReason: unknown; errorUpdateCount: number; isFetched: boolean; isFetchedAfterMount: boolean; isFetching: boolean; isInitialLoading: boolean; isPaused: boolean; isPlaceholderData: boolean; isPreviousData: boolean; isRefetching: boolean; isStale: boolean; refetch: <TPageData>(options?: _tanstack_react_query.RefetchOptions & _tanstack_react_query.RefetchQueryFilters<TPageData>) => Promise<_tanstack_react_query.QueryObserverResult<GetSessionResponse, unknown>>; remove: () => void; fetchStatus: _tanstack_react_query.FetchStatus; }; type UseSignInOptions = Pick<UseQueryOptions<void>, "onSuccess" | "onError">; type MessageArgs = { address: string; chainId: number; nonce: string; }; type VerifyArgs = { message: SiweMessage; signature: string; }; declare const createMessage: (args: MessageArgs) => SiweMessage; declare const getMessageBody: ({ message }: { message: SiweMessage; }) => string; declare const verify: (args: VerifyArgs, options?: UseSiweOptions) => Promise<boolean>; declare const useSignIn: ({ onSuccess, onError }?: UseSignInOptions) => { signIn: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignInAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: undefined; error: null; isError: false; isIdle: true; isLoading: false; isSuccess: false; status: "idle"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; } | { signIn: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignInAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: undefined; error: null; isError: false; isIdle: false; isLoading: true; isSuccess: false; status: "loading"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; } | { signIn: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignInAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: undefined; error: unknown; isError: true; isIdle: false; isLoading: false; isSuccess: false; status: "error"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; } | { signIn: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignInAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: void; error: null; isError: false; isIdle: false; isLoading: false; isSuccess: true; status: "success"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; }; type UseSignOutOptions = Pick<UseQueryOptions<void>, "onSuccess" | "onError">; declare const signOut: (options?: UseSiweOptions) => Promise<void>; declare const useSignOut: ({ onSuccess, onError }?: UseSignOutOptions) => { signOut: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignOutAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: undefined; error: null; isError: false; isIdle: true; isLoading: false; isSuccess: false; status: "idle"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; } | { signOut: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignOutAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: undefined; error: null; isError: false; isIdle: false; isLoading: true; isSuccess: false; status: "loading"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; } | { signOut: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignOutAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: undefined; error: unknown; isError: true; isIdle: false; isLoading: false; isSuccess: false; status: "error"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; } | { signOut: _tanstack_react_query.UseMutateFunction<void, unknown, void, unknown>; SignOutAsync: _tanstack_react_query.UseMutateAsyncFunction<void, unknown, void, unknown>; data: void; error: null; isError: false; isIdle: false; isLoading: false; isSuccess: true; status: "success"; reset: () => void; context: unknown; failureCount: number; failureReason: unknown; isPaused: boolean; variables: void; }; declare const useOptions: () => { baseUrl: string; }; export { SiweProvider, UseSiweOptions, createMessage, getMessageBody, getSession, signOut, useOptions, useSession, useSignIn, useSignOut, verify };