UNPKG

better-near-auth

Version:

Sign in with NEAR (SIWN) plugin for Better Auth

85 lines 4.47 kB
import { TransactionBuilder } from "near-kit"; import type { Near as NearType } from "near-kit"; import type { BetterFetch, BetterFetchResponse, ClientStore } from "better-auth/client"; import { type AccountId, type DualNetworkConfig, type NonceRequestT, type NonceResponseT, type ProfileResponseT, type VerifyRequestT, type VerifyResponseT, type RelayResponseT, type RelayStatusResponseT, type ListAccountsResponseT, type SetPrimaryAccountRequestT, type SetPrimaryAccountResponseT, type ViewContractRequestT, type ViewContractResponseT, type RelayerInfo, type RelayHistoryResponseT, type GetRelayerInfoRequestT, type CreateSubAccountRequestT, type CreateSubAccountResponseT, type CheckSubAccountAvailabilityRequestT, type CheckSubAccountAvailabilityResponseT } from "./types.js"; export interface AuthCallbacks { onSuccess?: () => void; onError?: (error: Error & { status?: number; code?: string; }) => void; } export interface SIWNClientConfig { recipient?: string; recipients?: DualNetworkConfig<string>; networkId?: "mainnet" | "testnet"; cspNonce?: string; } export interface SIWNClientActions { near: { nonce: (params: NonceRequestT) => Promise<BetterFetchResponse<NonceResponseT>>; verify: (params: VerifyRequestT) => Promise<BetterFetchResponse<VerifyResponseT>>; getProfile: (accountId?: AccountId) => Promise<BetterFetchResponse<ProfileResponseT>>; view: (params: ViewContractRequestT) => Promise<BetterFetchResponse<ViewContractResponseT>>; getAccountId: () => string | null; getState: () => { accountId: string | null; publicKey: string | null; networkId: string; } | null; isWalletConnected: () => boolean; detectNearAccount: () => Promise<{ accountId: string; publicKey: string | null; networkId: string; } | null>; ensureConnected: () => Promise<boolean>; disconnect: () => Promise<void>; link: (callbacks?: AuthCallbacks) => Promise<void>; unlink: (params: { accountId: string; network?: "mainnet" | "testnet"; }) => Promise<BetterFetchResponse<{ success: boolean; message: string; }>>; listAccounts: () => Promise<BetterFetchResponse<ListAccountsResponseT>>; setPrimaryAccount: (params: SetPrimaryAccountRequestT) => Promise<BetterFetchResponse<SetPrimaryAccountResponseT>>; buildSignedDelegateAction: (receiverId: string, buildActions: (builder: TransactionBuilder, receiverId: string) => TransactionBuilder) => Promise<string>; relayTransaction: (params: { payload: string; }) => Promise<BetterFetchResponse<RelayResponseT>>; getRelayStatus: (txHash: string) => Promise<BetterFetchResponse<RelayStatusResponseT>>; getRelayerInfo: (params?: GetRelayerInfoRequestT) => Promise<BetterFetchResponse<RelayerInfo & { enabled: boolean; }>>; relayHistory: () => Promise<BetterFetchResponse<RelayHistoryResponseT>>; createSubAccount: (params: CreateSubAccountRequestT) => Promise<BetterFetchResponse<CreateSubAccountResponseT>>; checkSubAccountAvailability: (params: CheckSubAccountAvailabilityRequestT) => Promise<BetterFetchResponse<CheckSubAccountAvailabilityResponseT>>; setNetwork: (network: "mainnet" | "testnet") => void; getNetwork: () => "mainnet" | "testnet"; getSupportedNetworks: () => ("mainnet" | "testnet")[]; getRecipient: (network?: "mainnet" | "testnet") => string; getNearClient: () => NearType; }; signIn: { near: (callbacks?: AuthCallbacks) => Promise<void>; }; } type NearState = { accountId: string | null; publicKey: string | null; networkId: string; } | null; export declare const siwnClient: (config: SIWNClientConfig) => { id: "siwn"; $InferServerPlugin: {}; getAtoms: (_$fetch: BetterFetch) => { nearState: import("nanostores").PreinitializedWritableAtom<NearState> & object; walletConnected: import("nanostores").PreinitializedWritableAtom<boolean> & object; activeNetwork: import("nanostores").PreinitializedWritableAtom<"mainnet" | "testnet"> & object; }; getActions: ($fetch: BetterFetch, $store: ClientStore, _options: unknown) => SIWNClientActions; }; export {}; //# sourceMappingURL=client.d.ts.map