From 9bbee409d581f349c6e8d0d82cb1ee2aea4ad097 Mon Sep 17 00:00:00 2001 From: Marton Moro Date: Mon, 9 Dec 2024 17:18:40 +0100 Subject: [PATCH] feat: use schemas from mina-credentials --- apps/docs/src/components/sample-data.ts | 517 +++++++++++---------- bun.lockb | Bin 339816 -> 343856 bytes packages/providers/package.json | 3 + packages/providers/src/validation.ts | 13 +- packages/utils/src/types.ts | 4 - packages/utils/src/validation.ts | 579 ------------------------ 6 files changed, 285 insertions(+), 831 deletions(-) diff --git a/apps/docs/src/components/sample-data.ts b/apps/docs/src/components/sample-data.ts index 760eeb0..1a960ec 100644 --- a/apps/docs/src/components/sample-data.ts +++ b/apps/docs/src/components/sample-data.ts @@ -392,107 +392,114 @@ export const sampleCredentialRecursive = { }; export const samplePresentationRequestZkApp = { - type: "zk-app", - spec: { - inputs: { - data: { - type: "credential", - credentialType: "simple", - witness: { - type: { type: "Constant", value: "simple" }, - issuer: { _type: "PublicKey" }, - issuerSignature: { _type: "Signature" }, - }, + presentationRequest: { + type: "zk-app", + spec: { + inputs: { data: { - person: { - age: { _type: "Field" }, - name: { _type: "Bytes", size: 32 }, + type: "credential", + credentialType: "simple", + witness: { + type: { type: "Constant", value: "simple" }, + issuer: { _type: "PublicKey" }, + issuerSignature: { _type: "Signature" }, + }, + data: { + person: { + age: { _type: "Field" }, + name: { _type: "Bytes", size: 32 }, + }, + points: { _type: "Field" }, }, - points: { _type: "Field" }, }, - }, - targetAge: { type: "claim", data: { _type: "Field" } }, - targetPoints: { type: "claim", data: { _type: "Field" } }, - }, - logic: { - assert: { - type: "and", - inputs: [ - { - type: "equals", - left: { - type: "property", - key: "age", - inner: { + targetAge: { type: "claim", data: { _type: "Field" } }, + targetPoints: { type: "claim", data: { _type: "Field" } }, + }, + logic: { + assert: { + type: "and", + inputs: [ + { + type: "equals", + left: { type: "property", - key: "person", + key: "age", inner: { type: "property", - key: "data", + key: "person", inner: { type: "property", key: "data", - inner: { type: "root" }, + inner: { + type: "property", + key: "data", + inner: { type: "root" }, + }, }, }, }, + right: { + type: "property", + key: "targetAge", + inner: { type: "root" }, + }, }, - right: { - type: "property", - key: "targetAge", - inner: { type: "root" }, - }, - }, - { - type: "equals", - left: { - type: "property", - key: "points", - inner: { + { + type: "equals", + left: { type: "property", - key: "data", + key: "points", inner: { type: "property", key: "data", - inner: { type: "root" }, + inner: { + type: "property", + key: "data", + inner: { type: "root" }, + }, }, }, + right: { + type: "property", + key: "targetPoints", + inner: { type: "root" }, + }, }, - right: { - type: "property", - key: "targetPoints", - inner: { type: "root" }, - }, - }, - ], - }, - outputClaim: { - type: "property", - key: "name", - inner: { + ], + }, + outputClaim: { type: "property", - key: "person", + key: "name", inner: { type: "property", - key: "data", - inner: { type: "property", key: "data", inner: { type: "root" } }, + key: "person", + inner: { + type: "property", + key: "data", + inner: { type: "property", key: "data", inner: { type: "root" } }, + }, }, }, }, }, - }, - claims: { - targetAge: { _type: "Field", value: "25" }, - targetPoints: { _type: "Field", value: "100" }, - }, - inputContext: { - type: "zk-app", - serverNonce: { - _type: "Field", - value: - "13282950667393837968514931367603124110006503770513488711847457500412027340795", + claims: { + targetAge: { _type: "Field", value: "25" }, + targetPoints: { _type: "Field", value: "100" }, + }, + inputContext: { + type: "zk-app", + serverNonce: { + _type: "Field", + value: + "13282950667393837968514931367603124110006503770513488711847457500412027340795", + }, + action: { _type: "Field", value: "123" }, }, - action: { _type: "Field", value: "123" }, + }, + zkAppAccount: { + address: "B62qiV4KJMMfAuUCs1b8T3RMRJrLk3paXcEPkLz9jbga1zKP782NmBA", + tokenId: "1", + network: "mainnet", }, }; @@ -728,204 +735,226 @@ export const samplePresentationRequestHttpsRecrusiveNoContext = { }; export const samplePresentationRequestHttpsFromExample = { - type: "https", - spec: { - inputs: { - credential: { - type: "credential", - credentialType: "simple", - witness: { - type: { type: "Constant", value: "simple" }, - issuer: { _type: "PublicKey" }, - issuerSignature: { _type: "Signature" }, - }, - data: { - _type: "DynamicRecord", - maxEntries: 20, - knownShape: { - nationality: { - _type: "DynamicString", - maxLength: 50, - _isFactory: true, + presentationRequest: { + type: "https", + spec: { + inputs: { + credential: { + type: "credential", + credentialType: "simple", + witness: { + type: { type: "Constant", value: "simple" }, + issuer: { _type: "PublicKey" }, + issuerSignature: { _type: "Signature" }, + }, + data: { + _type: "DynamicRecord", + maxEntries: 20, + knownShape: { + nationality: { + _type: "DynamicString", + maxLength: 50, + _isFactory: true, + }, + expiresAt: { _type: "UInt64" }, + id: { _type: "Bytes", size: 16 }, }, - expiresAt: { _type: "UInt64" }, - id: { _type: "Bytes", size: 16 }, + _isFactory: true, }, - _isFactory: true, }, - }, - acceptedNations: { - type: "claim", - data: { - _type: "DynamicArray", - maxLength: 100, - innerType: { _type: "Field" }, - _isFactory: true, + signedData: { + type: "credential", + credentialType: "simple", + witness: { + type: { type: "Constant", value: "simple" }, + issuer: { _type: "PublicKey" }, + issuerSignature: { _type: "Signature" }, + }, + data: { age: { _type: "Field" }, name: { _type: "Bytes", size: 32 } }, }, - }, - acceptedIssuers: { - type: "claim", - data: { - _type: "DynamicArray", - maxLength: 100, - innerType: { _type: "Field" }, - _isFactory: true, + signedData1: { + type: "credential", + credentialType: "simple", + witness: { + type: { type: "Constant", value: "simple" }, + issuer: { _type: "PublicKey" }, + issuerSignature: { _type: "Signature" }, + }, + data: { age: { _type: "Field" }, name: { _type: "Bytes", size: 32 } }, + }, + acceptedNations: { + type: "claim", + data: { + _type: "DynamicArray", + maxLength: 100, + innerType: { _type: "Field" }, + _isFactory: true, + }, + }, + acceptedIssuers: { + type: "claim", + data: { + _type: "DynamicArray", + maxLength: 100, + innerType: { _type: "Field" }, + _isFactory: true, + }, + }, + currentDate: { type: "claim", data: { _type: "UInt64" } }, + appId: { + type: "claim", + data: { _type: "DynamicString", maxLength: 50, _isFactory: true }, }, }, - currentDate: { type: "claim", data: { _type: "UInt64" } }, - appId: { - type: "claim", - data: { _type: "DynamicString", maxLength: 50, _isFactory: true }, - }, - }, - logic: { - assert: { - type: "and", - inputs: [ - { - type: "equalsOneOf", - input: { + logic: { + assert: { + type: "and", + inputs: [ + { + type: "equalsOneOf", + input: { + type: "hash", + inputs: [ + { + type: "property", + key: "nationality", + inner: { + type: "property", + key: "data", + inner: { + type: "property", + key: "credential", + inner: { type: "root" }, + }, + }, + }, + ], + prefix: null, + }, + options: { + type: "property", + key: "acceptedNations", + inner: { type: "root" }, + }, + }, + { + type: "equalsOneOf", + input: { type: "issuer", credentialKey: "credential" }, + options: { + type: "property", + key: "acceptedIssuers", + inner: { type: "root" }, + }, + }, + { + type: "lessThanEq", + left: { + type: "property", + key: "currentDate", + inner: { type: "root" }, + }, + right: { + type: "property", + key: "expiresAt", + inner: { + type: "property", + key: "data", + inner: { + type: "property", + key: "credential", + inner: { type: "root" }, + }, + }, + }, + }, + ], + }, + outputClaim: { + type: "record", + data: { + nullifier: { type: "hash", inputs: [ { type: "property", - key: "nationality", + key: "data", inner: { type: "property", - key: "data", - inner: { - type: "property", - key: "credential", - inner: { type: "root" }, - }, + key: "credential", + inner: { type: "root" }, }, }, + { type: "property", key: "appId", inner: { type: "root" } }, ], prefix: null, }, - options: { - type: "property", - key: "acceptedNations", - inner: { type: "root" }, - }, }, + }, + }, + }, + claims: { + acceptedNations: { + _type: "DynamicArray", + maxLength: 100, + innerType: { _type: "Field" }, + value: [ { - type: "equalsOneOf", - input: { type: "issuer", credentialKey: "credential" }, - options: { - type: "property", - key: "acceptedIssuers", - inner: { type: "root" }, - }, + _type: "Field", + value: + "1535750191209038276491867256345743424918048468505871420482779334664484555622", }, { - type: "lessThanEq", - left: { - type: "property", - key: "currentDate", - inner: { type: "root" }, - }, - right: { - type: "property", - key: "expiresAt", - inner: { - type: "property", - key: "data", - inner: { - type: "property", - key: "credential", - inner: { type: "root" }, - }, - }, - }, + _type: "Field", + value: + "22047996538609280301110666364818369992447508174403408199422649676981322383447", + }, + { + _type: "Field", + value: + "24056497251096418057564183210090983888753346776669738257197194846336719337693", }, ], + _isFactory: true, }, - outputClaim: { - type: "record", - data: { - nullifier: { - type: "hash", - inputs: [ - { - type: "property", - key: "data", - inner: { - type: "property", - key: "credential", - inner: { type: "root" }, - }, - }, - { type: "property", key: "appId", inner: { type: "root" } }, - ], - prefix: null, + acceptedIssuers: { + _type: "DynamicArray", + maxLength: 100, + innerType: { _type: "Field" }, + value: [ + { + _type: "Field", + value: + "22082189595001837884155357954513940807511340516883967417732126879116249560446", }, - }, + { + _type: "Field", + value: + "14379306716720988239391174911726766627815364252811450729810497452764493702952", + }, + { + _type: "Field", + value: + "13289235255715902058177069443910799078901994677003173861989269088691152237602", + }, + ], + _isFactory: true, + }, + currentDate: { _type: "UInt64", value: "1732881510253" }, + appId: { + _type: "DynamicString", + maxLength: 50, + value: "my-app-id:123", + _isFactory: true, }, }, - }, - claims: { - acceptedNations: { - _type: "DynamicArray", - maxLength: 100, - innerType: { _type: "Field" }, - value: [ - { - _type: "Field", - value: - "1535750191209038276491867256345743424918048468505871420482779334664484555622", - }, - { - _type: "Field", - value: - "22047996538609280301110666364818369992447508174403408199422649676981322383447", - }, - { - _type: "Field", - value: - "24056497251096418057564183210090983888753346776669738257197194846336719337693", - }, - ], - _isFactory: true, - }, - acceptedIssuers: { - _type: "DynamicArray", - maxLength: 100, - innerType: { _type: "Field" }, - value: [ - { - _type: "Field", - value: - "22082189595001837884155357954513940807511340516883967417732126879116249560446", - }, - { - _type: "Field", - value: - "14379306716720988239391174911726766627815364252811450729810497452764493702952", - }, - { - _type: "Field", - value: - "13289235255715902058177069443910799078901994677003173861989269088691152237602", - }, - ], - _isFactory: true, - }, - currentDate: { _type: "UInt64", value: "1732881510253" }, - appId: { - _type: "DynamicString", - maxLength: 50, - value: "my-app-id:123", - _isFactory: true, - }, - }, - inputContext: { - type: "https", - serverNonce: { - _type: "Field", - value: - "19727979349943398352101580661888473094612414811013987113443744841719874732783", + inputContext: { + type: "https", + serverNonce: { + _type: "Field", + value: + "19727979349943398352101580661888473094612414811013987113443744841719874732783", + }, + action: "my-app-id:123:authenticate", }, - action: "my-app-id:123:authenticate", }, }; diff --git a/bun.lockb b/bun.lockb index 1a6e5caba55b2ee5ac8f49cc71618a76babffd4f..02fe985e58b6f34bc7957fa6be27f7fdfe268583 100755 GIT binary patch delta 99783 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

aI8Mt-J+P8a^*Ox!_%m= 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 delta 94921 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 diff --git a/packages/providers/package.json b/packages/providers/package.json index e5c9f36..a738b97 100644 --- a/packages/providers/package.json +++ b/packages/providers/package.json @@ -16,6 +16,9 @@ "test": "bun test", "cleanup": "rimraf dist .turbo" }, + "dependencies": { + "mina-credentials": "0.2.5" + }, "devDependencies": { "@mina-js/utils": "workspace:*" }, diff --git a/packages/providers/src/validation.ts b/packages/providers/src/validation.ts index 49cb748..d17aa78 100644 --- a/packages/providers/src/validation.ts +++ b/packages/providers/src/validation.ts @@ -4,12 +4,10 @@ import { JsonSchema, NetworkId, NullifierSchema, - PresentationRequestSchema, PublicKeySchema, SignedFieldsSchema, SignedMessageSchema, SignedTransactionSchema, - StoredCredentialSchema, TransactionPayloadSchema, TransactionReceiptSchema, TypedSendableSchema, @@ -18,6 +16,11 @@ import { } from "@mina-js/utils"; import { z } from "zod"; +import { + PresentationRequestSchema, + StoredCredentialSchema, +} from "mina-credentials"; + export const SwitchChainRequestParams = z .object({ networkId: z.string(), @@ -97,14 +100,16 @@ export const GetStateRequestParamsSchema = RequestWithContext.extend({ export const StorePrivateCredentialRequestParamsSchema = RequestWithContext.extend({ method: z.literal("mina_storePrivateCredential"), - params: z.array(StoredCredentialSchema), + // biome-ignore lint/suspicious/noExplicitAny: nested types from mina-credentials + params: z.array(StoredCredentialSchema as z.ZodType), }).strict(); export const PresentationRequestParamsSchema = RequestWithContext.extend({ method: z.literal("mina_requestPresentation"), params: z.array( z .object({ - presentationRequest: PresentationRequestSchema, + // biome-ignore lint/suspicious/noExplicitAny: nested types from mina-credentials + presentationRequest: PresentationRequestSchema as z.ZodType, zkAppAccount: zkAppAccountSchema.optional(), }) .strict(), diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index 525626f..a6d537a 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -6,14 +6,12 @@ import type { LiteralSchema, NullifierSchema, PartialTransactionSchema, - PresentationRequestSchema, PrivateKeySchema, PublicKeySchema, SendableSchema, SignedFieldsSchema, SignedMessageSchema, SignedTransactionSchema, - StoredCredentialSchema, TransactionBodySchema, TransactionOrZkAppCommandSchema, TransactionPayloadSchema, @@ -58,5 +56,3 @@ export type KlesiaRpcResponseType = z.infer; /** * Private Credential types */ -export type StoredPrivateCredential = z.infer; -export type PresentationRequest = z.infer; diff --git a/packages/utils/src/validation.ts b/packages/utils/src/validation.ts index 2c661fd..b4ebf88 100644 --- a/packages/utils/src/validation.ts +++ b/packages/utils/src/validation.ts @@ -254,587 +254,8 @@ export const KlesiaRpcResponseSchema = z.union([ ErrorSchema, ]); -// TODO: Should probably move these validations to a separate file - -interface SerializedValue { - _type: string; - value: Json; - properties?: Record; -} - -interface ProofType { - name: string; - publicInput: SerializedType; - publicOutput: SerializedType; - maxProofsVerified: number; - featureFlags: Record; -} - -interface DynamicString { - _type: "DynamicString"; - _isFactory: true; - maxLength: number; - value?: string; -} - -interface DynamicArray { - _type: "DynamicArray"; - _isFactory: true; - maxLength: number; - innerType: SerializedType; - value?: SerializedValue[]; -} - -interface DynamicRecord { - _type: "DynamicRecord"; - _isFactory: true; - maxEntries: number; - knownShape: Record; - value?: Record; -} - -interface DynamicBytes { - _type: "DynamicBytes"; - _isFactory: true; - maxLength: number; - value?: string; // hex string -} - -interface BasicType { - _type: string; -} - -// TODO: type? -interface ConstantType { - type: "Constant"; - value: string; -} - -interface BytesType { - _type: "Bytes"; - size: number; -} - -interface ProofTypeWrapper { - _type: "Proof"; - proof: ProofType; -} - -interface ArrayType { - _type: "Array"; - innerType: SerializedType; - size: number; -} - -interface StructType { - _type: "Struct"; - properties: { [key: string]: SerializedType }; -} - -export type SerializedType = - | BasicType - | ConstantType - | BytesType - | ProofTypeWrapper - | ArrayType - | StructType - | DynamicString - | DynamicArray - | DynamicRecord - | DynamicBytes - | { [key: string]: SerializedType }; - -// Private Credentials: Serialized Type and Value Schemas - -const SerializedValueSchema = z - .object({ - _type: z.string(), - value: JsonSchema, - properties: z.record(z.any()).optional(), - }) - .strict(); - -const SerializedDataValueSchema = z.union([ - SerializedValueSchema, - z.string(), - z.number(), - z.boolean(), -]); - -// Dynamic type schemas -const DynamicTypeBaseSchema = z.object({ - _type: z.string(), - _isFactory: z.literal(true), -}); - -const DynamicStringSchema = DynamicTypeBaseSchema.extend({ - _type: z.literal("DynamicString"), - maxLength: z.number(), - value: z.string().optional(), -}).strict(); - -const DynamicArraySchema = DynamicTypeBaseSchema.extend({ - _type: z.literal("DynamicArray"), - maxLength: z.number(), - innerType: z.lazy(() => SerializedTypeSchema), - value: z.array(SerializedValueSchema).optional(), -}).strict(); - -const DynamicRecordSchema = DynamicTypeBaseSchema.extend({ - _type: z.literal("DynamicRecord"), - maxEntries: z.number(), - knownShape: z.record(z.lazy(() => SerializedTypeSchema)), - value: z.record(SerializedValueSchema).optional(), -}).strict(); - -const DynamicBytesSchema = DynamicTypeBaseSchema.extend({ - _type: z.literal("DynamicBytes"), - maxLength: z.number(), - value: z.string().optional(), // hex string -}).strict(); - -const ProofTypeSchema: z.ZodType = z.lazy(() => - z - .object({ - name: z.string(), - publicInput: SerializedTypeSchema, - publicOutput: SerializedTypeSchema, - maxProofsVerified: z.number(), - featureFlags: z.record(z.any()), - }) - .strict(), -); - -const SerializedTypeSchema: z.ZodType = z.lazy(() => - z.union([ - // Basic type - z - .object({ - _type: z.string(), - }) - .strict(), - // Constant type - z - .object({ - type: z.literal("Constant"), - value: z.string(), - }) - .strict(), - // Bytes type - z - .object({ - _type: z.literal("Bytes"), - size: z.number(), - }) - .strict(), - // Proof type - z - .object({ - _type: z.literal("Proof"), - proof: ProofTypeSchema, - }) - .strict(), - // Array type - z - .object({ - _type: z.literal("Array"), - innerType: SerializedTypeSchema, - size: z.number(), - }) - .strict(), - // Struct type - z - .object({ - _type: z.literal("Struct"), - properties: z.record(SerializedTypeSchema), - }) - .strict(), - // Dynamic types - DynamicStringSchema, - DynamicArraySchema, - DynamicRecordSchema, - DynamicBytesSchema, - // Allow records of nested types for Struct - z.record(SerializedTypeSchema), - ]), -); - -const SerializedFieldSchema = z - .object({ - _type: z.literal("Field"), - value: z.string(), - }) - .strict(); - -const SerializedPublicKeySchema = z - .object({ - _type: z.literal("PublicKey"), - value: z.string(), - }) - .strict(); - -const SerializedPublicKeyTypeSchema = z - .object({ - _type: z.literal("PublicKey"), - }) - .strict(); - -const SerializedSignatureSchema = z - .object({ - _type: z.literal("Signature"), - value: z.object({ - r: z.string(), - s: z.string(), - }), - }) - .strict(); - -// Private Credentials: Node schemas - -export type Node = - | { type: "owner" } - | { type: "issuer"; credentialKey: string } - | { type: "constant"; data: z.infer } - | { type: "root" } - | { type: "property"; key: string; inner: Node } - | { type: "record"; data: Record } - | { type: "equals"; left: Node; right: Node } - | { type: "equalsOneOf"; input: Node; options: Node[] | Node } - | { type: "lessThan"; left: Node; right: Node } - | { type: "lessThanEq"; left: Node; right: Node } - | { type: "add"; left: Node; right: Node } - | { type: "sub"; left: Node; right: Node } - | { type: "mul"; left: Node; right: Node } - | { type: "div"; left: Node; right: Node } - | { type: "and"; inputs: Node[] } - | { type: "or"; left: Node; right: Node } - | { type: "not"; inner: Node } - | { type: "hash"; inputs: Node[]; prefix?: string | null } - | { type: "ifThenElse"; condition: Node; thenNode: Node; elseNode: Node }; - -const NodeSchema: z.ZodType = z.lazy(() => - z.discriminatedUnion("type", [ - z - .object({ - type: z.literal("owner"), - }) - .strict(), - - z - .object({ - type: z.literal("issuer"), - credentialKey: z.string(), - }) - .strict(), - - z - .object({ - type: z.literal("constant"), - data: SerializedValueSchema, - }) - .strict(), - - z - .object({ - type: z.literal("root"), - }) - .strict(), - - z - .object({ - type: z.literal("property"), - key: z.string(), - inner: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("record"), - data: z.record(NodeSchema), - }) - .strict(), - - z - .object({ - type: z.literal("equals"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("equalsOneOf"), - input: NodeSchema, - options: z.union([ - z.array(NodeSchema), // For array of nodes case - NodeSchema, - ]), - }) - .strict(), - - z - .object({ - type: z.literal("lessThan"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("lessThanEq"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("add"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("sub"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("mul"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("div"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("and"), - inputs: z.array(NodeSchema), - }) - .strict(), - - z - .object({ - type: z.literal("or"), - left: NodeSchema, - right: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("not"), - inner: NodeSchema, - }) - .strict(), - - z - .object({ - type: z.literal("hash"), - inputs: z.array(NodeSchema), - prefix: z.union([z.string(), z.null()]).optional(), - }) - .strict(), - - z - .object({ - type: z.literal("ifThenElse"), - condition: NodeSchema, - thenNode: NodeSchema, - elseNode: NodeSchema, - }) - .strict(), - ]), -); - -// Private Credentials: Input Schema - -const InputSchema = z.discriminatedUnion("type", [ - z - .object({ - type: z.literal("credential"), - credentialType: z.union([ - z.literal("simple"), - z.literal("unsigned"), - z.literal("recursive"), - ]), - witness: z.union([z.record(SerializedTypeSchema), SerializedTypeSchema]), - data: z.union([z.record(SerializedTypeSchema), SerializedTypeSchema]), - }) - .strict(), - - z - .object({ - type: z.literal("constant"), - data: SerializedTypeSchema, - value: z.union([z.string(), z.record(z.string())]), - }) - .strict(), - - z - .object({ - type: z.literal("claim"), - data: z.union([z.record(SerializedTypeSchema), SerializedTypeSchema]), - }) - .strict(), -]); - -// Private Credentials: Context schemas - -const HttpsContextSchema = z - .object({ - type: z.literal("https"), - action: z.string(), - serverNonce: SerializedFieldSchema, - }) - .strict(); - -const ZkAppContextSchema = z - .object({ - type: z.literal("zk-app"), - action: SerializedFieldSchema, - serverNonce: SerializedFieldSchema, - }) - .strict(); - -const ContextSchema = z.union([HttpsContextSchema, ZkAppContextSchema]); - -// Private Credentials: PresentationRequestSchema - -export const PresentationRequestSchema = z - .object({ - type: z.union([ - z.literal("no-context"), - z.literal("zk-app"), - z.literal("https"), - ]), - spec: z - .object({ - inputs: z.record(InputSchema), - logic: z - .object({ - assert: NodeSchema, - outputClaim: NodeSchema, - }) - .strict(), - }) - .strict(), - claims: z.record( - z.union([ - SerializedValueSchema, - DynamicStringSchema, - DynamicArraySchema, - DynamicRecordSchema, - DynamicBytesSchema, - ]), - ), - inputContext: z.union([ContextSchema, z.null()]), - }) - .strict(); - export const zkAppAccountSchema = z.object({ address: PublicKeySchema, tokenId: z.string(), network: MinaScanNetwork, }); - -// Private Credentials: Witness Schemas - -const SimpleWitnessSchema = z - .object({ - type: z.literal("simple"), - issuer: SerializedPublicKeySchema, - issuerSignature: SerializedSignatureSchema, - }) - .strict(); - -const RecursiveWitnessSchema = z - .object({ - type: z.literal("recursive"), - vk: z - .object({ - data: z.string(), - hash: SerializedFieldSchema, - }) - .strict(), - proof: z - .object({ - _type: z.literal("Proof"), - value: z - .object({ - publicInput: JsonSchema, - publicOutput: JsonSchema, - maxProofsVerified: z.number().min(0).max(2), - proof: z.string(), - }) - .strict(), - }) - .strict(), - }) - .strict(); - -const UnsignedWitnessSchema = z - .object({ - type: z.literal("unsigned"), - }) - .strict(); - -const WitnessSchema = z.discriminatedUnion("type", [ - SimpleWitnessSchema, - RecursiveWitnessSchema, - UnsignedWitnessSchema, -]); - -// Private Credentials: Credential Schemas - -const SimpleCredentialSchema = z - .object({ - owner: SerializedPublicKeySchema, - data: z.record(SerializedDataValueSchema), - }) - .strict(); - -const StructCredentialSchema = z - .object({ - _type: z.literal("Struct"), - properties: z - .object({ - owner: SerializedPublicKeyTypeSchema, - data: JsonSchema, - }) - .strict(), - value: z - .object({ - owner: PublicKeySchema, - data: JsonSchema, - }) - .strict(), - }) - .strict(); - -// Private Credentials: Stored Credential Schema - -export const StoredCredentialSchema = z - .object({ - version: z.literal("v0"), - witness: WitnessSchema, - metadata: JsonSchema.optional(), - credential: z.union([SimpleCredentialSchema, StructCredentialSchema]), - }) - .strict();