""" 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