Popularity
9.6
Stable
Activity
1.0
-
185
11
62

Monthly Downloads: 68
Programming language: Haskell
License: Apache License 2.0
Tags: Network    
Latest version: v0.9.1.0

web3 alternatives and similar packages

Based on the "Networking" category.
Alternatively, view web3 alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of web3 or a related project?

Add another 'Networking' Package

README

Web3 API for Haskell

This library implements Haskell API client for popular Web3 platforms.

Documentation Status CI Hackage Matrix Hackage LTS-14 nightly Code Triagers

Install

stack install web3

Usage

{-# LANGUAGE OverloadedStrings #-}

module Main where

-- Basic imports
import           Network.Ethereum
import           Network.Web3

-- Eth API support
import qualified Network.Ethereum.Api.Eth   as Eth
import           Network.Ethereum.Api.Types

-- ENS support
import qualified Network.Ethereum.Ens       as Ens

-- Lens to simple param setting
import           Lens.Micro                 ((.~))

main :: IO ()
main = do
    -- Use default provider on http://localhost:8545
    ret <- runWeb3 $ do

        -- Get address of default account
        me <- head <$> Eth.accounts

        -- Get balance of default account on latest block
        myBalance <- Eth.getBalance me Latest

        -- Get half of balance
        let halfBalance = fromWei (myBalance / 2)

        -- Use default account
        withAccount () $ do
            -- Get Ethereum address via ENS
            alice <- Ens.resolve "alice.address.on.eth"
            bob   <- Ens.resolve "bob.address.on.eth"

            -- Send transaction with value
            withParam (value .~ halfBalance) $ do

                -- Send transaction to alice account
                withParam (to .~ alice) $ send ()

                -- Send transaction to bob account
                withParam (to .~ bob) $ send ()

        -- Return sended value
        return halfBalance

    -- Web3 error handling
    case ret of
        Left e  -> error $ show e
        Right v -> print (v :: Ether)  -- Print returned value in ethers

Read more in the documentation on ReadTheDocs.

License

  • Network.Polkadot and Codec.Scale is licensed under Apache 2.0
  • All other source is licensed under BSD-3-Clause


*Note that all licence references and agreements mentioned in the web3 README section above are relevant to that project's source code only.