erc7730.model.calldata.v1.param module
Data model for calldata descriptor field parameters.
These model classes represent the exact same data fields that are serialized into TLV structs. See documentation in https://github.com/LedgerHQ/app-ethereum for specifications of this protocol
- class erc7730.model.calldata.v1.param.CalldataDescriptorDateType(*values)[source]View on GitHub
Bases:
IntEnumType of date formatting.
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamAmountV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['AMOUNT'] = 'AMOUNT')[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_AMOUNT struct.
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['AMOUNT']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamBaseV1(*, version: Annotated[int, Ge(ge=0), Le(le=255)], value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)])[source]View on GitHub
Bases:
CalldataDescriptorStructV1,ABCBase class for calldata descriptor PARAM_* structs.
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamCalldataV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['CALLDATA'] = 'CALLDATA', callee: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], selector: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None, chain_id: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None, amount: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None, spender: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None)[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_CALLDATA struct.
- amount: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None
- callee: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)]
- chain_id: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- selector: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None
- spender: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None
- type: Literal['CALLDATA']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamDatetimeV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['DATETIME'] = 'DATETIME', date_type: CalldataDescriptorDateType)[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_DATETIME struct.
- date_type: CalldataDescriptorDateType
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['DATETIME']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamDurationV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['DURATION'] = 'DURATION')[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_DURATION struct.
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['DURATION']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamEnumV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['ENUM'] = 'ENUM', id: Annotated[int, Ge(ge=0), Le(le=255)])[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_ENUM struct.
- id: int
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['ENUM']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamNFTV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['NFT'] = 'NFT', collection: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)])[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_NFT struct.
- collection: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)]
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['NFT']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamRawV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['RAW'] = 'RAW')[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_RAW struct.
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['RAW']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamTokenAmountV1(*, version: ~typing.Literal[1] = 1, value: ~typing.Annotated[~erc7730.model.calldata.v1.value.CalldataDescriptorValuePathV1 | ~erc7730.model.calldata.v1.value.CalldataDescriptorValueConstantV1, ~pydantic.types.Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: ~typing.Literal['TOKEN_AMOUNT'] = 'TOKEN_AMOUNT', token: ~typing.Annotated[~erc7730.model.calldata.v1.value.CalldataDescriptorValuePathV1 | ~erc7730.model.calldata.v1.value.CalldataDescriptorValueConstantV1, ~pydantic.types.Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None = None, native_currencies: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, title='Contract Address', description='An Ethereum contract address (normalized to lowercase).', metadata=[MinLen(min_length=42), MaxLen(max_length=42), _PydanticGeneralMetadata(pattern='^0x[a-f0-9]+$')]), ~pydantic.functional_validators.BeforeValidator(func=~erc7730.model.types.<lambda>, json_schema_input_type=PydanticUndefined), ~erc7730.common.pydantic.ErrorTypeLabel(func=~erc7730.common.pydantic.ErrorTypeLabel._validator.<locals>.validate, json_schema_input_type=PydanticUndefined)]] | None = None, threshold: ~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, title='Hexadecimal string', description='A byte array encoded as an hexadecimal string.', metadata=[_PydanticGeneralMetadata(pattern='^0x[a-f0-9]+$')]), ~pydantic.functional_validators.BeforeValidator(func=~erc7730.model.types.<lambda>, json_schema_input_type=PydanticUndefined), ~erc7730.common.pydantic.ErrorTypeLabel(func=~erc7730.common.pydantic.ErrorTypeLabel._validator.<locals>.validate, json_schema_input_type=PydanticUndefined)] | None = None, above_threshold_message: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1), ~annotated_types.MaxLen(max_length=32)] = None)[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_TOKEN_AMOUNT struct.
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- native_currencies: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, title='Contract Address', description='An Ethereum contract address (normalized to lowercase).', metadata=[MinLen(min_length=42), MaxLen(max_length=42), _PydanticGeneralMetadata(pattern='^0x[a-f0-9]+$')]), ~pydantic.functional_validators.BeforeValidator(func=~erc7730.model.types.<lambda>, json_schema_input_type=PydanticUndefined), ~erc7730.common.pydantic.ErrorTypeLabel(func=~erc7730.common.pydantic.ErrorTypeLabel._validator.<locals>.validate, json_schema_input_type=PydanticUndefined)]] | None
- token: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)] | None
- type: Literal['TOKEN_AMOUNT']
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamTrustedNameV1(*, version: ~typing.Literal[1] = 1, value: ~typing.Annotated[~erc7730.model.calldata.v1.value.CalldataDescriptorValuePathV1 | ~erc7730.model.calldata.v1.value.CalldataDescriptorValueConstantV1, ~pydantic.types.Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: ~typing.Literal['TRUSTED_NAME'] = 'TRUSTED_NAME', types: ~typing.Annotated[list[~erc7730.model.calldata.types.TrustedNameType], ~annotated_types.MinLen(min_length=1)], sources: ~typing.Annotated[list[~erc7730.model.calldata.types.TrustedNameSource], ~annotated_types.MinLen(min_length=1)], sender_addresses: ~typing.Annotated[list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, title='Contract Address', description='An Ethereum contract address (normalized to lowercase).', metadata=[MinLen(min_length=42), MaxLen(max_length=42), _PydanticGeneralMetadata(pattern='^0x[a-f0-9]+$')]), ~pydantic.functional_validators.BeforeValidator(func=~erc7730.model.types.<lambda>, json_schema_input_type=PydanticUndefined), ~erc7730.common.pydantic.ErrorTypeLabel(func=~erc7730.common.pydantic.ErrorTypeLabel._validator.<locals>.validate, json_schema_input_type=PydanticUndefined)]] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_TRUSTED_NAME struct.
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sender_addresses: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, title='Contract Address', description='An Ethereum contract address (normalized to lowercase).', metadata=[MinLen(min_length=42), MaxLen(max_length=42), _PydanticGeneralMetadata(pattern='^0x[a-f0-9]+$')]), ~pydantic.functional_validators.BeforeValidator(func=~erc7730.model.types.<lambda>, json_schema_input_type=PydanticUndefined), ~erc7730.common.pydantic.ErrorTypeLabel(func=~erc7730.common.pydantic.ErrorTypeLabel._validator.<locals>.validate, json_schema_input_type=PydanticUndefined)]] | None
- sources: list[TrustedNameSource]
- type: Literal['TRUSTED_NAME']
- types: list[TrustedNameType]
- version: Literal[1]
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamType(*values)[source]View on GitHub
Bases:
IntEnumType of calldata field parameters.
- class erc7730.model.calldata.v1.param.CalldataDescriptorParamUnitV1(*, version: Literal[1] = 1, value: Annotated[CalldataDescriptorValuePathV1 | CalldataDescriptorValueConstantV1, Discriminator(discriminator=type, custom_error_type=None, custom_error_message=None, custom_error_context=None)], type: Literal['UNIT'] = 'UNIT', base: Annotated[str, MinLen(min_length=1), MaxLen(max_length=32)], decimals: Annotated[int | None, Ge(ge=0), Le(le=255)] = None, prefix: bool | None = None)[source]View on GitHub
Bases:
CalldataDescriptorParamBaseV1Descriptor for the PARAM_UNIT struct.
- base: str
- model_config = {'allow_inf_nan': False, 'arbitrary_types_allowed': False, 'extra': 'forbid', 'frozen': True, 'strict': True, 'validate_assignment': True, 'validate_default': True, 'validate_return': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: Literal['UNIT']
- version: Literal[1]