{-# LANGUAGE NumericUnderscores #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} module Cardano.Network where import Data.Aeson (decode, eitherDecode, encode) import Data.Text (Text) import qualified Money import Test.Hspec import Test.Tasty.Hspec import Text.RawString.QQ import Blockfrost.Types spec_network :: Spec spec_network = do it "parses network sample" $ do eitherDecode networkSample `shouldBe` Right networkExpected networkSample = [r| { "supply": { "max": "45000000000000000", "total": "32890715183299160", "circulating": "32412601976210393", "locked": "125006953355", "treasury": "98635632000000", "reserves": "46635632000000" }, "stake": { "live": "23204950463991654", "active": "22210233523456321" } } |] networkExpected = Network NetworkSupply { _supplyMax = 45_000_000_000_000_000 , _supplyTotal = 32_890_715_183_299_160 , _supplyCirculating = 32_412_601_976_210_393 , _supplyLocked = 125_006_953_355 , _supplyTreasury = 98_635_632_000_000 , _supplyReserves = 46_635_632_000_000 } NetworkStake { _stakeLive = 23_204_950_463_991_654 , _stakeActive = 22_210_233_523_456_321 }