Zcash.purs
module Aftok.Zcash where
import Prelude
import Data.Newtype (class Newtype)
import Data.BigInt (BigInt)
import Data.BigInt (toString) as BigInt
import Data.Fixed (Fixed, P1000000, TenTimes, fromInt, numerator, fromBigInt)
import Data.Fixed (toString) as Fixed
newtype Zatoshi = Zatoshi (BigInt)
derive instance zatoshiEq :: Eq Zatoshi
derive instance zatoshiOrd :: Ord Zatoshi
derive instance zatoshiNewtype :: Newtype Zatoshi _
zatsString :: Zatoshi -> String
zatsString (Zatoshi z) = BigInt.toString z
toZEC :: Zatoshi -> ZEC
toZEC (Zatoshi z) =
ZEC $ fromBigInt z / fromInt 100000000
type ZPrec = TenTimes (TenTimes P1000000)
newtype ZEC = ZEC (Fixed ZPrec)
derive instance zecEq :: Eq ZEC
derive instance zecOrd :: Ord ZEC
derive instance zecNewtype :: Newtype ZEC _
zecString :: ZEC -> String
zecString (ZEC z) = Fixed.toString z
toZatoshi :: ZEC -> Zatoshi
toZatoshi (ZEC z) =
Zatoshi (numerator z)