From 493f664d3c413fbcdc325ff3caf96bbc812e1834 Mon Sep 17 00:00:00 2001 From: Samuel Furter Date: Tue, 1 Oct 2019 12:10:18 -0700 Subject: [PATCH 1/3] randomHex fixed --- packages/web3-utils/package-lock.json | 16 ++++++++++++---- packages/web3-utils/package.json | 2 +- packages/web3-utils/src/index.js | 12 +++++++++++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/packages/web3-utils/package-lock.json b/packages/web3-utils/package-lock.json index ac144233140..1f26c73a510 100644 --- a/packages/web3-utils/package-lock.json +++ b/packages/web3-utils/package-lock.json @@ -282,10 +282,18 @@ "strict-uri-encode": "^1.0.0" } }, - "randomhex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=" + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" }, "simple-concat": { "version": "1.0.0", diff --git a/packages/web3-utils/package.json b/packages/web3-utils/package.json index 35fe152655f..a4389340440 100644 --- a/packages/web3-utils/package.json +++ b/packages/web3-utils/package.json @@ -13,7 +13,7 @@ "eth-lib": "0.2.7", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } diff --git a/packages/web3-utils/src/index.js b/packages/web3-utils/src/index.js index d2a066110fa..fd5c0348c23 100644 --- a/packages/web3-utils/src/index.js +++ b/packages/web3-utils/src/index.js @@ -26,7 +26,7 @@ var _ = require('underscore'); var ethjsUnit = require('ethjs-unit'); var utils = require('./utils.js'); var soliditySha3 = require('./soliditySha3.js'); -var randomHex = require('randomhex'); +var randombytes = require('randombytes'); @@ -145,6 +145,16 @@ var _flattenTypes = function(includeTuple, puts) }; +/** + * Returns a random hex string by the given bytes size + * + * @param {Number} size + * @returns {string} + */ +var randomHex = function(size) { + return '0x' + randombytes(size).toString('hex'); +}; + /** * Should be called to get ascii from it's hex representation * From b39876420062b8c1b36e1a0f4154e80a6eda6dc4 Mon Sep 17 00:00:00 2001 From: cgewecke Date: Tue, 1 Oct 2019 12:31:35 -0700 Subject: [PATCH 2/3] Add utils.randomHex unit test --- test/utils.randomHex.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 test/utils.randomHex.js diff --git a/test/utils.randomHex.js b/test/utils.randomHex.js new file mode 100644 index 00000000000..2eb4c7716fc --- /dev/null +++ b/test/utils.randomHex.js @@ -0,0 +1,25 @@ +var chai = require('chai'); +var utils = require('../packages/web3-utils'); + +var assert = chai.assert; + +// Expect 2 chars per bytes plus `0x` prefix +var tests = [ + { value: 0, expected: { prefix: '0x', type: 'string', length: 2 }}, + { value: 15, expected: { prefix: '0x', type: 'string', length: 32 }}, + { value: 16, expected: { prefix: '0x', type: 'string', length: 34 }} +]; + +describe('lib/utils/utils', function () { + describe('randomHex', function () { + tests.forEach(function (test) { + it('should turn ' + test.value + ' to ' + test.expected, function () { + var result = utils.randomHex(test.value); + + assert.strictEqual(typeof result, test.expected.type); + assert.strictEqual(result.slice(0,2), test.expected.prefix); + assert.strictEqual(result.length, test.expected.length); + }); + }); + }); +}); From e6c57cf5b1dd822ba30d5bfb219502a3e1047b5a Mon Sep 17 00:00:00 2001 From: cgewecke Date: Mon, 7 Oct 2019 19:06:58 -0700 Subject: [PATCH 3/3] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fa39030b03..4ccf712e269 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,5 +56,6 @@ Released with 1.0.0-beta.37 code base. ### Fixed +- Fix randomHex returning inconsistent string lengths (#1490) - regeneratorRuntime error fixed (#3058) - Fix accessing event.name where event is undefined (#3014)