@funkit/connect
Version:
Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.
31 lines (30 loc) • 1.32 kB
TypeScript
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;