April Springs
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
- bool:
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
Event
type class, currently TH createData.Default
instance forFilter e
.- Custom setup for live testing (it replaced by travis script).