better-near-auth
Version:
Sign in with NEAR (SIWN) plugin for Better Auth
85 lines • 2.68 kB
JavaScript
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