Ethereum Transaction Details for Humans

When working on one of my projects, it was asked “How do we ensure that transaction was indeed recorded on the blockchain” While we can (and did) store the transaction hash returned by the function call in the database, txn_hash alone does no good. e.g. “Official” method to get the details of the transaction (from the txn_hash) returns something like the following: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 web3.

nvm, emacs and zsh walk into a (macOS) bar

Feel free to jump directly to the solution Background I recently started working on node based project. I'd been using nvm for quite some time now, since I liked the idea of having languages their own version managers, rather than having OS manage it ,which I doubt can do a good job. OS package managers were designed to have single version (and upgrade when needed) So I've been using pyenv and nvm for quite some time.

truffle test : TypeError: Cannot read property 'filter' of undefined

Recently ran across this unintuitive error : 1 2 3 4 5 6 7 8 $ truffle test /usr/local/lib/node_modules/truffle/build/cli.bundled.js:128717 var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&"function"==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=! TypeError: Cannot read property 'filter' of undefined at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:318499:21 at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:267618:25 at FSReqWrap.oncomplete (fs.js:166:21) It took a bit of googling to figure out that error is far more innocent than it appears from the error and the stack trace.

How to install Vyper using pyenv and Virtualenv on macOS

Initially, setting up Vyper (an experimental language, with python-like syntax, for writing smart contracts on ethereum) seemed as simple as following the instructions. it wasn't. If you like to skip the details/troubleshooting, head over to TL;DR pyenv I've written about why I prefer pyenv earlier I'm not sure whether my “misfortune” was due to pyenv, but it could be. To top it off, I also used virtualenv as suggested in the official docs.