From f1e9dd9750aefb4a2c53a96f115abb9bcb2feefc Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 14 Oct 2020 15:38:38 +0300 Subject: [PATCH 01/13] feat!: use bytes for identifiers --- package-lock.json | 6 +++--- package.json | 2 +- .../handlers/platform/getDataContractHandlerFactory.js | 2 +- .../handlers/platform/getDocumentsHandlerFactory.js | 2 +- .../handlers/platform/getIdentityHandlerFactory.js | 3 ++- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index a315fa46f..940608cc4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -176,9 +176,9 @@ } }, "@dashevo/dapi-grpc": { - "version": "0.16.0-dev.1", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-grpc/-/dapi-grpc-0.16.0-dev.1.tgz", - "integrity": "sha512-Yh7A0AEqUv/bqjRjQpDYZ4tsJ5bn93Y/V3N5lXvwa1SpFgzp88ceDw96xw/MgWtmlPaCE5gIDmrtPNbI5mzbWw==", + "version": "0.16.0-dev.2", + "resolved": "https://registry.npmjs.org/@dashevo/dapi-grpc/-/dapi-grpc-0.16.0-dev.2.tgz", + "integrity": "sha512-s7epdNXVSM15evGZ7aCaNvm3XUJdm3XkbeonLw6YdgRsN52hI0VjzMdJ4lLX1E85vVWD+LvlDM3TaKl7Oba4rA==", "requires": { "@dashevo/grpc-common": "^0.3.0", "google-protobuf": "^3.12.2", diff --git a/package.json b/package.json index 95ac0e88e..350cd9ff3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "all": true }, "dependencies": { - "@dashevo/dapi-grpc": "~0.16.0-dev.1", + "@dashevo/dapi-grpc": "~0.16.0-dev.2", "@dashevo/dashcore-lib": "~0.18.12", "@dashevo/dashd-rpc": "^2.0.0", "@dashevo/grpc-common": "~0.3.1", diff --git a/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js b/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js index 74fdaea4e..90a3fa8eb 100644 --- a/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js +++ b/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js @@ -32,7 +32,7 @@ describe('getDataContractHandlerFactory', () => { let handleAbciResponseErrorMock; beforeEach(function beforeEach() { - id = 1; + id = Buffer.alloc(1); request = { getId: this.sinon.stub().returns(id), }; diff --git a/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js b/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js index 2423e6156..018a25235 100644 --- a/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js +++ b/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js @@ -41,7 +41,7 @@ describe('getDocumentsHandlerFactory', () => { let documentsSerialized; beforeEach(function beforeEach() { - dataContractId = 'contractId'; + dataContractId = Buffer.from('contractId'); documentType = 'document'; where = [['name', '==', 'John']]; orderBy = [{ order: 'asc' }]; diff --git a/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js b/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js index 17dc4b8bd..f55ccddb8 100644 --- a/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js +++ b/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js @@ -12,6 +12,7 @@ const { }, } = require('@dashevo/dapi-grpc'); +const Identifier = require('@dashevo/dpp/lib/Identifier'); const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture'); const getIdentityHandlerFactory = require('../../../../../lib/grpcServer/handlers/platform/getIdentityHandlerFactory'); @@ -30,7 +31,7 @@ describe('getIdentityHandlerFactory', () => { let identity; beforeEach(function beforeEach() { - id = '5poV8Vdi27VksX2RAzAgXmjAh14y87JN2zLvyAwmepRK'; + id = Identifier.from('5poV8Vdi27VksX2RAzAgXmjAh14y87JN2zLvyAwmepRK').toBuffer(); call = new GrpcCallMock(this.sinon, { getId: this.sinon.stub().returns(id), }); From 8744686304f91e4a455d39190a99d0d7ebf57ec4 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 14 Oct 2020 20:16:21 +0300 Subject: [PATCH 02/13] Add github token support to travis script --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ca4af400a..0a33ae75b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: - npm ci - cp .env.example .env # Get the latest version of travis-ci-tools - - curl -s https://api.github.com/repos/dashevo/travis-ci-tools/releases/latest | jq -r '.tarball_url' | xargs -I {} -n1 wget -O travis-ci-tools.tar.gz -q {} + - curl -u shuplenkov:$GITHUB_TOKEN -s https://api.github.com/repos/dashevo/travis-ci-tools/releases/latest | jq -r '.tarball_url' | xargs -I {} -n1 wget -O travis-ci-tools.tar.gz -q {} - mkdir ~/travis-ci-tools && tar -C ~/travis-ci-tools -xvf travis-ci-tools.tar.gz - export CI_TOOLS_DIR="$(ls ~/travis-ci-tools)" - cd ~/travis-ci-tools/$CI_TOOLS_DIR From 2b77d94119fa419cce83796e63c7b781e4428c1e Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Thu, 15 Oct 2020 10:58:01 +0300 Subject: [PATCH 03/13] fix PR comments --- .travis.yml | 2 +- .../handlers/platform/getDataContractHandlerFactory.js | 4 +++- .../handlers/platform/getDocumentsHandlerFactory.js | 4 +++- .../handlers/platform/getIdentityHandlerFactory.js | 5 +++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0a33ae75b..ef602802b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: - npm ci - cp .env.example .env # Get the latest version of travis-ci-tools - - curl -u shuplenkov:$GITHUB_TOKEN -s https://api.github.com/repos/dashevo/travis-ci-tools/releases/latest | jq -r '.tarball_url' | xargs -I {} -n1 wget -O travis-ci-tools.tar.gz -q {} + - curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/dashevo/travis-ci-tools/releases/latest | jq -r '.tarball_url' | xargs -I {} -n1 wget -O travis-ci-tools.tar.gz -q {} - mkdir ~/travis-ci-tools && tar -C ~/travis-ci-tools -xvf travis-ci-tools.tar.gz - export CI_TOOLS_DIR="$(ls ~/travis-ci-tools)" - cd ~/travis-ci-tools/$CI_TOOLS_DIR diff --git a/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js b/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js index 90a3fa8eb..1e6310102 100644 --- a/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js +++ b/test/unit/grpcServer/handlers/platform/getDataContractHandlerFactory.js @@ -12,6 +12,8 @@ const { }, } = require('@dashevo/dapi-grpc'); +/* eslint-disable import/no-extraneous-dependencies */ +const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier'); const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture'); const GrpcCallMock = require('../../../../../lib/test/mock/GrpcCallMock'); @@ -32,7 +34,7 @@ describe('getDataContractHandlerFactory', () => { let handleAbciResponseErrorMock; beforeEach(function beforeEach() { - id = Buffer.alloc(1); + id = generateRandomIdentifier(); request = { getId: this.sinon.stub().returns(id), }; diff --git a/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js b/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js index 018a25235..faf64d978 100644 --- a/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js +++ b/test/unit/grpcServer/handlers/platform/getDocumentsHandlerFactory.js @@ -14,6 +14,8 @@ const { }, } = require('@dashevo/dapi-grpc'); +/* eslint-disable import/no-extraneous-dependencies */ +const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier'); const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture'); const GrpcCallMock = require('../../../../../lib/test/mock/GrpcCallMock'); @@ -41,7 +43,7 @@ describe('getDocumentsHandlerFactory', () => { let documentsSerialized; beforeEach(function beforeEach() { - dataContractId = Buffer.from('contractId'); + dataContractId = generateRandomIdentifier(); documentType = 'document'; where = [['name', '==', 'John']]; orderBy = [{ order: 'asc' }]; diff --git a/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js b/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js index f55ccddb8..56bd4a3ac 100644 --- a/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js +++ b/test/unit/grpcServer/handlers/platform/getIdentityHandlerFactory.js @@ -12,7 +12,8 @@ const { }, } = require('@dashevo/dapi-grpc'); -const Identifier = require('@dashevo/dpp/lib/Identifier'); +/* eslint-disable import/no-extraneous-dependencies */ +const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier'); const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture'); const getIdentityHandlerFactory = require('../../../../../lib/grpcServer/handlers/platform/getIdentityHandlerFactory'); @@ -31,7 +32,7 @@ describe('getIdentityHandlerFactory', () => { let identity; beforeEach(function beforeEach() { - id = Identifier.from('5poV8Vdi27VksX2RAzAgXmjAh14y87JN2zLvyAwmepRK').toBuffer(); + id = generateRandomIdentifier(); call = new GrpcCallMock(this.sinon, { getId: this.sinon.stub().returns(id), }); From a3e8aaf525a9eb6d443f3419af907c16d9f0c15d Mon Sep 17 00:00:00 2001 From: Anton Suprunchuk Date: Thu, 15 Oct 2020 20:46:38 +0300 Subject: [PATCH 04/13] update dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 350cd9ff3..4c7af4ad3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "all": true }, "dependencies": { - "@dashevo/dapi-grpc": "~0.16.0-dev.2", + "@dashevo/dapi-grpc": "~0.16.0-dev.3", "@dashevo/dashcore-lib": "~0.18.12", "@dashevo/dashd-rpc": "^2.0.0", "@dashevo/grpc-common": "~0.3.1", @@ -48,9 +48,9 @@ "zeromq": "^5.2.0" }, "devDependencies": { - "@dashevo/dapi-client": "~0.15.0", + "@dashevo/dapi-client": "~0.16.0-dev.3", "@dashevo/dp-services-ctl": "~0.14.0", - "@dashevo/dpp": "~0.16.0-dev.2", + "@dashevo/dpp": "~0.16.0-dev.5", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "dirty-chai": "^2.0.1", From 7161e135893803a57404dc250313b765a73c9967 Mon Sep 17 00:00:00 2001 From: Anton Suprunchuk Date: Thu, 15 Oct 2020 20:56:44 +0300 Subject: [PATCH 05/13] Update package-lock.json --- package-lock.json | 56 +++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 940608cc4..d910c0866 100644 --- a/package-lock.json +++ b/package-lock.json @@ -138,31 +138,18 @@ } }, "@dashevo/dapi-client": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.15.0.tgz", - "integrity": "sha512-VTkzZtYVFaJ9w4/t+rYVQKc/pBBrzLZvM3KYVb1kUT+zUwj1N0VBlyMi5ndCxAFGcJb0YTEGHhwX2mKJMxTT9w==", + "version": "0.16.0-dev.3", + "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.3.tgz", + "integrity": "sha512-2npTt7uQayZZ/1up3DwKo1HDZDWc9L4FmV4cfPNudixiIs2T03fZavbr+2wCfrXFqQK7QpYXxPk26Hhyi7pI+A==", "dev": true, "requires": { - "@dashevo/dapi-grpc": "~0.15.0", + "@dashevo/dapi-grpc": "~0.16.0-dev.3", "@dashevo/dashcore-lib": "~0.18.12", "axios": "^0.19.2", "cbor": "^5.0.1", "lodash.sample": "^4.2.1" }, "dependencies": { - "@dashevo/dapi-grpc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-grpc/-/dapi-grpc-0.15.0.tgz", - "integrity": "sha512-2SaO6C/zTDJSVnENd/r1f+9zxixMuvbmDYhKBPQw7HROeuBIsLYDRRROZwBnFUx/oPACFJOcnuyaScauYcNDxg==", - "dev": true, - "requires": { - "@dashevo/grpc-common": "^0.3.0", - "google-protobuf": "^3.12.2", - "grpc": "^1.24.3", - "grpc-web": "^1.2.0", - "protobufjs": "^6.9.0" - } - }, "cbor": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.1.0.tgz", @@ -176,15 +163,36 @@ } }, "@dashevo/dapi-grpc": { - "version": "0.16.0-dev.2", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-grpc/-/dapi-grpc-0.16.0-dev.2.tgz", - "integrity": "sha512-s7epdNXVSM15evGZ7aCaNvm3XUJdm3XkbeonLw6YdgRsN52hI0VjzMdJ4lLX1E85vVWD+LvlDM3TaKl7Oba4rA==", + "version": "0.16.0-dev.3", + "resolved": "https://registry.npmjs.org/@dashevo/dapi-grpc/-/dapi-grpc-0.16.0-dev.3.tgz", + "integrity": "sha512-w2uMrsjMjZ8lbkjr08oDddSBHDqj8mky0N38XFvaMDoxjb4LglSE3k5lfKgYYqUNMsuWNDwq0P5bLold0Otw2Q==", "requires": { "@dashevo/grpc-common": "^0.3.0", "google-protobuf": "^3.12.2", "grpc": "^1.24.3", "grpc-web": "^1.2.0", - "protobufjs": "^6.9.0" + "protobufjs": "github:jawid-h/protobuf.js#fix/buffer-conversion" + }, + "dependencies": { + "protobufjs": { + "version": "github:jawid-h/protobuf.js#264b99b2ab6e097ff5350a57055d754d44d8e703", + "from": "github:jawid-h/protobuf.js#fix/buffer-conversion", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": "^13.7.0", + "long": "^4.0.0" + } + } } }, "@dashevo/dashcore-lib": { @@ -286,9 +294,9 @@ } }, "@dashevo/dpp": { - "version": "0.16.0-dev.2", - "resolved": "https://registry.npmjs.org/@dashevo/dpp/-/dpp-0.16.0-dev.2.tgz", - "integrity": "sha512-p8oGDRJ8uZ0P/WItBz6uVZrHbXaunybAB7Cb1uPTl14VswCYatFjXtVi5hSQX+ETg/wO+f8wwRTiyg19twt4VQ==", + "version": "0.16.0-dev.6", + "resolved": "https://registry.npmjs.org/@dashevo/dpp/-/dpp-0.16.0-dev.6.tgz", + "integrity": "sha512-vT0GA+g1LYuWRHo9+Rnj8whj6Q0EYhZlzNpIoKUSDJhmji4sp3BblnioQkx/FVeDaVPccLuHo56RkZdIrxzj8Q==", "dev": true, "requires": { "@apidevtools/json-schema-ref-parser": "^8.0.0", From f04afcd4b8ae8f6c06c75a8e38285c9700974cd5 Mon Sep 17 00:00:00 2001 From: Anton Suprunchuk Date: Thu, 15 Oct 2020 21:19:11 +0300 Subject: [PATCH 06/13] Update lockfile --- package-lock.json | 70 ++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index d910c0866..0c1bc19e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,12 +25,12 @@ } }, "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.0.tgz", + "integrity": "sha512-8lnf4QcyiQMf5XQp47BltuMTocsOh6P0z/vueEh8GzhmWWlDbdvOoI5Ziddg0XYhmnx35HyByUW51/9NprF8cA==", "dev": true, "requires": { - "@babel/types": "^7.11.5", + "@babel/types": "^7.12.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -82,9 +82,9 @@ } }, "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.0.tgz", + "integrity": "sha512-dYmySMYnlus2jwl7JnnajAj11obRStZoW9cG04wh4ZuhozDn11tDUrhHcUZ9iuNHqALAhh60XqNaYXpvuuE/Gg==", "dev": true }, "@babel/template": { @@ -99,17 +99,17 @@ } }, "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.0.tgz", + "integrity": "sha512-ZU9e79xpOukCNPkQ1UzR4gJKCruGckr6edd8v8lmKpSk8iakgUIvb+5ZtaKKV9f7O+x5r+xbMDDIbzVpUoiIuw==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", + "@babel/generator": "^7.12.0", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/parser": "^7.12.0", + "@babel/types": "^7.12.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" @@ -127,9 +127,9 @@ } }, "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.0.tgz", + "integrity": "sha512-ggIyFmT2zMaYRheOfPDQ4gz7QqV3B+t2rjqjbttDJxMcb7/LukvWCmlIl1sWcOxrvwpTDd+z0OytzqsbGeb3/g==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -172,27 +172,6 @@ "grpc": "^1.24.3", "grpc-web": "^1.2.0", "protobufjs": "github:jawid-h/protobuf.js#fix/buffer-conversion" - }, - "dependencies": { - "protobufjs": { - "version": "github:jawid-h/protobuf.js#264b99b2ab6e097ff5350a57055d754d44d8e703", - "from": "github:jawid-h/protobuf.js#fix/buffer-conversion", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": "^13.7.0", - "long": "^4.0.0" - } - } } }, "@dashevo/dashcore-lib": { @@ -2103,9 +2082,9 @@ } }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, "requires": { "is-buffer": "~2.0.3" @@ -3691,9 +3670,9 @@ "dev": true }, "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, "napi-build-utils": { "version": "1.0.2", @@ -4453,9 +4432,8 @@ } }, "protobufjs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz", - "integrity": "sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==", + "version": "github:jawid-h/protobuf.js#264b99b2ab6e097ff5350a57055d754d44d8e703", + "from": "github:jawid-h/protobuf.js#fix/buffer-conversion", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", From b8dd62ddbd23c972f17298ff52d0bdee003610b9 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Fri, 16 Oct 2020 20:27:32 +0300 Subject: [PATCH 07/13] feat: update dashd-rpc to 2.0.2 --- package-lock.json | 44 ++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c1bc19e8..df0ede63a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,12 +25,12 @@ } }, "@babel/generator": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.0.tgz", - "integrity": "sha512-8lnf4QcyiQMf5XQp47BltuMTocsOh6P0z/vueEh8GzhmWWlDbdvOoI5Ziddg0XYhmnx35HyByUW51/9NprF8cA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "dev": true, "requires": { - "@babel/types": "^7.12.0", + "@babel/types": "^7.12.1", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -82,9 +82,9 @@ } }, "@babel/parser": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.0.tgz", - "integrity": "sha512-dYmySMYnlus2jwl7JnnajAj11obRStZoW9cG04wh4ZuhozDn11tDUrhHcUZ9iuNHqALAhh60XqNaYXpvuuE/Gg==", + "version": "7.12.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz", + "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==", "dev": true }, "@babel/template": { @@ -99,17 +99,17 @@ } }, "@babel/traverse": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.0.tgz", - "integrity": "sha512-ZU9e79xpOukCNPkQ1UzR4gJKCruGckr6edd8v8lmKpSk8iakgUIvb+5ZtaKKV9f7O+x5r+xbMDDIbzVpUoiIuw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", + "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.0", + "@babel/generator": "^7.12.1", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.0", - "@babel/types": "^7.12.0", + "@babel/parser": "^7.12.1", + "@babel/types": "^7.12.1", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" @@ -127,9 +127,9 @@ } }, "@babel/types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.0.tgz", - "integrity": "sha512-ggIyFmT2zMaYRheOfPDQ4gz7QqV3B+t2rjqjbttDJxMcb7/LukvWCmlIl1sWcOxrvwpTDd+z0OytzqsbGeb3/g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", + "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -138,9 +138,9 @@ } }, "@dashevo/dapi-client": { - "version": "0.16.0-dev.3", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.3.tgz", - "integrity": "sha512-2npTt7uQayZZ/1up3DwKo1HDZDWc9L4FmV4cfPNudixiIs2T03fZavbr+2wCfrXFqQK7QpYXxPk26Hhyi7pI+A==", + "version": "0.16.0-dev.4", + "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.4.tgz", + "integrity": "sha512-jiIBspEmcfEwe9PjY5ZkImru2K4mYF84ycjRn93moYEw8Q+JrqErQhwaxhyWRgN4OeN4SSqiDuKq7+1iIuTNIw==", "dev": true, "requires": { "@dashevo/dapi-grpc": "~0.16.0-dev.3", @@ -713,9 +713,9 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sdk": { - "version": "2.771.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.771.0.tgz", - "integrity": "sha512-fqNGusCwkdemx3yFqvQbU1+xq/PB2wGq7EQIrrTZx/zxfXUp+7+PnrHzXtViCRghN0tylLghBfWYD4VcVcqi7g==", + "version": "2.772.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.772.0.tgz", + "integrity": "sha512-am1xrqaQhHbZsSbbZ8l0nRzl4dfCG+HGUAsgNGQp3RGwEZX8Eblge4dGPmg3A1ZyCHAzT1VIWxemOOCiyqJC/A==", "dev": true, "requires": { "buffer": "4.9.2", diff --git a/package.json b/package.json index 4c7af4ad3..0f0799176 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "dependencies": { "@dashevo/dapi-grpc": "~0.16.0-dev.3", "@dashevo/dashcore-lib": "~0.18.12", - "@dashevo/dashd-rpc": "^2.0.0", + "@dashevo/dashd-rpc": "^2.0.2", "@dashevo/grpc-common": "~0.3.1", "ajv": "^6.4.0", "bs58": "^4.0.1", From 61ec5bae0d42d4a7935b5a31d1026c18a11cf5e1 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Mon, 19 Oct 2020 19:17:26 +0300 Subject: [PATCH 08/13] fix PR comments --- lib/externalApis/drive/DriveStateRepository.js | 2 +- .../handlers/platform/getDocumentsHandlerFactory.js | 4 ++-- package-lock.json | 12 ++++++------ package.json | 4 ++-- test/unit/api/drive/DriveStateRepository.js | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/externalApis/drive/DriveStateRepository.js b/lib/externalApis/drive/DriveStateRepository.js index 76919c635..f0722215f 100644 --- a/lib/externalApis/drive/DriveStateRepository.js +++ b/lib/externalApis/drive/DriveStateRepository.js @@ -64,7 +64,7 @@ class DriveStateRepository { return this.request( '/dataContracts', { - contractId, + id: contractId, }, ); } diff --git a/lib/grpcServer/handlers/platform/getDocumentsHandlerFactory.js b/lib/grpcServer/handlers/platform/getDocumentsHandlerFactory.js index 001f0c110..795da4f73 100644 --- a/lib/grpcServer/handlers/platform/getDocumentsHandlerFactory.js +++ b/lib/grpcServer/handlers/platform/getDocumentsHandlerFactory.js @@ -55,7 +55,7 @@ function getDocumentsHandlerFactory(driveStateRepository, handleAbciResponseErro const whereBinary = request.getWhere(); let where; - if (whereBinary) { + if (whereBinary && whereBinary.length > 0) { where = cbor.decode( Buffer.from(whereBinary), ); @@ -66,7 +66,7 @@ function getDocumentsHandlerFactory(driveStateRepository, handleAbciResponseErro const orderByBinary = request.getOrderBy(); let orderBy; - if (orderByBinary) { + if (orderByBinary && orderByBinary.length > 0) { orderBy = cbor.decode( Buffer.from(orderByBinary), ); diff --git a/package-lock.json b/package-lock.json index df0ede63a..d550882f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -138,9 +138,9 @@ } }, "@dashevo/dapi-client": { - "version": "0.16.0-dev.4", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.4.tgz", - "integrity": "sha512-jiIBspEmcfEwe9PjY5ZkImru2K4mYF84ycjRn93moYEw8Q+JrqErQhwaxhyWRgN4OeN4SSqiDuKq7+1iIuTNIw==", + "version": "0.16.0-dev.7", + "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.7.tgz", + "integrity": "sha512-MEA9xqrau67RADYUQ/0BxlmoZxKK9gzqWHxQ8bfZl8tXl0uy7kstvq5hOwF21QXXSrvbt97dC2upWWb9KIrFKw==", "dev": true, "requires": { "@dashevo/dapi-grpc": "~0.16.0-dev.3", @@ -273,9 +273,9 @@ } }, "@dashevo/dpp": { - "version": "0.16.0-dev.6", - "resolved": "https://registry.npmjs.org/@dashevo/dpp/-/dpp-0.16.0-dev.6.tgz", - "integrity": "sha512-vT0GA+g1LYuWRHo9+Rnj8whj6Q0EYhZlzNpIoKUSDJhmji4sp3BblnioQkx/FVeDaVPccLuHo56RkZdIrxzj8Q==", + "version": "0.16.0-dev.8", + "resolved": "https://registry.npmjs.org/@dashevo/dpp/-/dpp-0.16.0-dev.8.tgz", + "integrity": "sha512-W+rfVB/WjNIFG66Cn61txzo3goxwAEsxn3dmC92pHzM8HO1orD/ZJbLIjXoiMqcDBzdi4EFTZ1wVsbFUaBu5LQ==", "dev": true, "requires": { "@apidevtools/json-schema-ref-parser": "^8.0.0", diff --git a/package.json b/package.json index 0f0799176..7a83fea0f 100644 --- a/package.json +++ b/package.json @@ -48,9 +48,9 @@ "zeromq": "^5.2.0" }, "devDependencies": { - "@dashevo/dapi-client": "~0.16.0-dev.3", + "@dashevo/dapi-client": "~0.16.0-dev.5", "@dashevo/dp-services-ctl": "~0.14.0", - "@dashevo/dpp": "~0.16.0-dev.5", + "@dashevo/dpp": "~0.16.0-dev.8", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "dirty-chai": "^2.0.1", diff --git a/test/unit/api/drive/DriveStateRepository.js b/test/unit/api/drive/DriveStateRepository.js index bc3d34c32..802e4de0a 100644 --- a/test/unit/api/drive/DriveStateRepository.js +++ b/test/unit/api/drive/DriveStateRepository.js @@ -94,7 +94,7 @@ describe('DriveStateRepository', () => { expect(drive.client.request).to.have.been.calledOnceWithExactly('abci_query', { path: '/dataContracts', - data: cbor.encode({ contractId }).toString('hex'), // cbor encoded empty object + data: cbor.encode({ id: contractId }).toString('hex'), // cbor encoded empty object }); expect(result).to.be.deep.equal(buffer); }); From 4120c656c8371d173d03f3a34d7894951742ffea Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 21 Oct 2020 13:33:17 +0300 Subject: [PATCH 09/13] feat: update dashcore-lib to 0.18.13 --- package-lock.json | 555 ++++++++++------------------------------------ package.json | 6 +- 2 files changed, 122 insertions(+), 439 deletions(-) diff --git a/package-lock.json b/package-lock.json index d550882f0..bb49b1aca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,9 +82,9 @@ } }, "@babel/parser": { - "version": "7.12.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.2.tgz", - "integrity": "sha512-LMN+SqTiZEonUw4hQA0A3zG8DnN0E1F4K107LbDDUnC+0chML1rvWgsHloC9weB4RmZweE0uhFq0eGX7Nr/PBQ==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", + "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "dev": true }, "@babel/template": { @@ -138,9 +138,9 @@ } }, "@dashevo/dapi-client": { - "version": "0.16.0-dev.7", - "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.7.tgz", - "integrity": "sha512-MEA9xqrau67RADYUQ/0BxlmoZxKK9gzqWHxQ8bfZl8tXl0uy7kstvq5hOwF21QXXSrvbt97dC2upWWb9KIrFKw==", + "version": "0.16.0-dev.8", + "resolved": "https://registry.npmjs.org/@dashevo/dapi-client/-/dapi-client-0.16.0-dev.8.tgz", + "integrity": "sha512-+toh7VLfVHsnUFbc414/P8UKhKRAc/qXWW+Y4aloIY282TDoZ0aBMCfAH1Pv4jI5ICpQWMmCvdqG4pDJhzE4hw==", "dev": true, "requires": { "@dashevo/dapi-grpc": "~0.16.0-dev.3", @@ -175,9 +175,9 @@ } }, "@dashevo/dashcore-lib": { - "version": "0.18.12", - "resolved": "https://registry.npmjs.org/@dashevo/dashcore-lib/-/dashcore-lib-0.18.12.tgz", - "integrity": "sha512-hCUQnZhOFJbHnYPBf4Zg3epFeQaEuvbKaPJtRitl7lwrc+NPJRHuN0sXLfdqhQiK0EEC8LWU1rG22VFrSwCiUg==", + "version": "0.18.13", + "resolved": "https://registry.npmjs.org/@dashevo/dashcore-lib/-/dashcore-lib-0.18.13.tgz", + "integrity": "sha512-hJp08PpmPqWdwZfUWZuoRf+eUCp+YOOdd6ZswPPi0gAzZW2bvGra5B9Wj79n4Q+K5Idkr/kFEFjDtMpMyT/dgQ==", "requires": { "@dashevo/x11-hash-js": "^1.0.2", "@types/node": "^12.12.47", @@ -192,9 +192,9 @@ }, "dependencies": { "@types/node": { - "version": "12.12.67", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.67.tgz", - "integrity": "sha512-R48tgL2izApf+9rYNH+3RBMbRpPeW3N8f0I9HMhggeq4UXwBDqumJ14SDs4ctTMhG11pIOduZ4z3QWGOiMc9Vg==" + "version": "12.12.69", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.69.tgz", + "integrity": "sha512-2F2VQRSFmzqgUEXw75L51MgnnZqc6bKWVSUPfrDPzp6mzGGibeVwyQcpvZvBr5RnsoMRHmC8EcBQiobSeqeJxg==" }, "inherits": { "version": "2.0.1", @@ -273,9 +273,9 @@ } }, "@dashevo/dpp": { - "version": "0.16.0-dev.8", - "resolved": "https://registry.npmjs.org/@dashevo/dpp/-/dpp-0.16.0-dev.8.tgz", - "integrity": "sha512-W+rfVB/WjNIFG66Cn61txzo3goxwAEsxn3dmC92pHzM8HO1orD/ZJbLIjXoiMqcDBzdi4EFTZ1wVsbFUaBu5LQ==", + "version": "0.16.0-dev.9", + "resolved": "https://registry.npmjs.org/@dashevo/dpp/-/dpp-0.16.0-dev.9.tgz", + "integrity": "sha512-y7wMOvv1ahxe+S66Z2WNoLQZMwg5x8KC+W1KX56gh+f9gYGdv1t0/6sex90C6+oFQsQ7WHPojFac0IWJmoNsqw==", "dev": true, "requires": { "@apidevtools/json-schema-ref-parser": "^8.0.0", @@ -425,9 +425,9 @@ "dev": true }, "@types/bytebuffer": { - "version": "5.0.41", - "resolved": "https://registry.npmjs.org/@types/bytebuffer/-/bytebuffer-5.0.41.tgz", - "integrity": "sha512-Mdrv4YcaHvpkx25ksqqFaezktx3yZRcd51GZY0rY/9avyaqZdiT/GiWRhfrJhMpgzXqTOSHgGvsumGxJFNiZZA==", + "version": "5.0.42", + "resolved": "https://registry.npmjs.org/@types/bytebuffer/-/bytebuffer-5.0.42.tgz", + "integrity": "sha512-lEgKojWUAc/MG2t649oZS5AfYFP2xRNPoDuwDBlBMjHXd8MaGPgFgtCXUK7inZdBOygmVf10qxc1Us8GXC96aw==", "requires": { "@types/long": "*", "@types/node": "*" @@ -445,9 +445,15 @@ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" }, "@types/node": { - "version": "13.13.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.25.tgz", - "integrity": "sha512-6ZMK4xRcF2XrPdKmPYQxZkdHKV18xKgUFVvhIgw2iwaaO6weleLPHLBGPZmLhjo+m1N+MZXRAoBEBCCVqgO2zQ==" + "version": "13.13.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.27.tgz", + "integrity": "sha512-IeZlpkPnUqO45iBxJocIQzwV+K6phdSVaCxRwlvHHQ0YL+Gb1fvuv9GmIMYllZcjyzqoRKDNJeNo6p8dNWSPSQ==" + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true }, "JSONStream": { "version": "1.3.5", @@ -629,39 +635,6 @@ } } }, - "array.prototype.map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", - "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.4" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, "ascli": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", @@ -713,9 +686,9 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sdk": { - "version": "2.772.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.772.0.tgz", - "integrity": "sha512-am1xrqaQhHbZsSbbZ8l0nRzl4dfCG+HGUAsgNGQp3RGwEZX8Eblge4dGPmg3A1ZyCHAzT1VIWxemOOCiyqJC/A==", + "version": "2.775.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.775.0.tgz", + "integrity": "sha512-rlej1sgHmfhl+PJqpQ2qOOsbHEEnLBIKBmanMTUNGiEAfuS0MpFjXECXTpJIOrbUzl3OZuAYrGuBkg2qrBwRbQ==", "dev": true, "requires": { "buffer": "4.9.2", @@ -1039,9 +1012,9 @@ "dev": true }, "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -1051,7 +1024,7 @@ "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.5.0" } }, "chownr": { @@ -1566,54 +1539,6 @@ "string.prototype.trimstart": "^1.0.1" } }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", - "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", - "dev": true, - "requires": { - "es-abstract": "^1.17.4", - "has-symbols": "^1.0.1", - "is-arguments": "^1.0.4", - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -2082,13 +2007,10 @@ } }, "flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true }, "flat-cache": { "version": "2.0.1", @@ -2625,12 +2547,6 @@ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2646,18 +2562,21 @@ "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true - }, "is-callable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", "dev": true }, + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", @@ -2687,12 +2606,6 @@ "is-extglob": "^2.1.1" } }, - "is-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", - "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", - "dev": true - }, "is-negative-zero": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", @@ -2706,9 +2619,9 @@ "dev": true }, "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-regex": { @@ -2720,12 +2633,6 @@ "has-symbols": "^1.0.1" } }, - "is-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", - "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -2867,22 +2774,6 @@ "html-escaper": "^2.0.0" } }, - "iterate-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", - "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", - "dev": true - }, - "iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "dev": true, - "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - } - }, "jayson": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/jayson/-/jayson-2.1.2.tgz", @@ -2899,9 +2790,9 @@ }, "dependencies": { "@types/node": { - "version": "10.17.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.39.tgz", - "integrity": "sha512-dJLCxrpQmgyxYGcl0Ae9MTsQgI22qHHcGFj/8VKu7McJA5zQpnuGjoksnxbo1JxSjW/Nahnl13W8MYZf01CZHA==" + "version": "10.17.40", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.40.tgz", + "integrity": "sha512-3hZT2z2/531A5pc8hYhn1gU5Qb1SIRSgMLQ6zuHA5xtt16lWAxUGprtr8lJuc9zNJMXEIIBWfSnzqBP/4mglpA==" }, "commander": { "version": "2.20.3", @@ -3363,15 +3254,16 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz", - "integrity": "sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.0.tgz", + "integrity": "sha512-lEWEMq2LMfNJMKeuEwb5UELi+OgFDollXaytR5ggQcHpzG3NP/R7rvixAvF+9/lLsTWhWG+4yD2M70GsM06nxw==", "dev": true, "requires": { + "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.4.2", - "debug": "4.1.1", + "chokidar": "3.4.3", + "debug": "4.2.0", "diff": "4.0.2", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", @@ -3382,17 +3274,16 @@ "log-symbols": "4.0.0", "minimatch": "3.0.4", "ms": "2.1.2", - "object.assign": "4.1.0", - "promise.allsettled": "1.0.2", - "serialize-javascript": "4.0.0", - "strip-json-comments": "3.0.1", - "supports-color": "7.1.0", + "nanoid": "3.1.12", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "7.2.0", "which": "2.0.2", "wide-align": "1.1.3", - "workerpool": "6.0.0", + "workerpool": "6.0.2", "yargs": "13.3.2", "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.1" + "yargs-unparser": "2.0.0" }, "dependencies": { "ansi-regex": { @@ -3413,12 +3304,12 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "escape-string-regexp": { @@ -3458,18 +3349,6 @@ "p-locate": "^5.0.0" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, "p-limit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", @@ -3521,15 +3400,15 @@ } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -3674,6 +3553,12 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, + "nanoid": { + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", + "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", + "dev": true + }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -4359,15 +4244,15 @@ } }, "prebuild-install": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", - "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", + "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", - "mkdirp": "^0.5.1", + "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", "node-abi": "^2.7.0", "noop-logger": "^0.1.1", @@ -4397,40 +4282,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise.allsettled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", - "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", - "dev": true, - "requires": { - "array.prototype.map": "^1.0.1", - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "iterate-value": "^1.0.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, "protobufjs": { "version": "github:jawid-h/protobuf.js#264b99b2ab6e097ff5350a57055d754d44d8e703", "from": "github:jawid-h/protobuf.js#fix/buffer-conversion", @@ -4565,9 +4416,9 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -4664,11 +4515,12 @@ } }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "dev": true, "requires": { + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } }, @@ -4752,9 +4604,9 @@ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" }, "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -4979,65 +4831,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "es-abstract": "^1.18.0-next.1" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "es-abstract": "^1.18.0-next.1" } }, "string_decoder": { @@ -5620,9 +5430,9 @@ "dev": true }, "workerpool": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", - "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", + "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", "dev": true }, "wrap-ansi": { @@ -5735,155 +5545,28 @@ } }, "yargs-unparser": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", - "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "decamelize": "^1.2.0", - "flat": "^4.1.0", - "is-plain-obj": "^1.1.0", - "yargs": "^14.2.3" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.1.0.tgz", + "integrity": "sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "y18n": { + "decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, diff --git a/package.json b/package.json index 7a83fea0f..2a2251774 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "dependencies": { "@dashevo/dapi-grpc": "~0.16.0-dev.3", - "@dashevo/dashcore-lib": "~0.18.12", + "@dashevo/dashcore-lib": "~0.18.13", "@dashevo/dashd-rpc": "^2.0.2", "@dashevo/grpc-common": "~0.3.1", "ajv": "^6.4.0", @@ -48,9 +48,9 @@ "zeromq": "^5.2.0" }, "devDependencies": { - "@dashevo/dapi-client": "~0.16.0-dev.5", + "@dashevo/dapi-client": "~0.16.0-dev.8", "@dashevo/dp-services-ctl": "~0.14.0", - "@dashevo/dpp": "~0.16.0-dev.8", + "@dashevo/dpp": "~0.16.0-dev.9", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "dirty-chai": "^2.0.1", From 4848c9b338a8cfe4a45b9fbc09872034a975e850 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 21 Oct 2020 13:59:09 +0300 Subject: [PATCH 10/13] chore: bump version to 0.16.0-dev.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index bb49b1aca..b96a41e5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi", - "version": "0.15.0", + "version": "0.16.0-dev.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2a2251774..8f2e46e2b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi", - "version": "0.15.0", + "version": "0.16.0-dev.1", "description": "A decentralized API for the Dash network", "scripts": { "api": "node scripts/api.js", From 2639f872ad013ec7344dc2766aefa353df4d7661 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 21 Oct 2020 15:35:09 +0300 Subject: [PATCH 11/13] feat: remove rpc unit test --- test/unit/api/dashcore/rpc.js | 457 ------------------- test/unit/rpcServer/commands/getBlockHash.js | 2 +- 2 files changed, 1 insertion(+), 458 deletions(-) delete mode 100644 test/unit/api/dashcore/rpc.js diff --git a/test/unit/api/dashcore/rpc.js b/test/unit/api/dashcore/rpc.js deleted file mode 100644 index 08a5d4521..000000000 --- a/test/unit/api/dashcore/rpc.js +++ /dev/null @@ -1,457 +0,0 @@ -/* eslint-disable global-require */ -const chai = require('chai'); -const chaiAsPromised = require('chai-as-promised'); -const sinon = require('sinon'); -const coreAPIFixture = require('../../../mocks/coreAPIFixture'); - - -const { expect } = chai; -chai.use(chaiAsPromised); -let stub; - -describe('externalApis/dashcore/rpc', async () => { - const rpc = require('../../../../lib/externalApis/dashcore/rpc'); - - describe('getTransaction', () => { - const txHash = '50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'; - const tx = 'ygPcCwVy7Fxg7ruxZzqVYdPLtvw7auHAFh'; - describe('#factory', () => { - it('should return a promise', () => { - const getTransaction = rpc.getTransaction(); - expect(getTransaction).to.be.a('promise'); - }); - }); - describe('#stub', () => { - before(() => { - stub = sinon.stub(rpc, 'getTransaction'); - stub.rejects(new Error('Invalid or non-wallet transaction id')); - stub - .withArgs(txHash) - .returns(new Promise(resolve => resolve(tx))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return a hash', async () => { - rpc.getTransaction(123); - expect(stub.callCount).to.be.equal(1); - const transaction = await rpc.getTransaction(txHash); - expect(transaction).to.be.an('string'); - expect(transaction).to.be.equal(tx); - expect(stub.callCount).to.be.equal(2); - }); - - it('Should throw if arguments are not valid', async () => { - const transaction = rpc.getTransaction('str'); - await expect(transaction).to.be.rejectedWith('Invalid or non-wallet transaction id'); - expect(stub.callCount).to.be.equal(1); - await expect(rpc.getTransaction([])).to.be.rejectedWith('Invalid or non-wallet transaction id'); - expect(stub.callCount).to.be.equal(2); - await expect(rpc.getTransaction({})).to.be.rejectedWith('Invalid or non-wallet transaction id'); - expect(stub.callCount).to.be.equal(3); - await expect(rpc.getTransaction({ address: 1 })).to.be.rejectedWith('Invalid or non-wallet transaction id'); - expect(stub.callCount).to.be.equal(4); - await expect(rpc.getTransaction(coreAPIFixture)).to.be.rejectedWith('Invalid or non-wallet transaction id'); - expect(stub.callCount).to.be.equal(5); - await expect(rpc.getTransaction(true)).to.be.rejectedWith('Invalid or non-wallet transaction id'); - expect(stub.callCount).to.be.equal(6); - }); - }); - }); - - describe('getTransactionFirstInputAddress', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getTransactionFirstInputAddress(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getTransactionFirstInputAddress(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - const txHash = '50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'; - const addrStr = 'ygPcCwVy7Fxg7ruxZzqVYdPLtvw7auHAFh'; - before(() => { - stub = sinon.stub(rpc, 'getTransactionFirstInputAddress'); - stub - .withArgs(addrStr) - .returns(new Promise(resolve => resolve(txHash))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return a hash', async () => { - rpc.getTransactionFirstInputAddress(123); - expect(stub.callCount).to.be.equal(1); - const transaction = await rpc.getTransactionFirstInputAddress(addrStr); - expect(transaction).to.be.equal('50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getBestBlockHash', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getBestBlockHash(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getBestBlockHash(); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - before(() => { - stub = sinon.stub(rpc, 'getBestBlockHash'); - stub.returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return a hash', async () => { - rpc.getBestBlockHash(); - expect(stub.callCount).to.be.equal(1); - const bestBlockHash = await rpc.getBestBlockHash(); - expect(bestBlockHash).to.be.equal('fake'); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getBestBlockHeight', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getBestBlockHeight(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getBestBlockHeight(); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - before(() => { - stub = sinon.stub(rpc, 'getBestBlockHeight'); - stub.returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return a hash', async () => { - rpc.getBestBlockHeight(); - expect(stub.callCount).to.be.equal(1); - const transaction = await rpc.getBestBlockHeight(); - expect(transaction).to.be.equal('fake'); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getMasternodesList', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getMasternodesList(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getMasternodesList(); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - before(() => { - stub = sinon.stub(rpc, 'getMasternodesList'); - stub.returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return a hash', async () => { - rpc.getMasternodesList(); - expect(stub.callCount).to.be.equal(1); - const transaction = await rpc.getMasternodesList(); - expect(transaction).to.be.equal('fake'); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getMempoolInfo', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getMempoolInfo(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getMempoolInfo(); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - before(() => { - stub = sinon.stub(rpc, 'getMempoolInfo'); - stub.returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return an info object', async () => { - rpc.getMempoolInfo(); - expect(stub.callCount).to.be.equal(1); - const info = await rpc.getMempoolInfo(); - expect(info).to.be.equal('fake'); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getBlockHash', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getBlockHash(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getBlockHash(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - before(() => { - stub = sinon.stub(rpc, 'getBlockHash'); - stub - .withArgs(1) - .returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should return a hash', async () => { - rpc.getBlockHash(123); - expect(stub.callCount).to.be.equal(1); - const transaction = await rpc.getBlockHash(324); - // TODO: Should `transaction` really be undefined? Or is the test failing? - expect(transaction).to.be.equal(undefined); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getBlockHash', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getBlockHash(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getBlockHash(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - }); - - describe('getBlock', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getBlock(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getBlock(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - const txHash = '50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'; - before(() => { - stub = sinon.stub(rpc, 'getBlock'); - const isParsedValue = 1; - stub - .withArgs(txHash, isParsedValue) - .returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should callCount be correct', async () => { - rpc.getBlock(123); - expect(stub.callCount).to.be.equal(1); - await rpc.getBlock(324); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getrawtransaction', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getRawTransaction(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getRawTransaction(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - const tsid = '50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'; - before(() => { - stub = sinon.stub(rpc, 'getRawTransaction'); - stub - .withArgs(tsid) - .returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should callCount be correct', async () => { - rpc.getRawTransaction('123'); - expect(stub.callCount).to.be.equal(1); - await rpc.getRawTransaction(tsid); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('getRawBlock', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.getRawBlock(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.getRawBlock(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - const tsid = '50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'; - before(() => { - stub = sinon.stub(rpc, 'getRawBlock'); - - stub - .withArgs(tsid) - .returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should callCount be correct', async () => { - rpc.getRawBlock('123'); - expect(stub.callCount).to.be.equal(1); - await rpc.getRawBlock(tsid); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); - - describe('sendRawTransaction', () => { - describe('#factory', () => { - it('should return a promise', () => { - const res = rpc.sendRawTransaction(); - expect(res).to.be.a('promise'); - }); - it('should return error with invalid transaction', async () => { - const res = rpc.sendRawTransaction(1); - await expect(res).to.be.rejectedWith('JSON'); - }); - }); - - describe('#stub', () => { - const tsid = '50622f66236671501c0e80f388d6cf1e81158de8526f4acc9db00adf3c524077'; - before(() => { - stub = sinon.stub(rpc, 'sendRawTransaction'); - stub - .withArgs(tsid) - .returns(new Promise(resolve => resolve('fake'))); - }); - - beforeEach(() => { - stub.resetHistory(); - }); - - after(() => { - stub.restore(); - }); - - it('Should callCount be correct', async () => { - rpc.sendRawTransaction('123'); - expect(stub.callCount).to.be.equal(1); - await rpc.sendRawTransaction(tsid); - expect(stub.callCount).to.be.equal(2); - }); - }); - }); -}); diff --git a/test/unit/rpcServer/commands/getBlockHash.js b/test/unit/rpcServer/commands/getBlockHash.js index 81a391c73..f23a6c827 100644 --- a/test/unit/rpcServer/commands/getBlockHash.js +++ b/test/unit/rpcServer/commands/getBlockHash.js @@ -49,7 +49,7 @@ describe('getBlockHash', () => { expect(spy.callCount).to.be.equal(0); await expect(getBlockHash({ height: 'string' })).to.be.rejectedWith('params.height should be integer'); expect(spy.callCount).to.be.equal(0); - await expect(getBlockHash([-1])).to.be.rejected; + await expect(getBlockHash([-1])).to.be.rejectedWith('params should be object'); expect(spy.callCount).to.be.equal(0); }); }); From f430b154c5ec635c990cae9a8b2a2b3e9e5db4e2 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 21 Oct 2020 16:29:58 +0300 Subject: [PATCH 12/13] feat: unit tests --- test/unit/api/drive/DriveStateRepository.js | 51 +++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/test/unit/api/drive/DriveStateRepository.js b/test/unit/api/drive/DriveStateRepository.js index 796c752fd..7339a32c1 100644 --- a/test/unit/api/drive/DriveStateRepository.js +++ b/test/unit/api/drive/DriveStateRepository.js @@ -10,6 +10,9 @@ const DriveStateRepository = require('../../../../lib/externalApis/drive/DriveSt const RPCError = require('../../../../lib/rpcServer/RPCError'); const AbciResponseError = require('../../../../lib/errors/AbciResponseError'); +const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier'); +const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture'); + chai.use(chaiAsPromised); chai.use(dirtyChai); @@ -151,4 +154,52 @@ describe('DriveStateRepository', () => { expect(result).to.be.deep.equal(buffer); }); }); + + describe('#fetchIdentitiesByPublicKeyHashes', () => { + it('Should call \'fetchIdentitiesByPublicKeyHashes\' RPC with the given parameters', async () => { + const drive = new DriveStateRepository({ host: '127.0.0.1', port: 3000 }); + + const identity = getIdentityFixture(); + const publicKeyHashes = [Buffer.alloc(1)]; + + sinon.stub(drive.client, 'request') + .resolves({ + result: { + response: { code: 0, value: cbor.encode([identity]) }, + }, + }); + + const result = await drive.fetchIdentitiesByPublicKeyHashes(publicKeyHashes); + + expect(drive.client.request).to.have.been.calledOnceWithExactly('abci_query', { + path: '/identities/by-public-key-hash', + data: cbor.encode({ publicKeyHashes }).toString('hex'), + }); + expect(result).to.be.deep.equal([identity]); + }); + }); + + describe('#fetchIdentityIdsByPublicKeyHashes', () => { + it('Should call \'fetchIdentityIdsByPublicKeyHashes\' RPC with the given parameters', async () => { + const drive = new DriveStateRepository({ host: '127.0.0.1', port: 3000 }); + + const identityId = generateRandomIdentifier(); + const publicKeyHashes = [Buffer.alloc(1)]; + + sinon.stub(drive.client, 'request') + .resolves({ + result: { + response: { code: 0, value: cbor.encode([identityId]) }, + }, + }); + + const result = await drive.fetchIdentityIdsByPublicKeyHashes(publicKeyHashes); + + expect(drive.client.request).to.have.been.calledOnceWithExactly('abci_query', { + path: '/identities/by-public-key-hash/id', + data: cbor.encode({ publicKeyHashes }).toString('hex'), + }); + expect(result).to.be.deep.equal([identityId]); + }); + }); }); From e2aa9e86d1f971d11e9e63e812ea184863753375 Mon Sep 17 00:00:00 2001 From: Konstantin Shuplenkov Date: Wed, 21 Oct 2020 16:30:33 +0300 Subject: [PATCH 13/13] fix: eslint errors --- test/unit/api/drive/DriveStateRepository.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/api/drive/DriveStateRepository.js b/test/unit/api/drive/DriveStateRepository.js index 7339a32c1..8c0c5c34e 100644 --- a/test/unit/api/drive/DriveStateRepository.js +++ b/test/unit/api/drive/DriveStateRepository.js @@ -5,13 +5,13 @@ const cbor = require('cbor'); const chaiAsPromised = require('chai-as-promised'); const dirtyChai = require('dirty-chai'); +const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier'); +const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture'); const DriveStateRepository = require('../../../../lib/externalApis/drive/DriveStateRepository'); const RPCError = require('../../../../lib/rpcServer/RPCError'); const AbciResponseError = require('../../../../lib/errors/AbciResponseError'); -const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier'); -const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture'); chai.use(chaiAsPromised); chai.use(dirtyChai);