From 62ed4dc0a0fcfc8efb80d09c64de878f92aebdc7 Mon Sep 17 00:00:00 2001 From: thephez Date: Mon, 16 Nov 2020 10:45:06 -0500 Subject: [PATCH 1/4] docs: update several out of date docs in getting started section (#159) * docs: update docs in getting started folder * docs: typos * docs: docsify readme fixes corrected badges, linting, heading, code samples * docs: remove DashJS references in docsify config --- docs/README.md | 61 +++++++++---------- docs/getting-started/about-schemas.md | 4 +- docs/getting-started/core-concepts.md | 23 +++---- .../dash-platform-applications.md | 9 +-- docs/getting-started/multiple-apps.md | 12 ++-- docs/getting-started/quickstart.md | 47 +++++++------- docs/index.html | 7 ++- 7 files changed, 77 insertions(+), 86 deletions(-) diff --git a/docs/README.md b/docs/README.md index 04c8b5f4..b98be296 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,23 +1,23 @@ -## Dash SDK +# Dash SDK -[![Package Version](https://img.shields.io/github/package-json/v/dashevo/dashjs.svg?&style=flat-square)](https://www.npmjs.org/package/dash) -[![Build Status](https://img.shields.io/travis/com/dashevo/dashjs.svg?branch=master&style=flat-square)](https://travis-ci.com/dashevo/dashjs) +[![NPM Version](https://img.shields.io/npm/v/dash)](https://www.npmjs.org/package/dash) +[![Build Status](https://img.shields.io/travis/com/dashevo/js-dash-sdk)](https://travis-ci.com/dashevo/js-dash-sdk) +[![Release Date](https://img.shields.io/github/release-date/dashevo/js-dash-sdk)](https://github.com/dashevo/js-dash-sdk/releases/latest) +[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen)](https://github.com/RichardLitt/standard-readme) -> Client-side library for wallet payment/signing and application development with Dash. (Wallet, DAPI, Primitives, BLS, ...) +Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...) ---- - -Dash SDK is intended to provide, in a single entry-point all the different features, classes & utils you might need to interface with the Dash network. +Dash library allows you to connect to DAPI and receive or broadcast payments on the Dash Network, manage identifies, register data contracts, retrieve or submit documents on the Dash Platform, all within a single library. ## Install -## Browser +### Browser ```html ``` -## Node +### Node In order to use this library, you will need to add our [NPM package](https://www.npmjs.com/dash) to your project. @@ -27,57 +27,56 @@ Having [NodeJS](https://nodejs.org/) installed, just type : npm install dash ``` -### Usage +## Usage ```js -const Dash = require("dash"); +const Dash = require('dash'); const client = new Dash.Client({ - network: "testnet", + network: 'evonet', wallet: { - mnemonic: "arena light cheap control apple buffalo indicate rare motor valid accident isolate", + mnemonic: 'arena light cheap control apple buffalo indicate rare motor valid accident isolate', }, }); -// Accessing an account allow you to transact with the Dash Network +// Accessing an account allows you to transact with the Dash Network client.getWalletAccount().then(async (account) => { - console.log("Funding address", account.getUnusedAddress().address); + console.log('Funding address', account.getUnusedAddress().address); const balance = account.getConfirmedBalance(); - console.log("Confirmed Balance", balance); + console.log('Confirmed Balance', balance); - if(balance > 0){ + if (balance > 0) { // Creating an identity is the basis of all interactions with the Dash Platform - const identity = await client.platform.identities.register() - + const identity = await client.platform.identities.register(); + // Prepare a new document containing a simple hello world sent to a hypothetical tutorial contract - const document = await platform.documents.create( + const document = await client.platform.documents.create( 'tutorialContract.note', identity, { message: 'Hello World' }, ); // Broadcast the document into a new state transition - await platform.documents.broadcast({create:[document]}, identity); + await client.platform.documents.broadcast({ create: [document] }, identity); } }); ``` - ### Use-cases examples -- [Generate a mnemonic](/examples/generate-a-new-mnemonic.md) -- [Receive money and display balance](/examples/receive-money-and-check-balance.md) -- [Pay to another address](/examples/pay-to-another-address.md) -- [Use a local evonet](/examples/use-local-evonet.md) -- [Publishing a new contract](/examples/publishing-a-new-contract.md) -- [Use another BIP44 account](/examples/use-different-account.md) - + +- [Generate a mnemonic](/examples/generate-a-new-mnemonic.md) +- [Receive money and display balance](/examples/receive-money-and-check-balance.md) +- [Pay to another address](/examples/pay-to-another-address.md) +- [Use a local evonet](/examples/use-local-evonet.md) +- [Publishing a new contract](/examples/publishing-a-new-contract.md) +- [Use another BIP44 account](/examples/use-different-account.md) + ### Tutorial + - [Register an identity](https://dashplatform.readme.io/docs/tutorial-register-an-identity) - [Register a Name for an Identity](https://dashplatform.readme.io/docs/tutorial-register-a-name-for-an-identity) - ## Licence [MIT](https://github.com/dashevo/dashjs/blob/master/LICENCE.md) © Dash Core Group, Inc. - diff --git a/docs/getting-started/about-schemas.md b/docs/getting-started/about-schemas.md index 05d5f3a6..ab39602f 100644 --- a/docs/getting-started/about-schemas.md +++ b/docs/getting-started/about-schemas.md @@ -1,5 +1,5 @@ ## About Schemas -Schemas represents the application data structure, a JSON Schema language based set of rules that is allow the creation of a Data Contract. +Schemas represents the application data structure, a JSON Schema language based set of rules that allows the creation of a Data Contract. -You can read more on the [Dash Platform Documentation - Data contract section](https://dashplatform.readme.io/docs/explanation-platform-protocol-data-contract). +You can read more in the [Dash Platform Documentation - Data contract section](https://dashplatform.readme.io/docs/explanation-platform-protocol-data-contract). diff --git a/docs/getting-started/core-concepts.md b/docs/getting-started/core-concepts.md index fbdc389f..4fd44c19 100644 --- a/docs/getting-started/core-concepts.md +++ b/docs/getting-started/core-concepts.md @@ -1,31 +1,28 @@ ## Core concepts -The [Dash Core Developer Guide](https://dashcore.readme.io/docs/core-guide-introduction) will answer most of the questions about the fundamentals of Dash. - -However, some elements provided by the SDK need to be grasped, so we will quickly cover some of those. +The [Dash Core Developer Guide](https://dashcore.readme.io/docs/core-guide-introduction) will answer most of questions about the fundamentals of Dash. However, some elements provided by the SDK need to be grasped, so we will quickly cover some of those. ## Wallet -At the core of Dash is the Payment Chain, in order to be able to transact on it, one needs to have a set of [UTXO](https://dashcore.readme.io/docs/core-guide-block-chain-transaction-data) that is controlled by a Wallet instance. +At the core of Dash is the Payment Chain. In order to be able to transact on it, one needs to have a set of [UTXOs](https://dashcore.readme.io/docs/core-guide-block-chain-transaction-data) that are controlled by a Wallet instance. In order to access your UTXO, you will have to provide a valid mnemonic that will unlock the Wallet and automatically fetch the associated UTXOs. -When a SDK instance is created, you can access your wallet via the `client.wallet` variable, with the [wallet-lib Wallet doc](https://dashevo.github.io/wallet-lib/#/usage/wallet) +When an SDK instance is created, you can access your wallet via the `client.wallet` variable, with the [wallet-lib Wallet doc](https://dashevo.github.io/wallet-lib/#/usage/wallet) ## Account -Since the introduction of deterministic wallet ([BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki)), a Wallet is a representation of multiple account. +Since the introduction of deterministic wallets ([BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki)), a Wallet is a representation of multiple accounts. -It is the instance you will use most of the time for receiving or broadcasting payments. +It is the instance you will use most of the time for receiving or broadcasting payments. -You can access your account with `client.account` and see [how to use a different account](/examples/use-different-account) if you need to get a specific account index. +You can access your account with `client.getWalletAccount()` and see [how to use a different account](/examples/use-different-account) if you need to get a specific account index. ## App Schema and Contracts -The Dash Platform Application Chain, provides to developers the ability to create application. -That application requires a set of rules and conditions describe in a portable document in the form of a JSON names : Application Schema. +The Dash Platform Chain, provides to developers the ability to create applications. Each application requires a set of rules and conditions describe in a portable document in the form of a JSON Schema. -When registered, those app schema are called contracts and contains a contractId (namespace : `client.contracts`). -By default, this library supports DPNS (to attach a name to an identity), under the namespace `client.names` for evonet. +When registered, those applications schemas are called contracts and contains a contractId (namespace : `client.platform.contracts`). +By default, this library supports Dash Platform Name Service (DPNS) (to attach a name to an identity), under the namespace `client.platform.names` for Evonet. -You can read more on [how to use DPNS on a local evonet](/examples/use-local-evonet.md) or [how to use multiple apps](/getting-started/multiple-apps.md) +You can read more on [how to use DPNS on a local Evonet devnet](/examples/use-local-evonet.md) or [how to use multiple apps](/getting-started/multiple-apps.md). diff --git a/docs/getting-started/dash-platform-applications.md b/docs/getting-started/dash-platform-applications.md index 6a9fc224..678bba29 100644 --- a/docs/getting-started/dash-platform-applications.md +++ b/docs/getting-started/dash-platform-applications.md @@ -1,12 +1,7 @@ ## DPNS -DPNS is handled in Dash SDK's Client under the namespace `client.names.*'`. [Read more here](/platform/names) +DPNS is handled in the Dash SDK Client under the namespace `client.platform.names.*'`. [Read more here](/platform/names) ## DashPay -Soon. Registration of the contract on public evonet should happen in Q1 2020, we will update the doc shortly after. - - -## Memo.dash - -Soon. Registration of the contract on public evonet should happen in Q1 2020, we will update the doc shortly after. +Registration of the contract on Evonet occurred in Q4 2020. Its functionality is not incorporated with the Dash SDK at this time. diff --git a/docs/getting-started/multiple-apps.md b/docs/getting-started/multiple-apps.md index 29d15f16..15e6b220 100644 --- a/docs/getting-started/multiple-apps.md +++ b/docs/getting-started/multiple-apps.md @@ -1,9 +1,9 @@ # Working with multiple apps -When working with other registered contracts, you will need to know their `contractId` and reference it on the SDK constructor. +When working with other registered contracts, you will need to know their `contractId` and reference it in the SDK constructor. -Assuming a contract DashPay and having a following `contractId: "77w8Xqn25HwJhjodrHW133aXhjuTsTv9ozQaYpSHACE3"`. -You can then pass it as an options. +Assuming a contract DashPay has the following `contractId: "77w8Xqn25HwJhjodrHW133aXhjuTsTv9ozQaYpSHACE3"`. +You can then pass it as an option. ```js const client = new Dash.Client({ @@ -15,9 +15,9 @@ const client = new Dash.Client({ }); ``` -This allow the methods `client.platform.documents.fetch` to provide you field selection. -Therefore, if the dashpay contract have a `profile` field that you wish to access, DashJS will allow you to do dot-syntax access : +This allow the method `client.platform.documents.get` to provide you field selection. +Therefore, if the contract has a `profile` field that you wish to access, the SDK will allow you to use dot-syntax for access : ```js -const bobProfile = await client.platform.documents.fetch('dashpay.profile', {name:'bob'}) +const bobProfile = await client.platform.documents.get('dashpay.profile', { name: 'bob' }); ``` diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md index 19e093ab..d1974ab1 100644 --- a/docs/getting-started/quickstart.md +++ b/docs/getting-started/quickstart.md @@ -7,18 +7,17 @@ Having [NodeJS](https://nodejs.org/) installed, just type : ```bash npm install dash ``` + ## Initialization Let's create a Dash SDK client instance specifying both our mnemonic and the schema we wish to work with. ```js -const Dash = require("../src"); +const Dash = require('dash'); const opts = { - network: 'testnet', apps: { dashpay: { - contractId:1234, - schema: require('schema.json') + contractId: '77w8Xqn25HwJhjodrHW133aXhjuTsTv9ozQaYpSHACE3', }, }, wallet: { @@ -26,39 +25,39 @@ const opts = { }, }; const client = new Dash.Client(opts); -client.isReady().then(()=>{ - const {account} = client; - // Do something - }); +client.getWalletAccount().then(async (account) => { + // Do something +}) ``` Quick note : -- If no mnemonic is provided, the subinstance `client.Wallet` will not be initiated (write function for platforms won't be usable). -If you do not have any mnemonic, you can pass `null` to get one generated or omit that parameter to only use Dash.Client in `read-only`. +- If no mnemonic is provided, the sub-instance `client.Wallet` will not be initialized (writing capabilities of Dash Platform won't be usable). +If you do not have a mnemonic, you can pass `null` to have one generated or omit that parameter to only use Dash.Client for `read-only` operations. ## Make a payment ```js -client.isReady().then(()=>{ - const {account} = client; - - account - .createTransaction({ - recipient:{address:'yLptqWxjgTxtwKJuLHoGY222NnoeqYuN8h', amount:0.12} - }) - .then(account.broadcastTransaction); +client.getWalletAccount().then(async (account) => { + const transaction = account.createTransaction({ + recipient: 'yixnmigzC236WmTXp9SBZ42csyp9By6Hw8', + amount: 0.12, }); + account.broadcastTransaction(transaction); +}); ``` -## Read a document +## Read a document -At time of writing, you will need to have registered dashpay yourself, see on [publishing a new contract](/examples/publishing-a-new-contract.md). +At the time of writing, you will need to have registered a data contract yourself. See [publishing a new contract](/examples/publishing-a-new-contract.md). ```js -client.isReady().then(async ()=>{ - const {account} = client; - const bobProfile = await account.platform.documents.fetch('dashpay.profile', {name:'bob'}) - }); + +client.platform.documents.get( + 'tutorialContract.note', + { limit: 1 }, // Only retrieve 1 document +).then(async (documents) => { + console.log(documents); +}); ``` diff --git a/docs/index.html b/docs/index.html index abf0052c..7f388c62 100644 --- a/docs/index.html +++ b/docs/index.html @@ -14,10 +14,10 @@ From 851470343e69e6e9719528d66f1e2815faff9ac5 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Tue, 17 Nov 2020 10:40:06 +0100 Subject: [PATCH 2/4] fix: cannot read property 'getBinaryProperties' of undefined (#158) Co-authored-by: Alex Werner --- src/SDK/Client/ClientApps.spec.ts | 46 ++++++++++ .../Platform/methods/contracts/get.spec.ts | 87 +++++++++++-------- .../Client/Platform/methods/contracts/get.ts | 48 +++++----- 3 files changed, 117 insertions(+), 64 deletions(-) create mode 100644 src/SDK/Client/ClientApps.spec.ts diff --git a/src/SDK/Client/ClientApps.spec.ts b/src/SDK/Client/ClientApps.spec.ts new file mode 100644 index 00000000..a361457e --- /dev/null +++ b/src/SDK/Client/ClientApps.spec.ts @@ -0,0 +1,46 @@ +import Identifier from "@dashevo/dpp/lib/Identifier"; +import {expect} from 'chai'; +import {ClientApps} from "./ClientApps"; +import 'mocha'; + +describe('ClientApps', () => { + let apps; + let appsFromProps; + it('constructor', function () { + apps = new ClientApps(); + expect(apps.apps).to.deep.equal({}); + appsFromProps = new ClientApps({ + "dpns": { + contractId: '3VvS19qomuGSbEYWbTsRzeuRgawU3yK4fPMzLrbV62u8', + contract: null, + } + }); + }); + it('.set', function () { + apps.set('dpns', { + contractId: '3VvS19qomuGSbEYWbTsRzeuRgawU3yK4fPMzLrbV62u8', + contract: { someField: true } + }); + apps.set('tutorialContract', { + contractId: '3VvS19qomuGSbEYWbTsRzeuRgawU3yK4fPMzLrbV62u8', + contract: { someField: true } + }); + }); + it('should get', function () { + const getByName = apps.get('dpns'); + expect(getByName).to.deep.equal({ + "contractId": Identifier.from("3VvS19qomuGSbEYWbTsRzeuRgawU3yK4fPMzLrbV62u8"), + "contract": { someField: true } + }) + }); + + it('should .getNames()', function () { + const names = apps.getNames(); + expect(names).to.deep.equal(['dpns', 'tutorialContract']); + }); + it('should .has', function () { + expect(apps.has('dpns')).to.equal(true); + expect(apps.has('tutorialContract')).to.equal(true); + expect(apps.has('tutorialContractt')).to.equal(false); + }); +}); diff --git a/src/SDK/Client/Platform/methods/contracts/get.spec.ts b/src/SDK/Client/Platform/methods/contracts/get.spec.ts index d2984b47..0cc227bc 100644 --- a/src/SDK/Client/Platform/methods/contracts/get.spec.ts +++ b/src/SDK/Client/Platform/methods/contracts/get.spec.ts @@ -15,48 +15,63 @@ const factory = new DataContractFactory( const dpp = { dataContract: factory } -const getDataContract = async (id) => { - const fixtureIdentifier = Identifier.from(contractsFixtures.ratePlatform.$id); - if (id.equals(fixtureIdentifier)) { - const contract = await dpp.dataContract.createFromObject(contractsFixtures.ratePlatform); - return contract.toBuffer() - } +const apps = new ClientApps({ + ratePlatform: { + contractId: contractsFixtures.ratePlatform.$id + }, +}); +let client; +let askedFromDapi; - return null; -}; +describe('Client - Platform - Contracts - .get()', () => { + before(()=>{ + askedFromDapi = 0; + const getDataContract = async (id) => { + const fixtureIdentifier = Identifier.from(contractsFixtures.ratePlatform.$id); + askedFromDapi+=1; -const client = { - getDAPIClient: () => { - return { - platform: { - getDataContract + if (id.equals(fixtureIdentifier)) { + const contract = await dpp.dataContract.createFromObject(contractsFixtures.ratePlatform); + return contract.toBuffer() } + return null; }; - }, - getApps(): ClientApps { - return new ClientApps(); - } -}; - -const apps = {}; -describe('Client - Platform - Contracts - .get()', () => { - it('should get a contract by string', async function () { - // @ts-ignore - const contract = await get.call({apps, dpp, client}, contractsFixtures.ratePlatform.$id); - expect(contract.toJSON()).to.deep.equal(contractsFixtures.ratePlatform); - }); + client = { + getDAPIClient: () => { + return { + platform: { + getDataContract + } + }; + }, + getApps(): ClientApps { + return apps + } + }; + }) + describe('get a contract from string', ()=>{ + it('should get from DAPIClient if there is none locally', async function () { - it('should get a contract by identifier', async function () { - // @ts-ignore - const contract = await get.call({apps, dpp, client}, Identifier.from(contractsFixtures.ratePlatform.$id)); - expect(contract.toJSON()).to.deep.equal(contractsFixtures.ratePlatform); - }); + // @ts-ignore + const contract = await get.call({apps, dpp, client}, contractsFixtures.ratePlatform.$id); + expect(contract.toJSON()).to.deep.equal(contractsFixtures.ratePlatform); + expect(askedFromDapi).to.equal(1); + }); + it('should get from local when already fetched once', async function () { + // @ts-ignore + const contract = await get.call({apps, dpp, client}, contractsFixtures.ratePlatform.$id); + expect(contract.toJSON()).to.deep.equal(contractsFixtures.ratePlatform); + expect(askedFromDapi).to.equal(1); + }); + }) - it('should deal when no contract', async function () { - // @ts-ignore - const contract = await get.call({apps, dpp, client}, identitiesFixtures.bob.id); - expect(contract).to.equal(null); - }); + describe('other conditions', ()=>{ + it('should deal when contract do not exist', async function () { + // @ts-ignore + const contract = await get.call({apps, dpp, client}, identitiesFixtures.bob.id); + expect(contract).to.equal(null); + }); + }) }); diff --git a/src/SDK/Client/Platform/methods/contracts/get.ts b/src/SDK/Client/Platform/methods/contracts/get.ts index 4c874fed..a1224d80 100644 --- a/src/SDK/Client/Platform/methods/contracts/get.ts +++ b/src/SDK/Client/Platform/methods/contracts/get.ts @@ -13,45 +13,37 @@ declare type ContractIdentifier = string | Identifier; * @returns contracts */ export async function get(this: Platform, identifier: ContractIdentifier): Promise { - let localContract; - const contractId : Identifier = Identifier.from(identifier); + // Try to get contract from the cache for (const appName of this.client.getApps().getNames()) { const appDefinition = this.client.getApps().get(appName); - if (appDefinition.contractId.equals(contractId)) { - localContract = appDefinition; - break; + if (appDefinition.contractId.equals(contractId) && appDefinition.contract) { + return appDefinition.contract; } } - if (localContract && localContract.contract) { - return localContract.contract; - } else { - // @ts-ignore - const rawContract = await this.client.getDAPIClient().platform.getDataContract(contractId); + // Fetch contract otherwise - if (!rawContract) { - return null; - } + // @ts-ignore + const rawContract = await this.client.getDAPIClient().platform.getDataContract(contractId); - const contract = await this.dpp.dataContract.createFromBuffer(rawContract); - - if (!localContract) { - // If we do not have even the identifier in this.apps, we add it with timestamp as key - this.client.getApps().set( - Date.now().toString(), - { - contractId: contractId, - contract - } - ); - } else { - localContract.contract = contract; - } + if (!rawContract) { + return null; + } + + const contract = await this.dpp.dataContract.createFromBuffer(rawContract); - return contract; + // Store contract to the cache + + for (const appName of this.client.getApps().getNames()) { + const appDefinition = this.client.getApps().get(appName); + if (appDefinition.contractId.equals(contractId)) { + appDefinition.contract = contract; + } } + + return contract; } export default get; From ceee853be836c08b6590b2dd6dbb6265cbc43561 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Tue, 17 Nov 2020 11:35:02 +0100 Subject: [PATCH 3/4] chore(release): update changelog and bump version to 3.16.2 (#161) --- CHANGELOG.md | 9 +++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74169425..489dcc25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [3.16.2](https://github.com/dashevo/DashJS/compare/v3.16.1...v3.16.2) (2020-11-17) + + +### Bug Fixes + +* cannot read property 'getBinaryProperties' of undefined ([#158](https://github.com/dashevo/DashJS/issues/158)) + + + ## [3.16.1](https://github.com/dashevo/DashJS/compare/v3.16.0...v3.16.1) (2020-10-30) diff --git a/package-lock.json b/package-lock.json index a93f5799..e55d22c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "3.16.1", + "version": "3.16.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5bf7111e..60837a1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "3.16.1", + "version": "3.16.2", "description": "Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)", "main": "build/src/index.js", "unpkg": "dist/dash.min.js", From a915e2a7facb391814a42078e1198fa143f946c4 Mon Sep 17 00:00:00 2001 From: Cofresi Date: Tue, 1 Dec 2020 15:26:40 -0400 Subject: [PATCH 4/4] chore: update dashcore-lib dependency (#162) * bump dashcore-lib version to 0.18.15 * update package-lock.json * chore: bump version to 3.16.3 --- package-lock.json | 311 ++++++++++++++++++++++++---------------------- package.json | 4 +- 2 files changed, 165 insertions(+), 150 deletions(-) diff --git a/package-lock.json b/package-lock.json index e55d22c2..b3a9a721 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "3.16.2", + "version": "3.16.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -112,9 +112,9 @@ } }, "@dashevo/dashcore-lib": { - "version": "0.18.14", - "resolved": "https://registry.npmjs.org/@dashevo/dashcore-lib/-/dashcore-lib-0.18.14.tgz", - "integrity": "sha512-JRaUTGN0rivI6fioKYaORIeG19rH650qp4iEY9kP+h97eOzIejhcgRfgLq148PxTK56o47Xr7qJkNVhmlXNt2g==", + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@dashevo/dashcore-lib/-/dashcore-lib-0.18.15.tgz", + "integrity": "sha512-4j/4UJ4NGnYaK7EdYNoHRJxx3kLt+a1Q3GLf9blBnX4X9UqwWb98g9wuw8z2iYUeAsVyOQZVFDgNuk9u7r0NGQ==", "requires": { "@dashevo/x11-hash-js": "^1.0.2", "@types/node": "^12.12.47", @@ -129,9 +129,9 @@ }, "dependencies": { "@types/node": { - "version": "12.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.2.tgz", - "integrity": "sha512-SRH6QM0IMOBBFmDiJ75vlhcbUEYEquvSuhsVW9ijG20JvdFTfOrB1p6ddZxz5y/JNnbf+9HoHhjhOVSX2hsJyA==" + "version": "12.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz", + "integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==" }, "inherits": { "version": "2.0.1", @@ -200,9 +200,9 @@ } }, "@jest/types": { - "version": "26.6.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.0.tgz", - "integrity": "sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -306,9 +306,9 @@ } }, "@sinonjs/samsam": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.2.0.tgz", - "integrity": "sha512-CaIcyX5cDsjcW/ab7HposFWzV1kC++4HNsfnEdFJa7cP1QIuILAKV+BgfeqRXhcnSAc76r/Rh/O5C+300BwUIw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.0.tgz", + "integrity": "sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -404,20 +404,20 @@ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" }, "@types/mocha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.3.tgz", - "integrity": "sha512-vyxR57nv8NfcU0GZu8EUXZLTbCMupIUwy95LJ6lllN+JRPG25CwMHoB1q5xKh8YKhQnHYRAn4yW2yuHbf/5xgg==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.4.tgz", + "integrity": "sha512-M4BwiTJjHmLq6kjON7ZoI2JMlBvpY3BYSdiP6s/qCT3jb1s9/DeJF0JELpAxiVSIxXDzfNKe+r7yedMIoLbknQ==", "dev": true }, "@types/node": { - "version": "14.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.0.tgz", - "integrity": "sha512-BfbIHP9IapdupGhq/hc+jT5dyiBVZ2DdeC5WwJWQWDb0GijQlzUFAeIQn/2GtvZcd2HVUU7An8felIICFTC2qg==" + "version": "14.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", + "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" }, "@types/sinon": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.8.tgz", - "integrity": "sha512-IVnI820FZFMGI+u1R+2VdRaD/82YIQTdqLYC9DLPszZuynAJDtCvCtCs3bmyL66s7FqRM3+LPX7DhHnVTaagDw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.9.tgz", + "integrity": "sha512-z/y8maYOQyYLyqaOB+dYQ6i0pxKLOsfwCmHmn4T7jS/SDHicIslr37oE3Dg8SCqKrKeBy6Lemu7do2yy+unLrw==", "dev": true, "requires": { "@types/sinonjs__fake-timers": "*" @@ -446,9 +446,9 @@ "dev": true }, "@types/yargs": { - "version": "15.0.9", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz", - "integrity": "sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1030,9 +1030,9 @@ "dev": true }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, "base64id": { @@ -1272,13 +1272,21 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + } } }, "browserify-sign": { @@ -1423,9 +1431,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true } } @@ -1969,9 +1977,9 @@ "dev": true }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } @@ -2102,9 +2110,9 @@ "dev": true }, "diff-sequences": { - "version": "26.5.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.5.0.tgz", - "integrity": "sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", "dev": true }, "diffie-hellman": { @@ -2513,16 +2521,16 @@ } }, "expect": { - "version": "26.6.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.0.tgz", - "integrity": "sha512-EzhbZ1tbwcaa5Ok39BI11flIMeIUSlg1QsnXOrleaMvltwHsvIQPBtL710l+ma+qDFLUgktCXK4YuQzmHdm7cg==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", "dev": true, "requires": { - "@jest/types": "^26.6.0", + "@jest/types": "^26.6.2", "ansi-styles": "^4.0.0", "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.0", - "jest-message-util": "^26.6.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", "jest-regex-util": "^26.0.0" } }, @@ -3075,9 +3083,9 @@ } }, "google-protobuf": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.13.0.tgz", - "integrity": "sha512-ZIf3qfLFayVrPvAjeKKxO5FRF1/NwRxt6Dko+fWEMuHwHbZx8/fcaAao9b0wCM6kr8qeg2te8XTpyuvKuD9aKw==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.14.0.tgz", + "integrity": "sha512-bwa8dBuMpOxg7COyqkW6muQuvNnWgVN8TX/epDRGW5m0jcrmq2QJyCyiV8ZE2/6LaIIqJtiv9bYokFhfpy/o6w==" }, "got": { "version": "9.6.0", @@ -3111,15 +3119,15 @@ "dev": true }, "grpc": { - "version": "1.24.3", - "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.24.3.tgz", - "integrity": "sha512-EDemzuZTfhM0hgrXqC4PtR76O3t+hTIYJYR5vgiW0yt2WJqo4mhxUqZUirzUQz34Psz7dbLp38C6Cl7Ij2vXRQ==", + "version": "1.24.4", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.24.4.tgz", + "integrity": "sha512-mHRAwuitCMuSHo1tp1+Zc0sz3cYa7pkhVJ77pkIXD5gcVORtkRiyW6msXYqTDT+35jazg98lbO3XzuTo2+XrcA==", "requires": { "@types/bytebuffer": "^5.0.40", "lodash.camelcase": "^4.3.0", "lodash.clone": "^4.5.0", "nan": "^2.13.2", - "node-pre-gyp": "^0.15.0", + "node-pre-gyp": "^0.16.0", "protobufjs": "^5.0.3" }, "dependencies": { @@ -3358,9 +3366,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, "iferr": { @@ -3675,15 +3683,15 @@ "dev": true }, "jest-diff": { - "version": "26.6.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.0.tgz", - "integrity": "sha512-IH09rKsdWY8YEY7ii2BHlSq59oXyF2pK3GoK+hOK9eD/x6009eNB5Jv1shLMKgxekodPzLlV7eZP1jPFQYds8w==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^26.5.0", + "diff-sequences": "^26.6.2", "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.0" + "pretty-format": "^26.6.2" } }, "jest-get-type": { @@ -3693,29 +3701,30 @@ "dev": true }, "jest-matcher-utils": { - "version": "26.6.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.0.tgz", - "integrity": "sha512-BUy/dQYb7ELGRazmK4ZVkbfPYCaNnrMtw1YljVhcKzWUxBM0xQ+bffrfnMLdRZp4wUUcT4ahaVnA3VWZtXWP9Q==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^26.6.0", + "jest-diff": "^26.6.2", "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.0" + "pretty-format": "^26.6.2" } }, "jest-message-util": { - "version": "26.6.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.0.tgz", - "integrity": "sha512-WPAeS38Kza29f04I0iOIQrXeiebRXjmn6cFehzI7KKJOgT0NmqYAcLgjWnIAfKs5FBmEQgje1kXab0DaLKCl2w==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.0", + "@jest/types": "^26.6.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", "slash": "^3.0.0", "stack-utils": "^2.0.2" } @@ -3868,9 +3877,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { @@ -4180,9 +4189,9 @@ }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -4421,9 +4430,9 @@ } }, "mocha": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.0.tgz", - "integrity": "sha512-lEWEMq2LMfNJMKeuEwb5UELi+OgFDollXaytR5ggQcHpzG3NP/R7rvixAvF+9/lLsTWhWG+4yD2M70GsM06nxw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", + "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -4547,12 +4556,12 @@ } }, "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { @@ -4611,9 +4620,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { @@ -4832,9 +4841,9 @@ } }, "node-pre-gyp": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz", - "integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.16.0.tgz", + "integrity": "sha512-4efGA+X/YXAHLi1hN8KaPrILULaUn2nWecFrn1k2I+99HpoyvcOGEbtcOxpDiUwPF2ZANMJDh32qwOUPenuR1g==", "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.3", @@ -5343,15 +5352,15 @@ "dev": true }, "pretty-format": { - "version": "26.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.0.tgz", - "integrity": "sha512-Uumr9URVB7bm6SbaByXtx+zGlS+0loDkFMHP0kHahMjmfCtmFY03iqd++5v3Ld6iB5TocVXlBN/T+DXMn9d4BA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, "requires": { - "@jest/types": "^26.6.0", + "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "react-is": "^17.0.1" }, "dependencies": { "ansi-regex": { @@ -5380,7 +5389,7 @@ "dev": true }, "protobufjs": { - "version": "github:jawid-h/protobuf.js#264b99b2ab6e097ff5350a57055d754d44d8e703", + "version": "github:jawid-h/protobuf.js#8b91c72dca68fd6c418078fd2358c4969425dcdc", "from": "github:jawid-h/protobuf.js#fix/buffer-conversion", "requires": { "@protobufjs/aspromise": "^1.1.2", @@ -5399,9 +5408,9 @@ }, "dependencies": { "@types/node": { - "version": "13.13.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.29.tgz", - "integrity": "sha512-WPGpyEDx4/F4Rx1p1Zar8m+JsMxpSY/wNFPlyNXWV+UzJwkYt3LQg2be/qJgpsLdVJsfxTR5ipY6rv2579jStQ==" + "version": "13.13.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.34.tgz", + "integrity": "sha512-g8D1HF2dMDKYSDl5+79izRwRgNPsSynmWMbj50mj7GZ0b7Lv4p8EmZjbo3h0h+6iLr6YmVz9VnF6XVZ3O6V1Ug==" } } }, @@ -5470,9 +5479,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.0.tgz", - "integrity": "sha512-Pj8EhJzFiPwnf4dEXpuUWwH8M/Yl4vpl4cN2RX1i3R77DWvbY5ZPKni7CCKkOYxz+XKt2fieemsV+WTZbIlYzg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, "requires": { "escape-goat": "^2.0.0" @@ -5551,9 +5560,9 @@ } }, "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", "dev": true }, "readable-stream": { @@ -5590,9 +5599,9 @@ } }, "registry-auth-token": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", - "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "dev": true, "requires": { "rc": "^1.2.8" @@ -5889,9 +5898,9 @@ } }, "sinon": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.0.tgz", - "integrity": "sha512-eSNXz1XMcGEMHw08NJXSyTHIu6qTCOiN8x9ODACmZpNQpr0aXTBXBnI4xTzQzR+TEpOmLiKowGf9flCuKIzsbw==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.1.tgz", + "integrity": "sha512-naPfsamB5KEE1aiioaoqJ6MEhdUs/2vtI5w1hPAXX/UwvoPjXcwh1m5HiKx0HGgKR8lQSoFIgY5jM6KK8VrS9w==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.1", @@ -6251,9 +6260,9 @@ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, "stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -6351,9 +6360,9 @@ "dev": true }, "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -6422,9 +6431,9 @@ } }, "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true }, "terser": { @@ -6488,9 +6497,9 @@ } }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -6596,9 +6605,9 @@ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, "ts-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.6.tgz", - "integrity": "sha512-c8XkRbhKxFLbiIwZR7FBGWDq0MIz/QSpx3CGpj0abJxD5YVX8oDhQkJLeGbXUPRIlaX4Ajmr77fOiFVZ3gSU7g==", + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.11.tgz", + "integrity": "sha512-06X+mWA2JXoXJHYAesUUL4mHFYhnmyoCdQVMXofXF552Lzd4wNwSGg7unJpttqUP7ziaruM8d7u8LUB6I1sgzA==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -6652,9 +6661,9 @@ } }, "ts-mock-imports": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-mock-imports/-/ts-mock-imports-1.3.0.tgz", - "integrity": "sha512-cCrVcRYsp84eDvPict0ZZD/D7ppQ0/JSx4ve6aEU8DjlsaWRJWV6ADMovp2sCuh6pZcduLFoIYhKTDU2LARo7Q==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/ts-mock-imports/-/ts-mock-imports-1.3.1.tgz", + "integrity": "sha512-MKEGXb40TUbpQ6b/if424zs0gfTyHfsebw+FUBkqbC0kVoPwoXhoe82lJH4dC92j4vDoId6pSjtIvwvtSMnS5w==", "dev": true }, "ts-node": { @@ -6975,9 +6984,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "vm-browserify": { @@ -6993,21 +7002,21 @@ "dev": true }, "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" + "watchpack-chokidar2": "^2.0.1" } }, "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", "dev": true, "optional": true, "requires": { @@ -7536,9 +7545,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { @@ -7760,9 +7769,9 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xdg-basedir": { @@ -7838,9 +7847,9 @@ }, "dependencies": { "camelcase": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.1.0.tgz", - "integrity": "sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, "decamelize": { @@ -7862,6 +7871,12 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 60837a1d..ac3d09be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "3.16.2", + "version": "3.16.3", "description": "Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)", "main": "build/src/index.js", "unpkg": "dist/dash.min.js", @@ -32,7 +32,7 @@ "homepage": "https://github.com/dashevo/DashJS#readme", "dependencies": { "@dashevo/dapi-client": "~0.16.0", - "@dashevo/dashcore-lib": "~0.18.14", + "@dashevo/dashcore-lib": "~0.18.15", "@dashevo/dpp": "~0.16.0", "@dashevo/wallet-lib": "~7.16.1", "bs58": "^4.0.1"