Appendix E. web3.js Tutorial
Description
This tutorial is based on web3@1.0.0-beta.29 web3.js. It is intended as an introduction to web3.js.
The web3.js JavaScript library is a collection of modules that contain specific functionality for the Ethereum ecosystem, together with an Ethereum-compatible JavaScript API that implements the Generic JSON RPC spec.
To run this script you don’t need to run your own local node, because it uses the Infura services.
web3.js Contract Basic Interaction in a Nonblocked (Async) Fashion
Check you have a valid npm version:
$ npm -v 5.6.0
If you haven’t, initialize npm:
$ npm init
Install basic dependencies:
$ npm i command-line-args $ npm i web3 $ npm i node-rest-client-promise
This will update your package.json configuration file with your new dependencies.
Node.js Script Execution
Basic execution:
$ node code/web3js/web3-contract-basic-interaction.js
Use your own Infura token (register at https://infura.io/ and store the api-key in a local file called infura_token):
$ node code/web3js/web3-contract-basic-interaction.js \ --infuraFileToken /path/to/file/with/infura_token
or:
$ node code/web3js/web3-contract-basic-interaction.js \ /path/to/file/with/infura_token
This will read the file with your own token and pass it in as a command-line argument to the actual command.
Reviewing the Demo Script
Next, let’s review our demo script, web3-contract-basic-interaction.
We use the Web3 object to obtain a basic web3 provider:
varweb3