From 3749b61ed48a108d561cb8ebe4c2bd415c0ded38 Mon Sep 17 00:00:00 2001 From: Tomek Marciniak Date: Sun, 27 Oct 2024 18:54:27 +0100 Subject: [PATCH] feat(providers): yet another refactor --- apps/klesia/src/schema.ts | 4 ++-- packages/accounts/src/validation.ts | 4 ++-- packages/connect/src/client.ts | 6 ++---- packages/providers/src/validation.ts | 4 ++-- packages/utils/src/types.ts | 12 ++++++------ packages/utils/src/validation.ts | 10 +++++----- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/apps/klesia/src/schema.ts b/apps/klesia/src/schema.ts index 6988aa0..d5a8a73 100644 --- a/apps/klesia/src/schema.ts +++ b/apps/klesia/src/schema.ts @@ -1,4 +1,4 @@ -import { PublicKeySchema, TransactionPayload } from "@mina-js/utils"; +import { PublicKeySchema, TransactionBodySchema } from "@mina-js/utils"; import { z } from "zod"; import { SendZkappInput } from "./zkapp"; @@ -12,7 +12,7 @@ export const SignatureSchema = z.union([ z.object({ field: z.string(), scalar: z.string() }), ]); export const SendTransactionBodySchema = z.object({ - input: TransactionPayload, + input: TransactionBodySchema, signature: SignatureSchema, }); export const SendZkAppBodySchema = z.object({ diff --git a/packages/accounts/src/validation.ts b/packages/accounts/src/validation.ts index b65d432..a5ef4dd 100644 --- a/packages/accounts/src/validation.ts +++ b/packages/accounts/src/validation.ts @@ -1,4 +1,4 @@ -import { FieldSchema, TransactionBody } from "@mina-js/utils"; +import { FieldSchema, TransactionBodySchema } from "@mina-js/utils"; import { z } from "zod"; export const SignFieldsParamsSchema = z @@ -21,6 +21,6 @@ export const CreateNullifierParamsSchema = z export const SignTransactionParamsSchema = z .object({ - transaction: TransactionBody, + transaction: TransactionBodySchema, }) .strict(); diff --git a/packages/connect/src/client.ts b/packages/connect/src/client.ts index 70193d2..f900826 100644 --- a/packages/connect/src/client.ts +++ b/packages/connect/src/client.ts @@ -7,7 +7,7 @@ import type { SignTransaction, } from "@mina-js/accounts"; import { createClient } from "@mina-js/klesia-sdk"; -import type { PartiallyFormedTransactionProperties } from "@mina-js/utils"; +import type { PartialTransaction } from "@mina-js/utils"; import { match } from "ts-pattern"; import { createStore } from "./store"; @@ -117,9 +117,7 @@ export const createWalletClient = ({ if (account.type !== "local") throw new Error("Account type not supported"); return account.createNullifier(params); }; - const prepareTransactionRequest = async ( - transaction: PartiallyFormedTransactionProperties, - ) => { + const prepareTransactionRequest = async (transaction: PartialTransaction) => { let fee = transaction.fee; let nonce = transaction.nonce; if (!nonce) { diff --git a/packages/providers/src/validation.ts b/packages/providers/src/validation.ts index 6ed5e24..d2f06bf 100644 --- a/packages/providers/src/validation.ts +++ b/packages/providers/src/validation.ts @@ -7,7 +7,7 @@ import { SignedFieldsSchema, SignedMessageSchema, SignedTransactionSchema, - TransactionPayload, + TransactionPayloadSchema, TransactionReceiptSchema, } from "@mina-js/utils"; import { z } from "zod"; @@ -57,7 +57,7 @@ export const SignFieldsRequestParamsSchema = RequestWithContext.extend({ }).strict(); export const SignTransactionRequestParamsSchema = RequestWithContext.extend({ method: z.literal("mina_signTransaction"), - params: z.array(z.union([TransactionPayload, ZkAppCommandPayload])), + params: z.array(z.union([TransactionPayloadSchema, ZkAppCommandPayload])), }).strict(); export const SendTransactionRequestParamsSchema = RequestWithContext.extend({ method: z.literal("mina_sendTransaction"), diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index 24ed243..fdd870f 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -2,13 +2,14 @@ import type { z } from "zod"; import type { LiteralSchema, NullifierSchema, - PartiallyFormedTransactionPayload, + PartialTransactionSchema, PrivateKeySchema, PublicKeySchema, SignedFieldsSchema, SignedMessageSchema, SignedTransactionSchema, - TransactionPayload, + TransactionBodySchema, + TransactionPayloadSchema, TransactionReceiptSchema, ZkAppCommandPayload, } from "./validation"; @@ -20,10 +21,9 @@ export type Literal = z.infer; export type Json = Literal | { [key: string]: Json } | Json[]; export type PublicKey = z.infer; export type PrivateKey = z.infer; -export type TransactionProperties = z.infer; -export type PartiallyFormedTransactionProperties = z.infer< - typeof PartiallyFormedTransactionPayload ->; +export type TransactionBody = z.infer; +export type TransactionPayload = z.infer; +export type PartialTransaction = z.infer; export type ZkAppCommandProperties = z.infer; /** diff --git a/packages/utils/src/validation.ts b/packages/utils/src/validation.ts index acea7a7..eb49025 100644 --- a/packages/utils/src/validation.ts +++ b/packages/utils/src/validation.ts @@ -37,7 +37,7 @@ export const FeePayerSchema = z }) .strict(); -export const TransactionBody = z +export const TransactionBodySchema = z .object({ from: PublicKeySchema, to: PublicKeySchema, @@ -49,13 +49,13 @@ export const TransactionBody = z }) .strict(); -export const TransactionPayload = z +export const TransactionPayloadSchema = z .object({ - transaction: TransactionBody, + transaction: TransactionBodySchema, }) .strict(); -export const PartiallyFormedTransactionPayload = TransactionPayload.extend({ +export const PartialTransactionSchema = TransactionPayloadSchema.extend({ fee: z.coerce.string().optional(), nonce: z.coerce.string().optional(), }); @@ -112,7 +112,7 @@ export const SignedTransactionSchema = z .object({ signature: SignatureSchema, publicKey: PublicKeySchema, - data: TransactionBody, + data: TransactionBodySchema, }) .strict();