You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
965 B
46 lines
965 B
"""
|
|
Handles conversion of ONE to ATTO and vice versa
|
|
For more granular conversions, see Web3.toWei
|
|
"""
|
|
|
|
from decimal import Decimal
|
|
|
|
|
|
_conversion_unit = Decimal(1e18)
|
|
|
|
|
|
def convert_atto_to_one(atto) -> Decimal:
|
|
"""Convert ATTO to ONE.
|
|
|
|
Parameters
|
|
----------
|
|
atto: str, int, float, decimal
|
|
Value in ATTO to convert to ONE
|
|
Float input will be truncated, since ATTO is the lowest possible denomination of ONE
|
|
|
|
Returns
|
|
-------
|
|
decimal
|
|
Converted value in ONE
|
|
"""
|
|
if isinstance(atto, float):
|
|
atto = int(atto)
|
|
return Decimal(atto) / _conversion_unit
|
|
|
|
|
|
def convert_one_to_atto(one) -> Decimal:
|
|
"""Convert ONE to ATTO.
|
|
|
|
Parameters
|
|
----------
|
|
one: str, int, float, decimal
|
|
Value in ONE to convert to ATTO
|
|
|
|
Returns
|
|
-------
|
|
decimal
|
|
Converted value in ATTO
|
|
"""
|
|
if isinstance(one, float):
|
|
one = str(one)
|
|
return Decimal(one) * _conversion_unit
|
|
|