Browse Source

Make Truffle provider creation lazy (#1526)

* make provider creation lazy

* change getter for function

* remove unused networks from truffle config

* remove unused dotenv package

* remove truffle-hdwallet-provider dependency

* install ethereumjs-util

* replace sha3 with keccak256 for ethereumjs-util v6
Francisco Giordano 6 years ago
parent
commit
e7d6e86395
6 changed files with 232 additions and 314 deletions
  1. 0 5
      .env.example
  2. 223 274
      package-lock.json
  3. 1 2
      package.json
  4. 4 4
      test/cryptography/MerkleProof.test.js
  5. 4 4
      test/helpers/merkleTree.js
  6. 0 25
      truffle-config.js

+ 0 - 5
.env.example

@@ -1,5 +0,0 @@
-# configure your infura api key (not technically required)
-INFURA_API_KEY=
-
-# change the mnemonic that your hd wallet is seeded with
-MNEMONIC=

File diff suppressed because it is too large
+ 223 - 274
package-lock.json


+ 1 - 2
package.json

@@ -41,7 +41,6 @@
     "chai": "^4.1.2",
     "chai-bignumber": "^2.0.2",
     "coveralls": "^3.0.1",
-    "dotenv": "^4.0.0",
     "eslint": "^4.19.1",
     "eslint-config-standard": "^10.2.1",
     "eslint-plugin-import": "^2.13.0",
@@ -49,12 +48,12 @@
     "eslint-plugin-node": "^5.2.1",
     "eslint-plugin-promise": "^3.8.0",
     "eslint-plugin-standard": "^3.1.0",
+    "ethereumjs-util": "^6.0.0",
     "ethjs-abi": "^0.2.1",
     "ganache-cli": "6.1.0",
     "solidity-coverage": "^0.5.4",
     "solium": "^1.1.8",
     "truffle": "^4.1.13",
-    "truffle-hdwallet-provider": "0.0.5",
     "web3-utils": "^1.0.0-beta.34"
   },
   "dependencies": {}

+ 4 - 4
test/cryptography/MerkleProof.test.js

@@ -1,5 +1,5 @@
 const { MerkleTree } = require('../helpers/merkleTree.js');
-const { sha3, bufferToHex } = require('ethereumjs-util');
+const { keccak256, bufferToHex } = require('ethereumjs-util');
 
 const MerkleProofWrapper = artifacts.require('MerkleProofWrapper');
 
@@ -20,7 +20,7 @@ contract('MerkleProof', function () {
 
       const proof = merkleTree.getHexProof(elements[0]);
 
-      const leaf = bufferToHex(sha3(elements[0]));
+      const leaf = bufferToHex(keccak256(elements[0]));
 
       (await this.merkleProof.verify(proof, root, leaf)).should.equal(true);
     });
@@ -31,7 +31,7 @@ contract('MerkleProof', function () {
 
       const correctRoot = correctMerkleTree.getHexRoot();
 
-      const correctLeaf = bufferToHex(sha3(correctElements[0]));
+      const correctLeaf = bufferToHex(keccak256(correctElements[0]));
 
       const badElements = ['d', 'e', 'f'];
       const badMerkleTree = new MerkleTree(badElements);
@@ -50,7 +50,7 @@ contract('MerkleProof', function () {
       const proof = merkleTree.getHexProof(elements[0]);
       const badProof = proof.slice(0, proof.length - 5);
 
-      const leaf = bufferToHex(sha3(elements[0]));
+      const leaf = bufferToHex(keccak256(elements[0]));
 
       (await this.merkleProof.verify(badProof, root, leaf)).should.equal(false);
     });

+ 4 - 4
test/helpers/merkleTree.js

@@ -1,9 +1,9 @@
-const { sha3, bufferToHex } = require('ethereumjs-util');
+const { keccak256, bufferToHex } = require('ethereumjs-util');
 
 class MerkleTree {
   constructor (elements) {
     // Filter empty strings and hash elements
-    this.elements = elements.filter(el => el).map(el => sha3(el));
+    this.elements = elements.filter(el => el).map(el => keccak256(el));
 
     // Deduplicate elements
     this.elements = this.bufDedup(this.elements);
@@ -45,7 +45,7 @@ class MerkleTree {
     if (!first) { return second; }
     if (!second) { return first; }
 
-    return sha3(this.sortAndConcat(first, second));
+    return keccak256(this.sortAndConcat(first, second));
   }
 
   getRoot () {
@@ -97,7 +97,7 @@ class MerkleTree {
 
     // Convert element to 32 byte hash if it is not one already
     if (el.length !== 32 || !Buffer.isBuffer(el)) {
-      hash = sha3(el);
+      hash = keccak256(el);
     } else {
       hash = el;
     }

+ 0 - 25
truffle-config.js

@@ -1,19 +1,3 @@
-require('dotenv').config();
-
-const HDWalletProvider = require('truffle-hdwallet-provider');
-
-const providerWithMnemonic = (mnemonic, rpcEndpoint) =>
-  new HDWalletProvider(mnemonic, rpcEndpoint);
-
-const infuraProvider = network => providerWithMnemonic(
-  process.env.MNEMONIC || '',
-  `https://${network}.infura.io/${process.env.INFURA_API_KEY}`
-);
-
-const ropstenProvider = process.env.SOLIDITY_COVERAGE
-  ? undefined
-  : infuraProvider('ropsten');
-
 module.exports = {
   networks: {
     development: {
@@ -21,10 +5,6 @@ module.exports = {
       port: 8545,
       network_id: '*', // eslint-disable-line camelcase
     },
-    ropsten: {
-      provider: ropstenProvider,
-      network_id: 3, // eslint-disable-line camelcase
-    },
     coverage: {
       host: 'localhost',
       network_id: '*', // eslint-disable-line camelcase
@@ -32,10 +12,5 @@ module.exports = {
       gas: 0xfffffffffff,
       gasPrice: 0x01,
     },
-    ganache: {
-      host: 'localhost',
-      port: 8545,
-      network_id: '*', // eslint-disable-line camelcase
-    },
   },
 };

Some files were not shown because too many files changed in this diff