mirror of
https://github.com/logos-blockchain/logos-blockchain-block-explorer-template.git
synced 2026-08-09 23:53:12 +00:00
28 lines
888 B
Python
28 lines
888 B
Python
from random import randint
|
|
from typing import List, Self
|
|
|
|
from pydantic import Field
|
|
|
|
from core.models import NbeSerializer
|
|
from node.api.serializers.fields import BytesFromHex
|
|
from node.api.serializers.note import NoteSerializer
|
|
from utils.protocols import FromRandom
|
|
from utils.random import random_bytes
|
|
|
|
|
|
class LedgerTransactionSerializer(NbeSerializer, FromRandom):
|
|
inputs: List[BytesFromHex] = Field(description="Fr integer.")
|
|
outputs: List[NoteSerializer]
|
|
|
|
@classmethod
|
|
def from_random(cls) -> Self:
|
|
n_inputs = 0 if randint(0, 1) <= 0.5 else randint(1, 5)
|
|
n_outputs = 0 if randint(0, 1) <= 0.5 else randint(1, 5)
|
|
|
|
return cls.model_validate(
|
|
{
|
|
"inputs": [random_bytes(32).hex() for _ in range(n_inputs)],
|
|
"outputs": [NoteSerializer.from_random() for _ in range(n_outputs)],
|
|
}
|
|
)
|