mirror of
https://github.com/logos-blockchain/logos-blockchain-block-explorer-template.git
synced 2026-04-03 01:13:12 +00:00
Try NoProof literal for NoProof proof. Add debugging prints.
This commit is contained in:
parent
74bbcdf1fe
commit
e22cf46e4f
@ -1,5 +1,5 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Annotated, Any, Self, Union
|
||||
from typing import Annotated, Any, Literal, Self, Union
|
||||
|
||||
from pydantic import BeforeValidator, Field, RootModel
|
||||
|
||||
@ -23,6 +23,8 @@ class OperationProofSerializer(EnforceSubclassFromRandom, ABC):
|
||||
|
||||
|
||||
class NoProofSerializer(OperationProofSerializer):
|
||||
root: Literal["NoProof"]
|
||||
|
||||
def into_operation_proof(self) -> NbeSignature:
|
||||
return NoProof.model_validate({})
|
||||
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
import hashlib
|
||||
import json
|
||||
from typing import List, Self
|
||||
from typing import Any, List, Self
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic.config import ExtraValues
|
||||
|
||||
from core.models import NbeSerializer
|
||||
from models.transactions.transaction import Transaction
|
||||
@ -42,6 +43,23 @@ class SignedTransactionSerializer(NbeSerializer, FromRandom):
|
||||
)
|
||||
ledger_transaction_proof: Groth16ProofSerializer = Field(alias="ledger_tx_proof", description="Groth16 proof.")
|
||||
|
||||
@classmethod
|
||||
def model_validate_json(
|
||||
cls,
|
||||
json_data: str | bytes | bytearray,
|
||||
*,
|
||||
strict: bool | None = None,
|
||||
extra: ExtraValues | None = None,
|
||||
context: Any | None = None,
|
||||
by_alias: bool | None = None,
|
||||
by_name: bool | None = None,
|
||||
) -> Self:
|
||||
print(f"Validating JSON data for {cls.__name__} with by_alias={by_alias}, by_name={by_name}")
|
||||
print(f"JSON data: {json_data}")
|
||||
return super().model_validate_json(
|
||||
json_data, strict=strict, extra=extra, context=context, by_alias=by_alias, by_name=by_name
|
||||
)
|
||||
|
||||
def _compute_hash(self) -> bytes:
|
||||
data = self.transaction.model_dump(mode="json")
|
||||
canonical = json.dumps(data, sort_keys=True, separators=(",", ":"))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user