Source code for erc7730.model.calldata.v1.descriptor
"""
Data model for Ledger specific calldata descriptor, version 1 (also referred to as "generic parser" descriptor).
"""
from typing import Literal
from pydantic import Field
from erc7730.model.calldata import CalldataDescriptorBase
from erc7730.model.calldata.v1.instruction import (
CalldataDescriptorInstructionEnumValueV1,
CalldataDescriptorInstructionFieldV1,
CalldataDescriptorInstructionTransactionInfoV1,
)
[docs]
class CalldataDescriptorV1(CalldataDescriptorBase):
"""
A clear signing descriptor for a smart contract function calldata.
Also referred to as a "generic parser descriptor".
"""
version: Literal["v1"] = Field(
default="v1",
title="Descriptor type version",
description="Version of the descriptor type (not the version of this specific descriptor, the version of the "
"descriptor specification)",
)
transaction_info: CalldataDescriptorInstructionTransactionInfoV1 = Field(
title="TRANSACTION_INFO instruction descriptor",
description="Descriptor and metadata to craft a TRANSACTION_INFO APDU.",
)
enums: list[CalldataDescriptorInstructionEnumValueV1] = Field(
title="ENUM_VALUE instructions descriptors",
description="Descriptor and metadata to craft ENUM APDUs.",
)
fields: list[CalldataDescriptorInstructionFieldV1] = Field(
title="FIELD instructions descriptors",
description="Descriptor and metadata to craft FIELD APDUs.",
)