web3 v0.7.0.0 Release Notes

Release Date: 2018-04-25 // over 4 years ago
  • ๐Ÿš€ This is one of the biggest releases of hs-web3. The aim of this release is make library more easy to use and understand. In this release library modules are separated for three parts: ABI operational modules, Contract abstraction and JSON-RPC generic communication interface (Web3 module).

    Imports optimization is enabled for scenario:

    • if you need TH, just only import Network.Ethereum.Contract.TH module
    • in other cases use Network.Ethereum.Web3 module

    For using specified JSON-RPC method make qualified imports, like

    import qualified Network.Ethereum.Web3.Eth as Eth...runWeb3 Eth.accounts
    

    โž• Added

    • Descriptive types for all JSON-RPC method parameters and returned values (#15).
    • Widely use of basement:Word256 type for encoding.
    • Full list of ethereum abi encoding types:
      • bool: Bool
      • int256: IntN
      • uint256: UIntN
      • string: Text
      • bytes: Bytes
      • bytes32: BytesN
      • dynamic array: []
      • static array: ListN

    ๐Ÿ”„ Changed

    • ๐ŸŽ Rewriten encoding engine for best performance, it now based on cereal:Serialize instead of parsec:Parser.
    • ๐Ÿ“‡ Renamed encoding type classes and methods: ABIEncode -> ABIPut, ABIDecode -> ABIGet.
    • ๐Ÿšš Encoding related modules moved to Network.Ethereum.ABI.
    • ๐Ÿšš Primitive abi encoding types are moved to separated modules in Network.Ethereum.ABI.Prim.
    • ๐Ÿšš Contract interation related modules moved to Network.Ethereum.Contract.
    • Ethereum node communication modules stay in Network.Ethereum.Web3.
    • JSON-RPC tiny client is independent now and can be used separately.

    โœ‚ Removed

    • 0๏ธโƒฃ Event type class, currently TH create Data.Default instance for Filter e.
    • โœ… Custom setup for live testing (it replaced by travis script).