README

elm-ethereum

Cool Feature: See here how you can easily track the block depth of transactions after they've been mined.

This library allows you to interact with the Ethereum blockchain much like purescript-web3, ethers.js, or web3.js.
You can hook into web wallets like MetaMask and send transactions, as well as perform read-only operations on smart contracts.

Why Elm

I'd sum up the experience of programming in Elm with two words: Fearless Refactoring

This is by no means the only pleasantry the fine tree has to offer.

Elm's claim to fame is zero runtime exceptions. It's compiler and static types are your best friends. Both from an error catching standpoint, but just as importantly, from a domain modeling standpoint.

Union Types allow you to fully leverage the compiler when modeling your business domain. See BlockId or NetworkId for instance.

Union types also allow you to hide implementation details by implementing "opaque types". An Address is just a string under the hood, but you can never directly touch that string.

Why else

Simplicity and cohesion

Javascript Elm
---------------------------------
npm/yarn built in
Webpack built in
React built in
Redux built in
Typescript/Flow built in
Immutable.JS built in