From 73521048f680234a21ef19f45dd1950b4d59595c Mon Sep 17 00:00:00 2001 From: emi Date: Thu, 14 May 2020 12:12:05 -0600 Subject: [PATCH] Build 0.0.3 --- README.md | 34 ++++++++++++++++++++++++++++++++++ dist/addresses.js | 27 ++++++++++++++++++++++----- dist/bytes.js | 23 ++++++++++++++++------- package-lock.json | 2 +- package.json | 2 +- 5 files changed, 74 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 7b91285..444c548 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,17 @@ Search network info of checksummed address - [networks] Array - chainId list see: https://chainid.network/chains.json + + +### isZeroAddress(address, chainId) ⇒ Boolean +Checks if is zero address. + +**Kind**: global function +**Params** + +- address String +- chainId Integer | String + ## Arrays @@ -113,6 +124,29 @@ Check if an array contains all the searched items - needle Array +## Bytes + + +### toBuffer(value, [encoding]) ⇒ Buffer +Converts strings or numbers to buffer + +**Kind**: global function +**Params** + +- value string | number | buffer +- [encoding] String = 'hex' + + + +### bufferToHex(buffer) ⇒ String +Converts buffer to hex string + +**Kind**: global function +**Params** + +- buffer Buffer + + ## Hashes diff --git a/dist/addresses.js b/dist/addresses.js index de4e197..2296143 100644 --- a/dist/addresses.js +++ b/dist/addresses.js @@ -1,12 +1,19 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.isAddress = isAddress;exports.toChecksumAddress = toChecksumAddress;exports.isValidChecksumAddress = isValidChecksumAddress;exports.isValidAddress = isValidAddress;exports.searchChecksummedNetworks = searchChecksummedNetworks;var _hashes = require("./hashes"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.zeroAddress = zeroAddress;exports.isAddress = isAddress;exports.toChecksumAddress = toChecksumAddress;exports.isValidChecksumAddress = isValidChecksumAddress;exports.isValidAddress = isValidAddress;exports.searchChecksummedNetworks = searchChecksummedNetworks;exports.isZeroAddress = isZeroAddress;exports.ZERO_ADDRESS = void 0;var _hashes = require("./hashes"); var _strings = require("./strings"); +var _bytes = require("./bytes"); var _networks = _interopRequireDefault(require("./networks.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +function zeroAddress() { + return (0, _strings.add0x)((0, _bytes.bufferToHex)(Buffer.allocUnsafe(20).fill(0))); +} + +const ZERO_ADDRESS = zeroAddress(); + /** - * @description Check if a string is an address - * @param {String} address - * @returns {Boolean} - */ + * @description Check if a string is an address + * @param {String} address + * @returns {Boolean} + */exports.ZERO_ADDRESS = ZERO_ADDRESS; function isAddress(address) { return /^(0x)?[0-9a-fA-F]{40}$/.test(address); } @@ -59,4 +66,14 @@ function isValidAddress(address, chainId) { function searchChecksummedNetworks(address, networks) { networks = networks || _networks.default; return networks.filter(net => toChecksumAddress(address, net.chainId) === address); +} + +/** + * @description Checks if is zero address. + * @param {String} address + * @param {Integer|String} chainId + * @returns {Boolean} + */ +function isZeroAddress(address) { + return address === ZERO_ADDRESS; } \ No newline at end of file diff --git a/dist/bytes.js b/dist/bytes.js index 91692a9..fb77bf2 100644 --- a/dist/bytes.js +++ b/dist/bytes.js @@ -1,15 +1,24 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.toBuffer = toBuffer;var _strings = require("./strings"); - - - - - - +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.toBuffer = toBuffer;exports.bufferToHex = bufferToHex;var _strings = require("./strings"); +/** + * @description Converts strings or numbers to buffer + * @param {string|number|buffer} value + * @param {String} [encoding='hex'] + * @returns {Buffer} + */ function toBuffer(value, encoding = 'hex') { if (Buffer.isBuffer(value)) return value; if (typeof value === 'number') value = value.toString(); value = (0, _strings.remove0x)(value); if (!encoding && (0, _strings.isHexString)(value)) encoding = 'hex'; return Buffer.from(value, encoding); +} + +/** + * @description Converts buffer to hex string + * @param {Buffer} buffer + * @returns {String} + */ +function bufferToHex(buffer) { + return (0, _strings.add0x)(buffer.toString('hex')); } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 82eea11..6c3e74a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "rsk-utils", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 450665d..563c103 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rsk-utils", - "version": "0.0.2", + "version": "0.0.3", "description": "A collection of JS utility functions for RSK", "main": "dist/index.js", "scripts": {