diff --git a/src/Zenith.hs b/src/Zenith.hs index d597ac2..4ad8bb7 100644 --- a/src/Zenith.hs +++ b/src/Zenith.hs @@ -45,14 +45,12 @@ import Text.Regex.Base import Text.Regex.Posix -- | A type to model Zcash RPC calls -data RpcCall = - RpcCall - { jsonrpc :: T.Text - , id :: T.Text - , method :: T.Text - , params :: [Value] - } - deriving (Show, Generic, ToJSON, FromJSON) +data RpcCall = RpcCall + { jsonrpc :: T.Text + , id :: T.Text + , method :: T.Text + , params :: [Value] + } deriving (Show, Generic, ToJSON, FromJSON) -- | Type for modelling the different address sources for Zcash 5.0.0 data AddressSource @@ -91,14 +89,12 @@ instance FromJSON ZcashPool where "orchard" -> return Orchard _ -> fail "Not a known Zcash pool" -data ZcashAddress = - ZcashAddress - { source :: AddressSource - , pool :: [ZcashPool] - , account :: Maybe Integer - , addy :: T.Text - } - deriving (Eq) +data ZcashAddress = ZcashAddress + { source :: AddressSource + , pool :: [ZcashPool] + , account :: Maybe Integer + , addy :: T.Text + } deriving (Eq) instance Show ZcashAddress where show (ZcashAddress s p i a) = @@ -106,13 +102,11 @@ instance Show ZcashAddress where "..." ++ T.unpack (T.takeEnd 8 a) ++ " Pools: " ++ show p -- | A type to model the response of the Zcash RPC -data RpcResponse r = - RpcResponse - { err :: Maybe T.Text - , respId :: T.Text - , result :: r - } - deriving (Show, Generic, ToJSON) +data RpcResponse r = RpcResponse + { err :: Maybe T.Text + , respId :: T.Text + , result :: r + } deriving (Show, Generic, ToJSON) instance (FromJSON r) => FromJSON (RpcResponse r) where parseJSON (Object obj) = do @@ -136,14 +130,12 @@ instance FromJSON NodeVersion where pure $ NodeVersion v -- | A type to model an address group -data AddressGroup = - AddressGroup - { agsource :: AddressSource - , agtransparent :: [ZcashAddress] - , agsapling :: [ZcashAddress] - , agunified :: [ZcashAddress] - } - deriving (Show, Generic) +data AddressGroup = AddressGroup + { agsource :: AddressSource + , agtransparent :: [ZcashAddress] + , agsapling :: [ZcashAddress] + , agunified :: [ZcashAddress] + } deriving (Show, Generic) instance FromJSON AddressGroup where parseJSON = @@ -195,18 +187,16 @@ displayZec s | otherwise = show (fromIntegral s / 100000000) ++ " ZEC " -- | A type to model a Zcash transaction -data ZcashTx = - ZcashTx - { ztxid :: T.Text - , zamount :: Double - , zamountZat :: Integer - , zblockheight :: Integer - , zblocktime :: Integer - , zchange :: Bool - , zconfirmations :: Integer - , zmemo :: T.Text - } - deriving (Show, Generic) +data ZcashTx = ZcashTx + { ztxid :: T.Text + , zamount :: Double + , zamountZat :: Integer + , zblockheight :: Integer + , zblocktime :: Integer + , zchange :: Bool + , zconfirmations :: Integer + , zmemo :: T.Text + } deriving (Show, Generic) instance FromJSON ZcashTx where parseJSON = @@ -246,13 +236,11 @@ instance ToJSON ZcashTx where ] -- | Type for the UA balance -data UABalance = - UABalance - { uatransparent :: Integer - , uasapling :: Integer - , uaorchard :: Integer - } - deriving (Eq) +data UABalance = UABalance + { uatransparent :: Integer + , uasapling :: Integer + , uaorchard :: Integer + } deriving (Eq) instance Show UABalance where show (UABalance t s o) = @@ -280,13 +268,11 @@ instance FromJSON UABalance where pure $ UABalance vT vS vO -- | Type for Operation Result -data OpResult = - OpResult - { opsuccess :: T.Text - , opmessage :: Maybe T.Text - , optxid :: Maybe T.Text - } - deriving (Show, Eq) +data OpResult = OpResult + { opsuccess :: T.Text + , opmessage :: Maybe T.Text + , optxid :: Maybe T.Text + } deriving (Show, Eq) instance FromJSON OpResult where parseJSON = @@ -439,7 +425,7 @@ sendTx user pwd fromAddy toAddy amount memo = do (V.fromList [object ["address" .= toAddy, "amount" .= amount]]) , Data.Aeson.Number $ Scientific.scientific 1 1 - , Data.Aeson.Number $ Scientific.scientific 1 (-5) + , Data.Aeson.Null , Data.Aeson.String privacyPolicy ] Just memo' -> @@ -453,7 +439,7 @@ sendTx user pwd fromAddy toAddy amount memo = do ] ]) , Data.Aeson.Number $ Scientific.scientific 1 1 - , Data.Aeson.Number $ Scientific.scientific 1 (-5) + , Data.Aeson.Null , Data.Aeson.String privacyPolicy ] response <- makeZcashCall user pwd "z_sendmany" pd