From 74bbcdf1fed6aab17f5bd718ccc4c0ffba852e84 Mon Sep 17 00:00:00 2001 From: Alejandro Cabeza Romero Date: Mon, 9 Mar 2026 12:21:52 +0000 Subject: [PATCH] Handle NoProof. --- src/models/transactions/operations/proofs.py | 6 +++++- src/node/api/serializers/proof.py | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/models/transactions/operations/proofs.py b/src/models/transactions/operations/proofs.py index a27b145..7f44d53 100644 --- a/src/models/transactions/operations/proofs.py +++ b/src/models/transactions/operations/proofs.py @@ -15,6 +15,10 @@ class NbeSignature(NbeSchema): type: str +class NoProof(NbeSignature): + type: Literal["NoProof"] = "NoProof" + + class Ed25519Signature(NbeSignature): type: Literal["Ed25519"] = "Ed25519" signature: HexBytes @@ -31,4 +35,4 @@ class ZkAndEd25519Signature(NbeSignature): ed25519_signature: HexBytes -OperationProof = Ed25519Signature | ZkSignature | ZkAndEd25519Signature +OperationProof = NoProof | Ed25519Signature | ZkSignature | ZkAndEd25519Signature diff --git a/src/node/api/serializers/proof.py b/src/node/api/serializers/proof.py index c2e2df0..60e4bef 100644 --- a/src/node/api/serializers/proof.py +++ b/src/node/api/serializers/proof.py @@ -7,6 +7,7 @@ from core.models import NbeSerializer from models.transactions.operations.proofs import ( Ed25519Signature, NbeSignature, + NoProof, ZkAndEd25519Signature, ZkSignature, ) @@ -21,6 +22,11 @@ class OperationProofSerializer(EnforceSubclassFromRandom, ABC): raise NotImplementedError +class NoProofSerializer(OperationProofSerializer): + def into_operation_proof(self) -> NbeSignature: + return NoProof.model_validate({}) + + class Ed25519SignatureSerializer(OperationProofSerializer, RootModel[bytes]): root: BytesFromIntArray @@ -74,6 +80,7 @@ class ZkAndEd25519SignaturesSerializer(OperationProofSerializer, NbeSerializer): PROOF_TAG_TO_SERIALIZER = { + "NoProof": NoProofSerializer, "Ed25519Sig": Ed25519SignatureSerializer, "ZkSig": ZkSignatureSerializer, "ZkAndEd25519Sigs": ZkAndEd25519SignaturesSerializer, @@ -91,7 +98,7 @@ def _parse_proof(data: Any) -> OperationProofSerializer: OperationProofSerializerVariants = Union[ - Ed25519SignatureSerializer, ZkSignatureSerializer, ZkAndEd25519SignaturesSerializer + NoProof, Ed25519SignatureSerializer, ZkSignatureSerializer, ZkAndEd25519SignaturesSerializer ] OperationProofSerializerField = Annotated[ OperationProofSerializerVariants,