1
0
Fork 0
forked from lthn/blockchain
blockchain/utils/sdk/client/python/lthn/models/block_template_model.py

108 lines
3.7 KiB
Python
Raw Permalink Normal View History

# coding: utf-8
"""
Lethean Blockchain API
OpenAPI for Lethean Blockchain
The version of the OpenAPI document: 6.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from lthn.models.tx_generation_context_model import TxGenerationContextModel
from typing import Optional, Set
from typing_extensions import Self
class BlockTemplateModel(BaseModel):
"""
BlockTemplateModel
""" # noqa: E501
blocktemplate_blob: Optional[StrictStr] = None
difficulty: Optional[StrictStr] = None
height: Optional[StrictInt] = None
miner_tx_tgc: Optional[TxGenerationContextModel] = None
block_reward_without_fee: Optional[StrictInt] = None
block_reward: Optional[StrictInt] = None
txs_fee: Optional[StrictInt] = None
prev_hash: Optional[StrictStr] = None
seed: Optional[StrictStr] = None
__properties: ClassVar[List[str]] = ["blocktemplate_blob", "difficulty", "height", "miner_tx_tgc", "block_reward_without_fee", "block_reward", "txs_fee", "prev_hash", "seed"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of BlockTemplateModel from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of miner_tx_tgc
if self.miner_tx_tgc:
_dict['miner_tx_tgc'] = self.miner_tx_tgc.to_dict()
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of BlockTemplateModel from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"blocktemplate_blob": obj.get("blocktemplate_blob"),
"difficulty": obj.get("difficulty"),
"height": obj.get("height"),
"miner_tx_tgc": TxGenerationContextModel.from_dict(obj["miner_tx_tgc"]) if obj.get("miner_tx_tgc") is not None else None,
"block_reward_without_fee": obj.get("block_reward_without_fee"),
"block_reward": obj.get("block_reward"),
"txs_fee": obj.get("txs_fee"),
"prev_hash": obj.get("prev_hash"),
"seed": obj.get("seed")
})
return _obj