* remove web3 instance from redux
* remove Web3Container, use redux state instead
* remove web3 from Web3Container ;)
* cache result of fetchCrowdFundJSON
* fix error action type
* remove contracts from redux
* fetchCrowdFundJSON error & reporting
* remove unused ref
* check factory networkId against MM networkId during initialization
* BE sentry setup w/ user scope
* FE sentry integration + user scope
* FE env adjustments
* FE: use NODE_ENV for Sentry
* BE: use FLASK_ENV for Sentry
* BE: remove email, acct & ip from Sentry user scope
* comment .env.example SENTRY* for CI
* fix merge artifact
* BE proposal contribution tracking
* FE proposal contribution tracking
* validate contributions
* make sure we catch errors in the 'confirmation' listener
* remove console.log
* lowercase from address compare
* remove validate_contribution_tx from post_proposal_contribution
* make sure BACKEND_URL gets set for server in production mode
* ssr api calls by path
* turn off redux logger on server
* massage preloaded state (BNify JSONed BNs)
* make sure fetchProposal returns async/promise
* make sure render works on ssr (check window refs)
* linting issue
* web3 flask + read proposal
* tests
* use build/contracts indtead of build/abi
* fail if endpoint not set
* batched calls
* add web3 read to GET proposal(s) endpoints
* basic integration of BE crowdFund data into FE
* handle dead contracts & omit on FE
* allow web3-free viewing & move crowdFundContract out of redux store
* upgrade flask-yolo2API to 0.2.6
* MetaMaskRequiredButton + use it in CampaignBlock
* convert to tuples
* farewell tuples
* flter dead proposals on BE
* give test_proposal_funded deadline more time