UNPKG

@funkit/connect

Version:

Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.

31 lines (30 loc) 1.32 kB
import React, { type ReactNode } from 'react'; export type AuthenticationStatus = 'loading' | 'unauthenticated' | 'authenticated'; export interface AuthenticationAdapter<Message> { getNonce: () => Promise<string>; createMessage: (args: { nonce: string; address: string; chainId: number; }) => Message; getMessageBody: (args: { message: Message; }) => string; verify: (args: { message: Message; signature: string; }) => Promise<boolean>; signOut: () => Promise<void>; } export interface AuthenticationConfig<Message> { adapter: AuthenticationAdapter<Message>; status: AuthenticationStatus; } export declare function createAuthenticationAdapter<Message>(adapter: AuthenticationAdapter<Message>): AuthenticationAdapter<Message>; export interface FunkitConnectAuthenticationProviderProps<Message> extends AuthenticationConfig<Message> { enabled?: boolean; children: ReactNode; } export declare function FunkitConnectAuthenticationProvider<Message = unknown>({ adapter, children, enabled, status, }: FunkitConnectAuthenticationProviderProps<Message>): React.JSX.Element; export declare function useAuthenticationAdapter(): AuthenticationAdapter<any>; export declare function useAuthenticationStatus(): AuthenticationStatus | null;