Handle NoProof.

This commit is contained in:
Alejandro Cabeza Romero 2026-03-09 12:21:52 +00:00
parent 45365f8c97
commit 74bbcdf1fe
No known key found for this signature in database
GPG Key ID: DA3D14AE478030FD
2 changed files with 13 additions and 2 deletions

View File

@ -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

View File

@ -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,