UNPKG

better-near-auth

Version:

Sign in with NEAR (SIWN) plugin for Better Auth

85 lines 2.68 kB
import { z } from "zod"; import { AccountIdSchema } from "near-kit/schemas"; export const socialImageSchema = z.object({ url: z.string().optional(), ipfs_cid: z.string().optional(), }); export const profileSchema = z.object({ name: z.string().optional(), description: z.string().optional(), image: socialImageSchema.optional(), backgroundImage: socialImageSchema.optional(), linktree: z.record(z.string(), z.string()).optional(), }); const signedMessageSchema = z.object({ accountId: z.string(), publicKey: z.string(), signature: z.string(), state: z.string().optional(), }); export const LinkAccountRequest = z.object({ signedMessage: signedMessageSchema, message: z.string(), recipient: z.string(), nonce: z.string(), accountId: AccountIdSchema, }); export const NonceRequest = z.object({ accountId: AccountIdSchema, networkId: z.union([z.literal("mainnet"), z.literal("testnet")]) }); export const VerifyRequest = z.object({ signedMessage: signedMessageSchema, message: z.string(), recipient: z.string(), nonce: z.string(), accountId: AccountIdSchema, }); export const RelayRequest = z.object({ payload: z.string(), }); export const RelayResponse = z.object({ txHash: z.string(), status: z.enum(["pending", "completed", "failed"]), }); export const RelayStatusResponse = z.object({ status: z.enum(["pending", "completed", "failed"]), gasUsed: z.string().optional(), outcome: z.unknown().optional(), }); export const ViewContractRequest = z.object({ contractId: z.string(), methodName: z.string(), args: z.record(z.string(), z.any()).optional(), }); export const NonceResponse = z.object({ nonce: z.string() }); export const VerifyResponse = z.object({ token: z.string(), success: z.literal(true), user: z.object({ id: z.string(), accountId: AccountIdSchema, network: z.union([z.literal("mainnet"), z.literal("testnet")]), }), }); export const ProfileResponse = profileSchema.nullable(); export const ViewContractResponse = z.object({ result: z.unknown() }); export const ProfileRequest = z.object({ accountId: AccountIdSchema.optional(), }); export const RelayedTransactionSchema = z.object({ id: z.string(), userId: z.string(), txHash: z.string(), senderId: z.string(), receiverId: z.string(), network: z.string(), status: z.string(), gasUsed: z.string().optional(), createdAt: z.string(), updatedAt: z.string().optional(), }); export const RelayHistoryResponse = z.object({ transactions: z.array(RelayedTransactionSchema), }); //# sourceMappingURL=types.js.map