All notable changes to this project will be documented in this file.
- Update dependencies, switch to LTS-21.25
- IPFS library as outdated
- Library splitted for multiple independent packages
- SCALE codec implementation and tests
- SCALE codec example
- Supported GHC version: >=8.4.4
- Imports optimized
- LTS-14 support
- Experimental IPFS REST API client
- Experimental Polkadot JSON-RPC API client
- Web3 abstraction moved to
Network.Web3
- Ethereum entry point renamed
Network.Ethereum.Web3
->Network.Ethereum
- Split from common ECDSA staff from
Crypto.Ethereum
toCrypto.Ecdsa
- Ethereum related tests moved to
Network.Ethereum.Test
- Support for build on LTS-11, LTS-12, LTS-13
- Tuple support for
pragma experimental ABIEncoderV2
- Fixed dependencies bounds for stackage LTS-15
- Fixed reusing of HTTP request Manager
- Fixed dependencies bounds for stackage distribution
- Optimized LANGUAGE pragmas
- Fixed dependencies bounds for stackage distribution
- Web3 secret storage v3 support
- Cryptonite based ECC signer for messages and transactions, it removes secp256k1 dependency
- Fixed dependencies bounds for stackage LTS-13
- Fixed dependencies bounds for stackage distribution
- Gas estimation runs when gas limit is not set before
- Support vinyl-0.10 in
MultiFilter
module
- Support for Ethereum cryptography
- Local private key transaction signer
- Generalized JSON-RPC monad for API methods
- Support for multiple transaction sending methods via one
Account
api - Monad based transaction sending parametrization
- Experimental support for solidity compiler (disabled by default)
- Support for Ethereum mainnet ENS resolver
- Contract typeclass with api/bytecode getters
- Gas estimation for sending transactions
- Contract typeclass TH generator
- Function for creating contracts
- Event single/multi filters
- HexString data type
- Personal api calls
- Address checksum
- package.yaml instead web3.cabal package descriptor
- Solidity related data types and codecs moved to Data.Solidity
- Solidity related parsers and compiler moved to Language.Solidity
- Modules in Network.Ethereum.Web3 moved to Network.Ethereum.Api
- fromWei/toWei from
Unit
typeclass now operates overIntegral
convert
function fromUnit
typeclass
- 'Network.Ethereum.ABI.Prim' meta-module as primitive types and instances aggregator.
- Stackage nightly build compatibility.
- Potential nullable web3 type ('Change', 'Block', 'Transaction', etc.) fields are encoded as 'Maybe'.
- Generic JSON-RPC API documentation improvements.
- TH generator bug fixes.
- Generic JSON-RPC API use fixed size byte arrays.
- 'BlockNumber', 'FilterId' types replaced by 'Quantity' type
- TxReceipt and Eth.getTransactionReceipt JSON-RPC method.
- Keyword escaper for TH generated names.
- Build flag to enable TLS support.
- Library dependencies bounds fixed for GHC 8.2.2-8.4.2 (stackage LTS + Nightly).
- This CHANGELOG.md file for significant changes tracking.
- 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:
- 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.
Event
type class, currently TH createData.Default
instance forFilter e
.- Custom setup for live testing (it replaced by travis script).