From f0f4ad70ba401f03223a40002adff203534d6ed2 Mon Sep 17 00:00:00 2001 From: kmochocki <kmochocki@syncad.com> Date: Wed, 18 Dec 2024 13:06:45 +0000 Subject: [PATCH] Move constants to separate file --- python/wax/_private/core/constants.py | 13 ++++++++++++- python/wax/_private/transaction.py | 6 ++++-- python/wax/wax_options.py | 21 +++++++++++++++------ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/python/wax/_private/core/constants.py b/python/wax/_private/core/constants.py index f5dafcbd5..ea1204f59 100644 --- a/python/wax/_private/core/constants.py +++ b/python/wax/_private/core/constants.py @@ -1,9 +1,20 @@ from __future__ import annotations +from datetime import timedelta from math import floor, log10 -from typing import Final +from typing import TYPE_CHECKING, Final + +if TYPE_CHECKING: + from wax._private.models.basic import ChainId + PUBLIC_KEY_ADDRESS_PREFIX: Final[str] = "STM" +DEFAULT_TRANSACTION_EXPIRATION_TIME: Final[timedelta] = timedelta(minutes=1) +MAINNET_CHAIN_ID: Final[ChainId] = "beeab0de00000000000000000000000000000000000000000000000000000000" +DEFAULT_CHAIN_ID: Final[ChainId] = MAINNET_CHAIN_ID + HIVE_PERCENT_PRECISION: Final[int] = 100 HIVE_PERCENT_PRECISION_DOT_PLACES: Final[int] = floor(log10(HIVE_PERCENT_PRECISION)) + +HIVE_TIME_FORMAT: Final[str] = "%Y-%m-%dT%H:%M:%S" diff --git a/python/wax/_private/transaction.py b/python/wax/_private/transaction.py index 97e996610..69d74dc83 100644 --- a/python/wax/_private/transaction.py +++ b/python/wax/_private/transaction.py @@ -2,12 +2,12 @@ from __future__ import annotations import json from copy import deepcopy -from datetime import timedelta from typing import TYPE_CHECKING, TypeAlias from google.protobuf.json_format import MessageToJson, Parse from typing_extensions import Self +from wax._private.core.constants import DEFAULT_TRANSACTION_EXPIRATION_TIME from wax._private.models.hive_date_time import HiveDateTime from wax._private.models.required_authorities import TransactionRequiredAuthorities from wax._private.result_tools import ( @@ -33,6 +33,8 @@ from wax.interfaces import ITransaction, JsonTransaction, ProtoTransaction from wax.proto.transaction_pb2 import transaction as proto_transaction if TYPE_CHECKING: + from datetime import timedelta + from beekeepy._interface.abc.synchronous.wallet import UnlockedWallet from wax import IWaxBaseInterface from wax._private.models.basic import AccountName, Hex, PublicKey, SigDigest, Signature, TransactionId @@ -47,7 +49,7 @@ class Transaction(ITransaction): self, api: IWaxBaseInterface, tapos_block_id: TaposBlockId | ProtoTransaction, - expiration_time: timedelta = timedelta(minutes=30), + expiration_time: timedelta = DEFAULT_TRANSACTION_EXPIRATION_TIME, head_block_time: HiveDateTime | None = None, ) -> None: self._api = api diff --git a/python/wax/wax_options.py b/python/wax/wax_options.py index 15cb96506..3a8e86568 100644 --- a/python/wax/wax_options.py +++ b/python/wax/wax_options.py @@ -1,12 +1,21 @@ from __future__ import annotations -from dataclasses import dataclass, field +from typing import TYPE_CHECKING -from wax._private.models.basic import ChainId +from wax._private.core.constants import DEFAULT_CHAIN_ID + +if TYPE_CHECKING: + from wax._private.models.basic import ChainId -@dataclass class WaxOptions: - chain_id: ChainId = field( - default_factory=lambda: ChainId("18dcf0a285365fc58b71f18b3d3fec954aa0c141c44e4e5cb4cf777b9eab274e") - ) + """Allows configuration of wax itself.""" + + def __init__(self, chain_id: ChainId = DEFAULT_CHAIN_ID) -> None: + """ + Constructs WaxOptions. + + Args: + chain_id: chain id used for signing. Defaults to mainnet chain id. + """ + self.chain_id = chain_id -- GitLab