packages feed

web3-0.7.0.0: examples/TokenInfo.hs

{-# LANGUAGE OverloadedStrings #-}
module Main where

import           Data.Default                 (def)
import           Data.Text                    (unpack)
import           Text.Printf                  (printf)

import           Network.Ethereum.Contract.TH
import           Network.Ethereum.Web3        hiding (name)

import           ERC20

main :: IO ()
main = do
    result <- runWeb3 $ do
        n <- name tokenCall
        s <- symbol tokenCall
        d <- decimals tokenCall
        return $ printf "Token %s with symbol %s and decimals %d"
                   (unpack n) (unpack s) (fromIntegral d :: Int)
    case result of
      Left err   -> print err
      Right info -> putStrLn info
  where
    token :: Address
    token = "0xA2f4FCb0FDe2dD59f7a1873e121bc5623e3164Eb"

    tokenCall :: Call
    tokenCall = def { callTo = Just token }