diff --git a/CHANGELOG.md b/CHANGELOG.md
index 32bf043b..dfd333fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.39.0](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.2...v0.39.0) (2021-01-13)
+
+
+### Features
+
+* **rpc:** add rpc#getRawTxPool, rpc#getConsensus and deprecate rpc#getCellbaseOutputCapacityDetails, rpc#getPeersState ([#528](https://github.com/nervosnetwork/ckb-sdk-js/pull/528))
+
+
+
+
+
## [0.38.2](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.1...v0.38.2) (2020-11-30)
diff --git a/README.md b/README.md
index 8a0a781a..c5677d60 100644
--- a/README.md
+++ b/README.md
@@ -27,8 +27,10 @@ The ckb-sdk-js is still under development and NOT production ready. You should g
- [Modules](#modules)
- [CORE](#core)
- [RPC](#rpc)
+- [Utils](#utils)
- [Errors](#errors)
- [Examples](#examples)
+- [Troubleshooting](#troubleshooting)
- [Development Process](#development-process)
@@ -213,6 +215,10 @@ const httpsAgent = new https.Agent({ keepAlive: true })
ckb.rpc.setNode({ httpsAgent })
```
+# Utils
+
+[Most used utilities](https://github.com/nervosnetwork/ckb-sdk-js/blob/develop/packages/ckb-sdk-utils/README.md)
+
# Errors
1. RPC Errors
@@ -228,6 +234,13 @@ The rpc module will throw an error when the result contains an error field, you
5. [Send Transaction with Lumos Collector](https://github.com/nervosnetwork/ckb-sdk-js/blob/develop/packages/ckb-sdk-core/examples/sendTransactionWithLumosCollector.js)
6. [SUDT](https://github.com/nervosnetwork/ckb-sdk-js/blob/develop/packages/ckb-sdk-core/examples/sudt.js)
+# Troubleshooting
+
+## Indexer Module
+
+The Indexer Module in CKB has been deprecated since [v0.36.0](https://github.com/nervosnetwork/ckb/releases/tag/v0.36.0), please use [ckb-indexer](https://github.com/nervosnetwork/ckb-indexer) or [lumos-indexer](https://github.com/nervosnetwork/lumos/tree/develop/packages/indexer) instead.
+
+A simple example [sendTransactionWithLumosCollector](https://github.com/nervosnetwork/ckb-sdk-js/blob/develop/packages/ckb-sdk-core/examples/sendTransactionWithLumosCollector.js) of wokring with lumos has beed added.
# Development Process
diff --git a/lerna.json b/lerna.json
index 2bc8839b..654aed27 100644
--- a/lerna.json
+++ b/lerna.json
@@ -4,5 +4,5 @@
],
"npmClient": "yarn",
"useWorkspaces": true,
- "version": "0.38.2"
+ "version": "0.39.0"
}
diff --git a/packages/ckb-sdk-core/CHANGELOG.md b/packages/ckb-sdk-core/CHANGELOG.md
index 0245b540..4c6b6691 100644
--- a/packages/ckb-sdk-core/CHANGELOG.md
+++ b/packages/ckb-sdk-core/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.39.0](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.2...v0.39.0) (2021-01-13)
+
+**Note:** Version bump only for package @nervosnetwork/ckb-sdk-core
+
+
+
+
+
## [0.38.2](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.1...v0.38.2) (2020-11-30)
diff --git a/packages/ckb-sdk-core/package.json b/packages/ckb-sdk-core/package.json
index 5d3505b1..9b7f6fae 100644
--- a/packages/ckb-sdk-core/package.json
+++ b/packages/ckb-sdk-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@nervosnetwork/ckb-sdk-core",
- "version": "0.38.2",
+ "version": "0.39.0",
"description": "JavaScript SDK for Nervos Network CKB Project",
"author": "Nervos ",
"homepage": "https://github.com/nervosnetwork/ckb-sdk-js#readme",
@@ -31,10 +31,10 @@
"url": "https://github.com/nervosnetwork/ckb-sdk-js/issues"
},
"dependencies": {
- "@nervosnetwork/ckb-sdk-rpc": "0.38.2",
- "@nervosnetwork/ckb-sdk-utils": "0.38.2",
- "@nervosnetwork/ckb-types": "0.38.2",
+ "@nervosnetwork/ckb-sdk-rpc": "0.39.0",
+ "@nervosnetwork/ckb-sdk-utils": "0.39.0",
+ "@nervosnetwork/ckb-types": "0.39.0",
"tslib": "2.0.1"
},
- "gitHead": "919d9b9eeecca2e65e4e3fdb49763401a62a46bd"
+ "gitHead": "94af87551108a40f79c1cead0db5d3cc5c679302"
}
diff --git a/packages/ckb-sdk-rpc/CHANGELOG.md b/packages/ckb-sdk-rpc/CHANGELOG.md
index 2612f42f..f236a993 100644
--- a/packages/ckb-sdk-rpc/CHANGELOG.md
+++ b/packages/ckb-sdk-rpc/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.39.0](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.2...v0.39.0) (2021-01-13)
+
+
+### Features
+
+* **rpc:** add rpc#getRawTxPool, rpc#getConsensus and deprecate rpc#getCellbaseOutputCapacityDetails, rpc#getPeersState ([#528](https://github.com/nervosnetwork/ckb-sdk-js/pull/528))
+
+
+
+
+
## [0.38.2](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.1...v0.38.2) (2020-11-30)
**Note:** Version bump only for package @nervosnetwork/ckb-sdk-rpc
diff --git a/packages/ckb-sdk-rpc/__tests__/ckb-rpc-helpers.js b/packages/ckb-sdk-rpc/__tests__/ckb-rpc-helpers.js
index b44d4e4a..057cc3d6 100644
--- a/packages/ckb-sdk-rpc/__tests__/ckb-rpc-helpers.js
+++ b/packages/ckb-sdk-rpc/__tests__/ckb-rpc-helpers.js
@@ -32,8 +32,8 @@ describe('ckb-rpc settings and helpers', () => {
expect(rpc.node.httpsAgent).toBeDefined()
})
- it('has 37 basic rpc', () => {
- expect(Object.values(rpc)).toHaveLength(37)
+ it('has 39 basic rpc', () => {
+ expect(Object.values(rpc)).toHaveLength(39)
})
it('set node url to http://test.localhost:8114', () => {
diff --git a/packages/ckb-sdk-rpc/__tests__/ckb-rpc.test.js b/packages/ckb-sdk-rpc/__tests__/ckb-rpc.test.js
index 294b41a8..69573751 100644
--- a/packages/ckb-sdk-rpc/__tests__/ckb-rpc.test.js
+++ b/packages/ckb-sdk-rpc/__tests__/ckb-rpc.test.js
@@ -197,6 +197,144 @@ describe('Test with mock', () => {
expect(res).toBeNull()
})
+ describe('get raw tx pool', () => {
+ it('verbose = true', async () => {
+ axiosMock.mockResolvedValue({
+ data: {
+ id,
+ jsonrpc: '2.0',
+ result: {
+ proposed: {
+ '0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0': {
+ ancestors_count: '0x1',
+ ancestors_cycles: '0x1a00e0',
+ ancestors_size: '0x1d0',
+ cycles: '0x1a00e0',
+ fee: '0x989680',
+ size: '0x1d0',
+ },
+ },
+ pending: {
+ '0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0': {
+ ancestors_count: '0x1',
+ ancestors_cycles: '0x1a00e0',
+ ancestors_size: '0x1d0',
+ cycles: '0x1a00e0',
+ fee: '0x989680',
+ size: '0x1d0',
+ },
+ },
+ },
+ },
+ })
+
+ const res = await rpc.getRawTxPool(true)
+ expect(axiosMock.mock.calls[0][0].data).toEqual({
+ id,
+ jsonrpc: '2.0',
+ method: 'get_raw_tx_pool',
+ params: [true],
+ })
+ expect(res).toEqual({
+ proposed: {
+ '0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0': {
+ ancestorsCount: '0x1',
+ ancestorsCycles: '0x1a00e0',
+ ancestorsSize: '0x1d0',
+ cycles: '0x1a00e0',
+ fee: '0x989680',
+ size: '0x1d0',
+ },
+ },
+ pending: {
+ '0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0': {
+ ancestorsCount: '0x1',
+ ancestorsCycles: '0x1a00e0',
+ ancestorsSize: '0x1d0',
+ cycles: '0x1a00e0',
+ fee: '0x989680',
+ size: '0x1d0',
+ },
+ },
+ })
+ })
+
+ it('verbose = false', async () => {
+ axiosMock.mockResolvedValue({
+ data: {
+ id,
+ jsonrpc: '2.0',
+ result: {
+ pending: ['0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0'],
+ proposed: [],
+ },
+ },
+ })
+
+ const res = await rpc.getRawTxPool(false)
+ expect(axiosMock.mock.calls[0][0].data).toEqual({
+ id,
+ jsonrpc: '2.0',
+ method: 'get_raw_tx_pool',
+ params: [false],
+ })
+ expect(res).toEqual({
+ pending: ['0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0'],
+ proposed: [],
+ })
+ })
+
+ it('verbose = null', async () => {
+ axiosMock.mockResolvedValue({
+ data: {
+ id,
+ jsonrpc: '2.0',
+ result: {
+ pending: ['0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0'],
+ proposed: [],
+ },
+ },
+ })
+
+ const res = await rpc.getRawTxPool(null)
+ expect(axiosMock.mock.calls[0][0].data).toEqual({
+ id,
+ jsonrpc: '2.0',
+ method: 'get_raw_tx_pool',
+ params: [null],
+ })
+ expect(res).toEqual({
+ pending: ['0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0'],
+ proposed: [],
+ })
+ })
+
+ it('verbose = undefined', async () => {
+ axiosMock.mockResolvedValue({
+ data: {
+ id,
+ jsonrpc: '2.0',
+ result: {
+ pending: ['0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0'],
+ proposed: [],
+ },
+ },
+ })
+
+ const res = await rpc.getRawTxPool()
+ expect(axiosMock.mock.calls[0][0].data).toEqual({
+ id,
+ jsonrpc: '2.0',
+ method: 'get_raw_tx_pool',
+ params: [],
+ })
+ expect(res).toEqual({
+ pending: ['0x272881d99bfa40ded47f408e1783ee15990b479ec462f11668cdd3445cc132b0'],
+ proposed: [],
+ })
+ })
+ })
+
it('get current epoch', async () => {
axiosMock.mockResolvedValue({
data: {
@@ -492,6 +630,74 @@ describe('Test with mock', () => {
})
expect(res).toEqual(['0xa4037a893eb48e18ed4ef61034ce26eba9c585f15c9cee102ae58505565eccc3'])
})
+
+ it('get consensus', async () => {
+ axiosMock.mockResolvedValue({
+ data: {
+ id,
+ jsonrpc: '2.0',
+ result: {
+ block_version: '0x0',
+ cellbase_maturity: '0x10000000000',
+ dao_type_hash: '0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e',
+ epoch_duration_target: '0x3840',
+ genesis_hash: '0xeaa2c979898f80a12404578a9e1332d45c8ff2bf665457b10f9934203f230780',
+ id: 'ckb_dev',
+ initial_primary_epoch_reward: '0xae6c73c3e070',
+ max_block_bytes: '0x91c08',
+ max_block_cycles: '0x2540be400',
+ max_block_proposals_limit: '0x5dc',
+ max_uncles_num: '0x2',
+ median_time_block_count: '0x25',
+ orphan_rate_target: { denom: '0x28', numer: '0x1' },
+ permanent_difficulty_in_dummy: true,
+ primary_epoch_reward_halving_interval: '0x2238',
+ proposer_reward_ratio: { denom: '0xa', numer: '0x4' },
+ secondary_epoch_reward: '0x37d0c8e28542',
+ secp256k1_blake160_multisig_all_type_hash:
+ '0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8',
+ secp256k1_blake160_sighash_all_type_hash:
+ '0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8',
+ tx_proposal_window: { closest: '0x2', farthest: '0xa' },
+ tx_version: '0x0',
+ type_id_code_hash: '0x00000000000000000000000000000000000000000000000000545950455f4944',
+ },
+ },
+ })
+
+ const res = await rpc.getConsensus()
+ expect(axiosMock.mock.calls[0][0].data).toEqual({
+ id,
+ jsonrpc: '2.0',
+ method: 'get_consensus',
+ params: [],
+ })
+ expect(res).toEqual({
+ blockVersion: '0x0',
+ cellbaseMaturity: '0x10000000000',
+ daoTypeHash: '0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e',
+ epochDurationTarget: '0x3840',
+ genesisHash: '0xeaa2c979898f80a12404578a9e1332d45c8ff2bf665457b10f9934203f230780',
+ id: 'ckb_dev',
+ initialPrimaryEpochReward: '0xae6c73c3e070',
+ maxBlockBytes: '0x91c08',
+ maxBlockCycles: '0x2540be400',
+ maxBlockProposalsLimit: '0x5dc',
+ maxUnclesNum: '0x2',
+ medianTimeBlockCount: '0x25',
+ orphanRateTarget: { denom: '0x28', numer: '0x1' },
+ permanentDifficultyInDummy: true,
+ primaryEpochRewardHalvingInterval: '0x2238',
+ proposerRewardRatio: { denom: '0xa', numer: '0x4' },
+ secondaryEpochReward: '0x37d0c8e28542',
+ secp256k1Blake160MultisigAllTypeHash: '0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8',
+ secp256k1Blake160SighashAllTypeHash: '0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8',
+ txProposalWindow: { closest: '0x2', farthest: '0xa' },
+ txVersion: '0x0',
+ typeIdCodeHash: '0x00000000000000000000000000000000000000000000000000545950455f4944',
+ })
+ })
+
it('get blockchain info', async () => {
axiosMock.mockResolvedValue({
data: {
diff --git a/packages/ckb-sdk-rpc/__tests__/formatters/result.fixtures.json b/packages/ckb-sdk-rpc/__tests__/formatters/result.fixtures.json
index 10b61ffc..54b8a28d 100644
--- a/packages/ckb-sdk-rpc/__tests__/formatters/result.fixtures.json
+++ b/packages/ckb-sdk-rpc/__tests__/formatters/result.fixtures.json
@@ -1471,5 +1471,135 @@
"witnessesRoot": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
}
+ ],
+ "toConsensus": [
+ {
+ "result": null,
+ "expected": null
+ },
+ {
+ "result": {
+ "block_version": "0x0",
+ "cellbase_maturity": "0x10000000000",
+ "dao_type_hash": null,
+ "epoch_duration_target": "0x3840",
+ "genesis_hash": "0x7978ec7ce5b507cfb52e149e36b1a23f6062ed150503c85bbf825da3599095ed",
+ "id": "main",
+ "initial_primary_epoch_reward": "0x71afd498d000",
+ "max_block_bytes": "0x91c08",
+ "max_block_cycles": "0xd09dc300",
+ "max_block_proposals_limit": "0x5dc",
+ "max_uncles_num": "0x2",
+ "median_time_block_count": "0x25",
+ "orphan_rate_target": {
+ "denom": "0x28",
+ "numer": "0x1"
+ },
+ "permanent_difficulty_in_dummy": false,
+ "primary_epoch_reward_halving_interval": "0x2238",
+ "proposer_reward_ratio": {
+ "denom": "0xa",
+ "numer": "0x4"
+ },
+ "secondary_epoch_reward": "0x37d0c8e28542",
+ "secp256k1_blake160_multisig_all_type_hash": null,
+ "secp256k1_blake160_sighash_all_type_hash": null,
+ "tx_proposal_window": {
+ "closest": "0x2",
+ "farthest": "0xa"
+ },
+ "tx_version": "0x0",
+ "type_id_code_hash": "0x00000000000000000000000000000000000000000000000000545950455f4944"
+ },
+ "expected": {
+ "blockVersion": "0x0",
+ "cellbaseMaturity": "0x10000000000",
+ "daoTypeHash": null,
+ "epochDurationTarget": "0x3840",
+ "genesisHash": "0x7978ec7ce5b507cfb52e149e36b1a23f6062ed150503c85bbf825da3599095ed",
+ "id": "main",
+ "initialPrimaryEpochReward": "0x71afd498d000",
+ "maxBlockBytes": "0x91c08",
+ "maxBlockCycles": "0xd09dc300",
+ "maxBlockProposalsLimit": "0x5dc",
+ "maxUnclesNum": "0x2",
+ "medianTimeBlockCount": "0x25",
+ "orphanRateTarget": {
+ "denom": "0x28",
+ "numer": "0x1"
+ },
+ "permanentDifficultyInDummy": false,
+ "primaryEpochRewardHalvingInterval": "0x2238",
+ "proposerRewardRatio": {
+ "denom": "0xa",
+ "numer": "0x4"
+ },
+ "secondaryEpochReward": "0x37d0c8e28542",
+ "secp256k1Blake160MultisigAllTypeHash": null,
+ "secp256k1Blake160SighashAllTypeHash": null,
+ "txProposalWindow": {
+ "closest": "0x2",
+ "farthest": "0xa"
+ },
+ "txVersion": "0x0",
+ "typeIdCodeHash": "0x00000000000000000000000000000000000000000000000000545950455f4944"
+ }
+ }
+ ],
+ "toRawTxPool": [
+ {
+ "result": null,
+ "expected": null
+ },
+ {
+ "result": { "proposed": ["proposed_1", "proposed_2"], "pending": ["pending_1", "pending_2"] },
+ "expected": { "proposed": ["proposed_1", "proposed_2"], "pending": ["pending_1", "pending_2"] }
+ },
+ {
+ "result": {
+ "pending": {
+ "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee": {
+ "cycles": "0x219eee",
+ "size": "0x112eee",
+ "fee": "0x16923f7dcfeee",
+ "ancestors_size": "0x112eee",
+ "ancestors_cycles": "0x219eee",
+ "ancestors_count": "0x1eee"
+ }
+ },
+ "proposed": {
+ "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff": {
+ "cycles": "0x219fff",
+ "size": "0x112fff",
+ "fee": "0x16923f7dcffff",
+ "ancestors_size": "0x112fff",
+ "ancestors_cycles": "0x219fff",
+ "ancestors_count": "0x1fff"
+ }
+ }
+ },
+ "expected": {
+ "pending": {
+ "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee": {
+ "cycles": "0x219eee",
+ "size": "0x112eee",
+ "fee": "0x16923f7dcfeee",
+ "ancestorsSize": "0x112eee",
+ "ancestorsCycles": "0x219eee",
+ "ancestorsCount": "0x1eee"
+ }
+ },
+ "proposed": {
+ "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff": {
+ "cycles": "0x219fff",
+ "size": "0x112fff",
+ "fee": "0x16923f7dcffff",
+ "ancestorsSize": "0x112fff",
+ "ancestorsCycles": "0x219fff",
+ "ancestorsCount": "0x1fff"
+ }
+ }
+ }
+ }
]
}
diff --git a/packages/ckb-sdk-rpc/package.json b/packages/ckb-sdk-rpc/package.json
index 81dcbe6f..5b230e9f 100644
--- a/packages/ckb-sdk-rpc/package.json
+++ b/packages/ckb-sdk-rpc/package.json
@@ -1,6 +1,6 @@
{
"name": "@nervosnetwork/ckb-sdk-rpc",
- "version": "0.38.2",
+ "version": "0.39.0",
"description": "RPC module of @nervosnetwork/ckb-sdk-core",
"author": "Nervos ",
"homepage": "https://github.com/nervosnetwork/ckb-sdk-js/packages/ckb-rpc#readme",
@@ -33,12 +33,12 @@
"url": "https://github.com/nervosnetwork/ckb-sdk-js/issues"
},
"dependencies": {
- "@nervosnetwork/ckb-sdk-utils": "0.38.2",
- "axios": "0.19.2",
+ "@nervosnetwork/ckb-sdk-utils": "0.39.0",
+ "axios": "0.21.1",
"tslib": "2.0.1"
},
"devDependencies": {
- "@nervosnetwork/ckb-types": "0.38.2"
+ "@nervosnetwork/ckb-types": "0.39.0"
},
- "gitHead": "919d9b9eeecca2e65e4e3fdb49763401a62a46bd"
+ "gitHead": "94af87551108a40f79c1cead0db5d3cc5c679302"
}
diff --git a/packages/ckb-sdk-rpc/src/Base/chain.ts b/packages/ckb-sdk-rpc/src/Base/chain.ts
index ceb6f598..56ed0fe8 100644
--- a/packages/ckb-sdk-rpc/src/Base/chain.ts
+++ b/packages/ckb-sdk-rpc/src/Base/chain.ts
@@ -89,4 +89,10 @@ export default {
method: 'verify_transaction_proof',
paramsFormatters: [paramsFmts.toTransactionProof],
},
+
+ getConsensus: {
+ method: 'get_consensus',
+ paramsFormatters: [],
+ resultFormatters: resultFmts.toConsensus,
+ },
}
diff --git a/packages/ckb-sdk-rpc/src/Base/index.ts b/packages/ckb-sdk-rpc/src/Base/index.ts
index 9a598eac..5f8857d2 100644
--- a/packages/ckb-sdk-rpc/src/Base/index.ts
+++ b/packages/ckb-sdk-rpc/src/Base/index.ts
@@ -78,7 +78,7 @@ export interface Base {
* @method getHeader
* @memberof DefaultRPC
* @description Returns the information about a block header by hash.
- * @params {string} block hash
+ * @params {Promise} block hash
*/
getHeader: (blockHash: CKBComponents.Hash) => Promise
@@ -86,7 +86,7 @@ export interface Base {
* @method getHeaderByNumber
* @memberof DefaultRPC
* @description Returns the information about a block header by block number
- * @params {string} block number
+ * @params {Promise} block number
*/
getHeaderByNumber: (blockNumber: CKBComponents.BlockNumber | bigint) => Promise
@@ -122,6 +122,8 @@ export interface Base {
* @description Returns each component of the created CKB in this block's cellbase, which is issued to
* a block N - 1 - ProposalWindow.farthest, where this block's height is N.
* @param {string} blockHash
+ *
+ * @deprecated will be removed from v0.40.0
*/
getCellbaseOutputCapacityDetails: (
blockHash: CKBComponents.Hash,
@@ -141,7 +143,7 @@ export interface Base {
* @memberof DefaultRPC
* @description request merkle proof that transactions are included in a block
* @param {Array} transactionHashes - transaction hashes, all transactions must be in the same block
- * @param {[string]} blockHash - if specified, looks for transactions in the block with this hash
+ * @param {Promise<[string]>} blockHash - if specified, looks for transactions in the block with this hash
*/
getTransactionProof: (
transactionHashes: CKBComponents.Hash[],
@@ -153,10 +155,18 @@ export interface Base {
* @memberof DefaultRPC
* @description verifies that a proof points to transactions in a block, returns transactions it commits to.
* @param {object} transactionProof
- * @returns {Array} hash list of transactions committed in the block
+ * @returns {Promise>} hash list of transactions committed in the block
*/
verifyTransactionProof: (transactionProof: CKBComponents.TransactionProof) => Promise
+ /**
+ * @method getConsensus
+ * @memberof DefaultRPC
+ * @description return various consensus parameters.
+ * @returns {Promise} consensus parameters
+ */
+ getConsensus: () => Promise
+
/**
* @method getBlockByNumber
* @memberof DefaultRPC
@@ -178,17 +188,11 @@ export interface Base {
*/
dryRunTransaction: (tx: CKBComponents.RawTransaction) => Promise
- // skip _compute_transaction_hash
-
calculateDaoMaximumWithdraw: (
outPoint: CKBComponents.OutPoint,
withdrawBlockHash: CKBComponents.Hash256,
) => Promise
- // skip estimate_fee_rate
-
- // skip _compute_script_hash
-
/* Indexer */
/**
@@ -285,6 +289,8 @@ export interface Base {
* @memberof DefaultRPC
* @description rpc to get connected peers info
* @return {Promise} peers' node info
+ *
+ * @deprecated will be removed from v0.40.0
*/
getPeers: () => Promise
@@ -402,6 +408,17 @@ export interface Base {
*/
clearTxPool: () => Promise
+ /**
+ * @method getRawTxPool
+ * @memberof DefaultRPC
+ * @param {boolean | null} verbose - true for a json object, false for array of transaction ids, default=false
+ * @description Returns all transaction ids in tx pool as a json array of string transaction ids.
+ * @return {Promise} CKBComponents.RawTxPool
+ */
+ getRawTxPool(): Promise
+ getRawTxPool(verbose: true): Promise
+ getRawTxPool(verbose: false | null): Promise
+
/* Stats */
/**
diff --git a/packages/ckb-sdk-rpc/src/Base/pool.ts b/packages/ckb-sdk-rpc/src/Base/pool.ts
index bdb46773..27be481a 100644
--- a/packages/ckb-sdk-rpc/src/Base/pool.ts
+++ b/packages/ckb-sdk-rpc/src/Base/pool.ts
@@ -18,4 +18,10 @@ export default {
method: 'clear_tx_pool',
paramsFormatters: [],
},
+
+ getRawTxPool: {
+ method: 'get_raw_tx_pool',
+ paramsFormatters: [],
+ resultFormatters: resultFmts.toRawTxPool,
+ },
}
diff --git a/packages/ckb-sdk-rpc/src/resultFormatter.ts b/packages/ckb-sdk-rpc/src/resultFormatter.ts
index 845b8b19..ad5848e1 100644
--- a/packages/ckb-sdk-rpc/src/resultFormatter.ts
+++ b/packages/ckb-sdk-rpc/src/resultFormatter.ts
@@ -1,3 +1,7 @@
+const isTxPoolIds = (rawTxPool: RPC.RawTxPool): rawTxPool is RPC.TxPoolIds => {
+ return Array.isArray(rawTxPool.pending)
+}
+
/* eslint-disable camelcase */
const formatter = {
toNumber: (number: RPC.BlockNumber): CKBComponents.BlockNumber => number.toString(),
@@ -379,6 +383,64 @@ const formatter = {
...rest,
}
},
+ toConsensus: (consensus: RPC.Consensus): CKBComponents.Consensus => {
+ if (!consensus) return consensus
+ return {
+ blockVersion: consensus.block_version,
+ cellbaseMaturity: consensus.cellbase_maturity,
+ daoTypeHash: consensus.dao_type_hash,
+ epochDurationTarget: consensus.epoch_duration_target,
+ genesisHash: consensus.genesis_hash,
+ id: consensus.id,
+ initialPrimaryEpochReward: consensus.initial_primary_epoch_reward,
+ maxBlockBytes: consensus.max_block_bytes,
+ maxBlockCycles: consensus.max_block_cycles,
+ maxBlockProposalsLimit: consensus.max_block_proposals_limit,
+ maxUnclesNum: consensus.max_uncles_num,
+ medianTimeBlockCount: consensus.median_time_block_count,
+ orphanRateTarget: consensus.orphan_rate_target,
+ permanentDifficultyInDummy: consensus.permanent_difficulty_in_dummy,
+ primaryEpochRewardHalvingInterval: consensus.primary_epoch_reward_halving_interval,
+ proposerRewardRatio: consensus.proposer_reward_ratio,
+ secondaryEpochReward: consensus.secondary_epoch_reward,
+ secp256k1Blake160MultisigAllTypeHash: consensus.secp256k1_blake160_multisig_all_type_hash,
+ secp256k1Blake160SighashAllTypeHash: consensus.secp256k1_blake160_sighash_all_type_hash,
+ txProposalWindow: consensus.tx_proposal_window,
+ txVersion: consensus.tx_version,
+ typeIdCodeHash: consensus.type_id_code_hash,
+ }
+ },
+ toRawTxPool: (rawTxPool: RPC.RawTxPool): CKBComponents.RawTxPool => {
+ if (!rawTxPool) return rawTxPool
+
+ if (isTxPoolIds(rawTxPool)) {
+ return rawTxPool
+ }
+
+ const toTxVerbosity = ({
+ ancestors_count: ancestorsCount,
+ ancestors_cycles: ancestorsCycles,
+ ancestors_size: ancestorsSize,
+ ...rest
+ }: RPC.TxVerbosity): CKBComponents.TxVerbosity => ({
+ ancestorsCount,
+ ancestorsCycles,
+ ancestorsSize,
+ ...rest,
+ })
+ const proposed: Record = {}
+ const pending: Record = {}
+
+ Object.keys(rawTxPool.proposed).forEach(hash => {
+ proposed[hash] = toTxVerbosity(rawTxPool.proposed[hash])
+ })
+
+ Object.keys(rawTxPool.pending).forEach(hash => {
+ pending[hash] = toTxVerbosity(rawTxPool.pending[hash])
+ })
+
+ return { proposed, pending }
+ },
}
export default formatter
diff --git a/packages/ckb-sdk-rpc/types/rpc/index.d.ts b/packages/ckb-sdk-rpc/types/rpc/index.d.ts
index 2cc4098a..9133b0ae 100644
--- a/packages/ckb-sdk-rpc/types/rpc/index.d.ts
+++ b/packages/ckb-sdk-rpc/types/rpc/index.d.ts
@@ -23,6 +23,9 @@ declare module RPC {
export type Difficulty = CKBComponents.Difficulty
export type Cycles = CKBComponents.Cycles
export type Size = CKBComponents.Size
+ export type RationalU256 = CKBComponents.RationalU256
+ export type ProposalWindow = CKBComponents.ProposalWindow
+ export type EpochNumberWithFraction = CKBComponents.EpochNumberWithFraction
enum TransactionStatus {
Pending = 'pending',
@@ -292,5 +295,45 @@ declare module RPC {
}
witnesses_root: Hash
}
+
+ export type TxPoolIds = Record<'pending' | 'proposed', Array>
+
+ export interface TxVerbosity {
+ cycles: Cycles
+ size: Size
+ fee: Capacity
+ ancestors_size: Size
+ ancestors_cycles: Cycles
+ ancestors_count: Count
+ }
+
+ export type TxPoolVerbosity = Record<'pending' | 'proposed', Record>
+
+ export type RawTxPool = TxPoolIds | TxPoolVerbosity
+
+ export interface Consensus {
+ id: string
+ genesis_hash: Hash256
+ dao_type_hash: Hash256 | null
+ secp256k1_blake160_sighash_all_type_hash: Hash256 | null
+ secp256k1_blake160_multisig_all_type_hash: Hash256 | null
+ initial_primary_epoch_reward: Capacity
+ secondary_epoch_reward: Capacity
+ max_uncles_num: string
+ orphan_rate_target: RationalU256
+ epoch_duration_target: string
+ tx_proposal_window: ProposalWindow
+ proposer_reward_ratio: RationalU256
+ cellbase_maturity: EpochNumberWithFraction
+ median_time_block_count: Count
+ max_block_cycles: Cycles
+ max_block_bytes: string
+ block_version: Version
+ tx_version: Version
+ type_id_code_hash: Hash256
+ max_block_proposals_limit: string
+ primary_epoch_reward_halving_interval: string
+ permanent_difficulty_in_dummy: boolean
+ }
}
/* eslint-enable camelcase */
diff --git a/packages/ckb-sdk-utils/CHANGELOG.md b/packages/ckb-sdk-utils/CHANGELOG.md
index 58a93483..c430f771 100644
--- a/packages/ckb-sdk-utils/CHANGELOG.md
+++ b/packages/ckb-sdk-utils/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.39.0](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.2...v0.39.0) (2021-01-13)
+
+**Note:** Version bump only for package @nervosnetwork/ckb-sdk-utils
+
+
+
+
+
## [0.38.2](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.1...v0.38.2) (2020-11-30)
**Note:** Version bump only for package @nervosnetwork/ckb-sdk-utils
diff --git a/packages/ckb-sdk-utils/README.md b/packages/ckb-sdk-utils/README.md
index ffb5dc7f..21fffeee 100644
--- a/packages/ckb-sdk-utils/README.md
+++ b/packages/ckb-sdk-utils/README.md
@@ -3,3 +3,201 @@
`@nervosnetwork/ckb-sdk-utils` is the utils module of `@nervosnetwork/ckb-sdk-core`, which provides necessary methods for the sdk, including encryption, key-pair generation, address generation and so on.
See [Full Doc](https://github.com/nervosnetwork/ckb-sdk-js/blob/develop/README.md)
+
+## Most Used Utilities
+
+- [Address](#address)
+
+ - `utils.AddressPrefix`
+ - `utils.AddressType`
+ - `utils.privateKeyToAddress`: get address from private key
+ - `utils.pubkeyToAddress`: get address from public key
+ - `utils.bech32Address`: args to short/full version address
+ - `utils.fullPayloadToAddress`: script to full version address
+ - `utils.parseAddress`: get address payload
+ - `utils.addressToScript`: get lock script from address
+
+- [Utils](#utils)
+
+ - `utils.blake160`
+ - `utils.bytesToHex`
+ - `utils.hexToBytes`
+ - `utils.toUint16Le`
+ - `utils.toUint32Le`
+ - `utils.toUint64Le`
+
+- [System Scripts](#system-scripts)
+
+### Address
+
+```js
+/**
+ * @description address prefix
+ * @see https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0021-ckb-address-format/0021-ckb-address-format.md#wrap-to-address
+ */
+utils.AddressPrefix
+// {
+// Mainnet: 'ckb', // mainnet prefix
+// Testnet: 'ckt', // testnet prefix
+// }
+```
+
+```js
+/**
+ * @description address payload format types
+ * @see https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0021-ckb-address-format/0021-ckb-address-format.md#payload-format-types
+ */
+utils.AddressType
+// {
+// HashIdx: '0x01', // short version address
+// DataCodeHash: '0x02', // full version address with hash type = 'data'
+// TypeCodeHash: '0x04', // full version address with hash type = 'type'
+// }
+```
+
+```js
+/**
+ * @description get short version address by private key
+ */
+utils.privateKeyToAddress('0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', {
+ prefix: utils.AddressPrefix.Mainnet, // prefix is optional, default to 'ckb'
+})
+// ckb1qyqw975zuu9svtyxgjuq44lv7mspte0n2tmqqm3w53
+```
+
+```js
+/**
+ * @description get short version address by public key
+ */
+utils.pubkeyToAddress('0x024a501efd328e062c8675f2365970728c859c592beeefd6be8ead3d901330bc01', {
+ prefix: utils.AddressPrefix.Testnet,
+})
+// ckt1qyqrdsefa43s6m882pcj53m4gdnj4k440axqswmu83
+```
+
+```js
+/**
+ * @description get short/full version address from args
+ */
+utils.bech32Address('0x36c329ed630d6ce750712a477543672adab57f4c', {
+ prefix: utils.AddressPrefix.Mainnet,
+ type: utils.AddressType.HashIdx,
+ codeHashOrCodeHashIndex: '0x00',
+})
+// ckb1qyqrdsefa43s6m882pcj53m4gdnj4k440axqdt9rtd
+```
+
+```js
+/**
+ * @description get full version address by a lock script
+ * @params args - lock.args
+ * @params type - utils.AddressType.DataCodeHash if lock.hash_type = 'data'
+ * otherwise utils.AddressType.TypeCodeHash
+ * @params prefix - utils.AddressPrefix.Mainnet or utils.AddressPrefix.Testnet
+ * @params codeHash - lock.code_hash
+ */
+utils.fullPayloadToAddress({
+ args: '0x36c329ed630d6ce750712a477543672adab57f4c',
+ type: utils.AddressType.DataCodeHash,
+ prefix: utils.AddressPrefix.Testnet,
+ codeHash: '0xa656f172b6b45c245307aeb5a7a37a176f002f6f22e92582c58bf7ba362e4176',
+})
+// ckt1q2n9dutjk669cfznq7httfar0gtk7qp0du3wjfvzck9l0w3k9eqhvdkr98kkxrtvuag8z2j8w4pkw2k6k4l5czshhac
+```
+
+```js
+/**
+ * @description parse short version address
+ * the returned value is `type | index | args`,
+ * in this case `01 | 00 | 36...4c`
+ */
+utils.parseAddress('ckt1qyqrdsefa43s6m882pcj53m4gdnj4k440axqswmu83', 'hex')
+// 0x010036c329ed630d6ce750712a477543672adab57f4c
+
+/**
+ * @description parse full version address
+ * the returned value is ` type | code hash | args`
+ * in this case `02 | 9b...e8 | b3...64`
+ */
+utils.parseAddress(
+ 'ckb1q2da0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxgdwd2q8',
+ 'hex',
+)
+// 0x029bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8b39bbc0b3673c7d36450bc14cfcdad2d559c6c64
+```
+
+```js
+/**
+ * @description restore lock script from a short version address
+ */
+utils.addressToScript('ckt1qyqrdsefa43s6m882pcj53m4gdnj4k440axqswmu83')
+// {
+// codeHash: '0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8',
+// hashType: 'type',
+// args: '0x36c329ed630d6ce750712a477543672adab57f4c'
+// }
+
+/**
+ * @description restore lock script from a full version address
+ */
+utils.addressToScript('ckb1qsvf96jqmq4483ncl7yrzfzshwchu9jd0glq4yy5r2jcsw04d7xlydkr98kkxrtvuag8z2j8w4pkw2k6k4l5czfy37k')
+// {
+// codeHash: '0x1892ea40d82b53c678ff88312450bbb17e164d7a3e0a90941aa58839f56f8df2',
+// hashType: 'type',
+// args: '0x36c329ed630d6ce750712a477543672adab57f4c'
+// }
+```
+
+### Utils
+
+```plain
+/**
+ * @description get the blake160 digest of a message
+ */
+utils.blake160(
+ new Uint8Array([ 2, 74, 80, 30, 253, 50, 142, 6, 44, 134, 117, 242, 54, 89, 112, 114, 140, 133, 156, 89, 43, 238, 239, 214, 190, 142, 173, 61, 144, 19, 48, 188, 1]),
+ 'hex',
+)
+// 36c329ed630d6ce750712a477543672adab57f4c
+```
+
+```js
+utils.bytesToHex(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]))
+// 0x48656c6c6f20576f726c64
+utils.hexToBytes('0x48656c6c6f20576f726c64')
+// Uint8Array [ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 ]
+utils.toUint16Le('0xbcd')
+// 0xcd0b
+utils.toUint32Le('0x123456')
+// 0x56341200
+utils.toUint64Le('0x1234567890abcdef')
+// 0xefcdab9078563412
+```
+
+```js
+utils.parseEpoch('0x2003e80010000200')
+// { length: '0x3e8', index: '0x10', number: '0x200' }
+utils.serializeEpoch({ length: '0x3e8', index: '0x10', number: '0x200' })
+// 0x2003e80010000200
+```
+
+```js
+utils.rawTransactionToHash(rawTx)
+// tx hash
+```
+
+```js
+/**
+ * @description get hash of a script
+ */
+utils.scriptToHash({
+ codeHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
+ args: '0x01',
+ hashType: 'type',
+})
+// 0xd39f84d4702f53cf8625da4411be1640b961715cb36816501798fedb70b6e0fb
+```
+
+### System Scripts
+
+[System Scripts](https://github.com/nervosnetwork/ckb-sdk-js/blob/develop/packages/ckb-sdk-utils/src/systemScripts.ts)
diff --git a/packages/ckb-sdk-utils/package.json b/packages/ckb-sdk-utils/package.json
index f083f885..fbbbd6ee 100644
--- a/packages/ckb-sdk-utils/package.json
+++ b/packages/ckb-sdk-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@nervosnetwork/ckb-sdk-utils",
- "version": "0.38.2",
+ "version": "0.39.0",
"description": "Utils module of @nervosnetwork/ckb-sdk-core",
"author": "Nervos ",
"homepage": "https://github.com/nervosnetwork/ckb-sdk-js#readme",
@@ -31,7 +31,7 @@
"url": "https://github.com/nervosnetwork/ckb-sdk-js/issues"
},
"dependencies": {
- "@nervosnetwork/ckb-types": "0.38.2",
+ "@nervosnetwork/ckb-types": "0.39.0",
"elliptic": "6.5.3",
"jsbi": "3.1.3",
"tslib": "2.0.1"
@@ -40,5 +40,5 @@
"@types/bitcoinjs-lib": "5.0.0",
"@types/elliptic": "6.4.12"
},
- "gitHead": "919d9b9eeecca2e65e4e3fdb49763401a62a46bd"
+ "gitHead": "94af87551108a40f79c1cead0db5d3cc5c679302"
}
diff --git a/packages/ckb-sdk-utils/src/address/index.ts b/packages/ckb-sdk-utils/src/address/index.ts
index a6163c9b..f00dc8c9 100644
--- a/packages/ckb-sdk-utils/src/address/index.ts
+++ b/packages/ckb-sdk-utils/src/address/index.ts
@@ -14,7 +14,6 @@ export enum AddressPrefix {
}
export enum AddressType {
- BinHash = '0x00',
HashIdx = '0x01', // short version for locks with popular codehash
DataCodeHash = '0x02', // full version with hash type 'Data'
TypeCodeHash = '0x04', // full version with hash type 'Type'
diff --git a/packages/ckb-types/CHANGELOG.md b/packages/ckb-types/CHANGELOG.md
index 48625667..3a9d8fe0 100644
--- a/packages/ckb-types/CHANGELOG.md
+++ b/packages/ckb-types/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.39.0](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.2...v0.39.0) (2021-01-13)
+
+**Note:** Version bump only for package @nervosnetwork/ckb-types
+
+
+
+
+
## [0.38.2](https://github.com/nervosnetwork/ckb-sdk-js/compare/v0.38.1...v0.38.2) (2020-11-30)
**Note:** Version bump only for package @nervosnetwork/ckb-types
diff --git a/packages/ckb-types/index.d.ts b/packages/ckb-types/index.d.ts
index cb886310..fd627578 100644
--- a/packages/ckb-types/index.d.ts
+++ b/packages/ckb-types/index.d.ts
@@ -21,6 +21,9 @@ declare namespace CKBComponents {
export type Cycles = string
export type Size = string
export type OutputsValidator = 'default' | 'passthrough' | undefined
+ export type RationalU256 = Record<'denom' | 'numer', string>
+ export type ProposalWindow = Record<'closest' | 'farthest', BlockNumber>
+ export type EpochNumberWithFraction = string
export enum TransactionStatus {
Pending = 'pending',
Proposed = 'proposed',
@@ -452,4 +455,44 @@ declare namespace CKBComponents {
}
witnessesRoot: Hash
}
+
+ export type TxPoolIds = Record<'pending' | 'proposed', Array>
+
+ export interface TxVerbosity {
+ cycles: Cycles
+ size: Size
+ fee: Capacity
+ ancestorsSize: Size
+ ancestorsCycles: Cycles
+ ancestorsCount: Count
+ }
+
+ export type TxPoolVerbosity = Record<'pending' | 'proposed', Record>
+
+ export type RawTxPool = TxPoolIds | TxPoolVerbosity
+
+ export interface Consensus {
+ id: string
+ genesisHash: Hash256
+ daoTypeHash: Hash256 | null
+ secp256k1Blake160SighashAllTypeHash: Hash256 | null
+ secp256k1Blake160MultisigAllTypeHash: Hash256 | null
+ initialPrimaryEpochReward: Capacity
+ secondaryEpochReward: Capacity
+ maxUnclesNum: string
+ orphanRateTarget: RationalU256
+ epochDurationTarget: string
+ txProposalWindow: ProposalWindow
+ proposerRewardRatio: RationalU256
+ cellbaseMaturity: EpochNumberWithFraction
+ medianTimeBlockCount: Count
+ maxBlockCycles: Cycles
+ maxBlockBytes: string
+ blockVersion: Version
+ txVersion: Version
+ typeIdCodeHash: Hash256
+ maxBlockProposalsLimit: string
+ primaryEpochRewardHalvingInterval: string
+ permanentDifficultyInDummy: boolean
+ }
}
diff --git a/packages/ckb-types/package.json b/packages/ckb-types/package.json
index 97e9f690..b767aeec 100644
--- a/packages/ckb-types/package.json
+++ b/packages/ckb-types/package.json
@@ -1,6 +1,6 @@
{
"name": "@nervosnetwork/ckb-types",
- "version": "0.38.2",
+ "version": "0.39.0",
"description": "Type module of @nervosnetwork/ckb-sdk-core",
"author": "Nervos ",
"homepage": "https://github.com/nervosnetwork/ckb-sdk-js#readme",
@@ -23,5 +23,5 @@
"scripts": {
"doc": "../../node_modules/.bin/typedoc --out docs ./index.d.ts --mode modules --includeDeclarations --excludeExternals --ignoreCompilerErrors --theme default --readme README.md"
},
- "gitHead": "919d9b9eeecca2e65e4e3fdb49763401a62a46bd"
+ "gitHead": "94af87551108a40f79c1cead0db5d3cc5c679302"
}
diff --git a/yarn.lock b/yarn.lock
index 826b6c70..a1c9dafd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1979,12 +1979,12 @@ aws4@^1.8.0:
resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428"
integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==
-axios@0.19.2:
- version "0.19.2"
- resolved "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
- integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
+axios@0.21.1:
+ version "0.21.1"
+ resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
+ integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
dependencies:
- follow-redirects "1.5.10"
+ follow-redirects "^1.10.0"
babel-jest@^26.5.2:
version "26.5.2"
@@ -2990,7 +2990,7 @@ dateformat@^3.0.0:
resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
-debug@3.1.0, debug@=3.1.0:
+debug@3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
@@ -3844,12 +3844,10 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
-follow-redirects@1.5.10:
- version "1.5.10"
- resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
- integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
- dependencies:
- debug "=3.1.0"
+follow-redirects@^1.10.0:
+ version "1.13.1"
+ resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7"
+ integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==
for-in@^1.0.2:
version "1.0.2"
@@ -4182,7 +4180,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6
growly@^1.3.0:
version "1.3.0"
- resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
+ resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
handlebars@^4.7.6:
@@ -4291,9 +4289,9 @@ hash.js@^1.0.0, hash.js@^1.0.3:
minimalistic-assert "^1.0.1"
highlight.js@^10.0.0:
- version "10.2.1"
- resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.2.1.tgz#09784fe2e95612abbefd510948945d4fe6fa9668"
- integrity sha512-A+sckVPIb9zQTUydC9lpRX1qRFO/N0OKEh0NwIr65ckvWA/oMY8v9P3+kGRK3w2ULSh9E8v5MszXafodQ6039g==
+ version "10.4.1"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.4.1.tgz#d48fbcf4a9971c4361b3f95f302747afe19dbad0"
+ integrity sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==
hmac-drbg@^1.0.0:
version "1.0.1"
@@ -4495,9 +4493,9 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
- version "1.3.5"
- resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
- integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
+ integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
iniparser@~1.0.5:
version "1.0.5"
@@ -4670,7 +4668,7 @@ is-directory@^0.3.1:
is-docker@^2.0.0:
version "2.1.1"
- resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
is-extendable@^0.1.0, is-extendable@^0.1.1:
@@ -4845,7 +4843,7 @@ is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2:
is-wsl@^2.2.0:
version "2.2.0"
- resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
dependencies:
is-docker "^2.0.0"
@@ -4857,7 +4855,7 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
isexe@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
isobject@^2.0.0:
@@ -5706,6 +5704,13 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
lunr@^2.3.8:
version "2.3.9"
resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
@@ -6196,9 +6201,9 @@ node-modules-regexp@^1.0.0:
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
node-notifier@^8.0.0:
- version "8.0.0"
- resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620"
- integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1"
+ integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==
dependencies:
growly "^1.3.0"
is-wsl "^2.2.0"
@@ -7465,9 +7470,11 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.2.1, semver@^7.3.2:
- version "7.3.2"
- resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
- integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
+ integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+ dependencies:
+ lru-cache "^6.0.0"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@@ -7534,7 +7541,7 @@ shelljs@^0.8.4:
shellwords@^0.1.1:
version "0.1.1"
- resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
signal-exit@^3.0.0, signal-exit@^3.0.2:
@@ -8485,9 +8492,9 @@ uuid@^3.0.1, uuid@^3.3.2:
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.3.0:
- version "8.3.1"
- resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31"
- integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v8-compile-cache@^2.0.3:
version "2.1.1"
@@ -8788,6 +8795,11 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
yaml@^1.10.0, yaml@^1.7.2:
version "1.10.0"
resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"