From 94fbf25a1ef27d5301aa808565706da1aa5968af Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Tue, 11 Jul 2023 13:58:46 +0200 Subject: [PATCH 01/38] Bump version, updated upstream dependency versions, updated README (RLP) --- packages/block/package.json | 2 +- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/devp2p/package.json | 2 +- packages/ethash/package.json | 2 +- packages/rlp/README.md | 16 ---------------- packages/rlp/package.json | 2 +- packages/statemanager/package.json | 2 +- packages/trie/package.json | 2 +- packages/tx/package.json | 2 +- packages/util/package.json | 2 +- packages/vm/package.json | 2 +- 13 files changed, 12 insertions(+), 28 deletions(-) diff --git a/packages/block/package.json b/packages/block/package.json index 0172d0da2b..161d45a6d6 100644 --- a/packages/block/package.json +++ b/packages/block/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "^8.0.6", diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index 071b36a45c..ef379c68b5 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -48,7 +48,7 @@ "@ethereumjs/block": "^4.2.2", "@ethereumjs/common": "^3.1.2", "@ethereumjs/ethash": "^2.0.5", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "^8.0.6", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 60dfd026c7..654d326d51 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -63,7 +63,7 @@ "@ethereumjs/devp2p": "5.1.2", "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", - "@ethereumjs/rlp": "4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "5.0.5", "@ethereumjs/tx": "4.1.2", diff --git a/packages/client/package.json b/packages/client/package.json index 7e94b4e611..9fdf013236 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -64,7 +64,7 @@ "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", "@ethereumjs/genesis": "0.0.1", - "@ethereumjs/rlp": "4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "5.0.5", "@ethereumjs/tx": "4.1.2", diff --git a/packages/devp2p/package.json b/packages/devp2p/package.json index a0f72bf9a1..310feff96a 100644 --- a/packages/devp2p/package.json +++ b/packages/devp2p/package.json @@ -57,7 +57,7 @@ }, "dependencies": { "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "^8.0.6", "@scure/base": "1.1.1", "debug": "^4.3.3", diff --git a/packages/ethash/package.json b/packages/ethash/package.json index 35569a032d..86e005bf57 100644 --- a/packages/ethash/package.json +++ b/packages/ethash/package.json @@ -45,7 +45,7 @@ }, "dependencies": { "@ethereumjs/block": "^4.2.2", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "^8.0.6", "bigint-crypto-utils": "^3.2.2", "ethereum-cryptography": "^2.1.2" diff --git a/packages/rlp/README.md b/packages/rlp/README.md index 87b9dfa3f6..6a536486c4 100644 --- a/packages/rlp/README.md +++ b/packages/rlp/README.md @@ -71,22 +71,6 @@ Please note that number-related API signatures have changed along with this vers - `rlp encode '["cat", "dog"]'` -> `0xc88363617483646f67` - `rlp decode 0xc88363617483646f67` -> `["cat","dog"]` -## Tests - -Tests use mocha. - -To run tests and linting: `npm test` - -To auto-fix linting problems run: `npm run lint:fix` - -## Code Coverage - -Install dev dependencies: `npm install` - -Run coverage: `npm run coverage` - -The results will be at: `coverage/lcov-report/index.html` - ## EthereumJS See our organizational [documentation](https://ethereumjs.readthedocs.io) for an introduction to `EthereumJS` as well as information on current standards and best practices. If you want to join for work or carry out improvements on the libraries, please review our [contribution guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html) first. diff --git a/packages/rlp/package.json b/packages/rlp/package.json index 98c7f654fa..1ed17f108f 100644 --- a/packages/rlp/package.json +++ b/packages/rlp/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/rlp", - "version": "4.0.1", + "version": "5.0.0-rc.1", "description": "Recursive Length Prefix Encoding Module", "keywords": [ "rlp", diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index d1b1a51600..765d369c51 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -49,7 +49,7 @@ }, "dependencies": { "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", "ethers": "^6.4.0", diff --git a/packages/trie/package.json b/packages/trie/package.json index bfffd0c064..79dc7d274b 100644 --- a/packages/trie/package.json +++ b/packages/trie/package.json @@ -52,7 +52,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "^8.0.6", "@types/readable-stream": "^2.3.13", "lru-cache": "^10.0.0", diff --git a/packages/tx/package.json b/packages/tx/package.json index 805ff59046..22c47f2fb6 100644 --- a/packages/tx/package.json +++ b/packages/tx/package.json @@ -57,7 +57,7 @@ }, "dependencies": { "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "^8.0.6", "ethereum-cryptography": "^2.1.2" }, diff --git a/packages/util/package.json b/packages/util/package.json index fc8ba3441f..91b8502292 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -90,7 +90,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "ethereum-cryptography": "^2.1.2" }, "devDependencies": { diff --git a/packages/vm/package.json b/packages/vm/package.json index 55ef01c765..b1661630f7 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -66,7 +66,7 @@ "@ethereumjs/blockchain": "^6.2.2", "@ethereumjs/common": "^3.1.2", "@ethereumjs/evm": "^1.3.2", - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "^1.0.5", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", From e87c733ec0a9b13d2aa951c91ae581d24c85e3f5 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Tue, 11 Jul 2023 14:00:06 +0200 Subject: [PATCH 02/38] Update release date to 2023-07-13 --- packages/block/CHANGELOG.md | 2 +- packages/blockchain/CHANGELOG.md | 2 +- packages/common/CHANGELOG.md | 2 +- packages/ethash/CHANGELOG.md | 2 +- packages/evm/CHANGELOG.md | 2 +- packages/genesis/CHANGELOG.md | 2 +- packages/rlp/CHANGELOG.md | 2 +- packages/statemanager/CHANGELOG.md | 2 +- packages/trie/CHANGELOG.md | 2 +- packages/tx/CHANGELOG.md | 2 +- packages/util/CHANGELOG.md | 2 +- packages/vm/CHANGELOG.md | 2 +- packages/wallet/CHANGELOG.md | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/block/CHANGELOG.md b/packages/block/CHANGELOG.md index 9ca9531c3e..b4aec813e7 100644 --- a/packages/block/CHANGELOG.md +++ b/packages/block/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 5.0.0-rc.1 - 2023-07-11 +## 5.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/blockchain/CHANGELOG.md b/packages/blockchain/CHANGELOG.md index d8149b6055..45b65c9269 100644 --- a/packages/blockchain/CHANGELOG.md +++ b/packages/blockchain/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 7.0.0-rc.1 - 2023-07-11 +## 7.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 7a72d86e4e..1688c40d91 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 4.0.0-rc.1 - 2023-07-11 +## 4.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/ethash/CHANGELOG.md b/packages/ethash/CHANGELOG.md index fe7155596a..e799e87439 100644 --- a/packages/ethash/CHANGELOG.md +++ b/packages/ethash/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 3.0.0-rc.1 - 2023-07-11 +## 3.0.0-rc.1 - 2023-07-13 ### Hybrid CJS/ESM Build diff --git a/packages/evm/CHANGELOG.md b/packages/evm/CHANGELOG.md index f671dfcc24..08779c4813 100644 --- a/packages/evm/CHANGELOG.md +++ b/packages/evm/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 2.0.0-rc.1 - 2023-07-11 +## 2.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/genesis/CHANGELOG.md b/packages/genesis/CHANGELOG.md index 4a41d0b44b..7ed5eb9c1a 100644 --- a/packages/genesis/CHANGELOG.md +++ b/packages/genesis/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 0.1.0-rc.1 - 2023-07-11 +## 0.1.0-rc.1 - 2023-07-13 Initial release. diff --git a/packages/rlp/CHANGELOG.md b/packages/rlp/CHANGELOG.md index 9d5ce43ad9..3096399aaf 100644 --- a/packages/rlp/CHANGELOG.md +++ b/packages/rlp/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 5.0.0-rc.1 - 2023-07-04 +## 5.0.0-rc.1 - 2023-07-13 ### Hybrid CJS/ESM Build diff --git a/packages/statemanager/CHANGELOG.md b/packages/statemanager/CHANGELOG.md index 4b4b283d7f..b1fa4435b4 100644 --- a/packages/statemanager/CHANGELOG.md +++ b/packages/statemanager/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 2.0.0-rc.1 - 2023-07-11 +## 2.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/trie/CHANGELOG.md b/packages/trie/CHANGELOG.md index 04f617bcf0..a17bc1d8c2 100644 --- a/packages/trie/CHANGELOG.md +++ b/packages/trie/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 6.0.0-rc.1 - 2023-07-11 +## 6.0.0-rc.1 - 2023-07-13 ### New Trie Node Cache diff --git a/packages/tx/CHANGELOG.md b/packages/tx/CHANGELOG.md index 5872af3048..2b6ed4f499 100644 --- a/packages/tx/CHANGELOG.md +++ b/packages/tx/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 5.0.0-rc.1 - 2023-07-11 +## 5.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/util/CHANGELOG.md b/packages/util/CHANGELOG.md index fb5a2c4f65..759f16cdac 100644 --- a/packages/util/CHANGELOG.md +++ b/packages/util/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 9.0.0-rc.1 - 2023-07-11 +## 9.0.0-rc.1 - 2023-07-13 ### Hybrid CJS/ESM Build diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index eae0aa6bf5..0e47a83e33 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 7.0.0-rc.1 - 2023-07-11 +## 7.0.0-rc.1 - 2023-07-13 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/wallet/CHANGELOG.md b/packages/wallet/CHANGELOG.md index 28718580db..7610b83eb6 100644 --- a/packages/wallet/CHANGELOG.md +++ b/packages/wallet/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 2.0.0-rc.1 - 2023-07-11 +## 2.0.0-rc.1 - 2023-07-13 ### New Package Name and General Library Update From e709636db8a0252884b4acf8ac9c85e6c68b4b4b Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Tue, 11 Jul 2023 14:12:15 +0200 Subject: [PATCH 03/38] Add generic Buffer -> Uint8Array README section --- packages/block/README.md | 6 ++++++ packages/blockchain/README.md | 6 ++++++ packages/common/README.md | 6 ++++++ packages/devp2p/README.md | 8 +++++++- packages/ethash/README.md | 6 ++++++ packages/evm/README.md | 6 ++++++ packages/rlp/README.md | 6 ++++++ packages/statemanager/README.md | 6 ++++++ packages/trie/README.md | 6 ++++++ packages/tx/README.md | 6 ++++++ packages/util/README.md | 6 ++++++ packages/vm/README.md | 6 ++++++ 12 files changed, 73 insertions(+), 1 deletion(-) diff --git a/packages/block/README.md b/packages/block/README.md index 31f5781b53..32fd20af98 100644 --- a/packages/block/README.md +++ b/packages/block/README.md @@ -236,6 +236,12 @@ const block = Block.fromBlockData( Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v4 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/blockchain/README.md b/packages/blockchain/README.md index d6642a5ed8..59dd6b4a09 100644 --- a/packages/blockchain/README.md +++ b/packages/blockchain/README.md @@ -118,6 +118,12 @@ The blockchain library now allows for blob transactions to be validated and incl Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v6 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/common/README.md b/packages/common/README.md index cbbce5ec29..608e7bf70a 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -80,6 +80,12 @@ to ease `blockNumber` based access to parameters. Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v4 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/devp2p/README.md b/packages/devp2p/README.md index 2458cfb153..29c236d089 100644 --- a/packages/devp2p/README.md +++ b/packages/devp2p/README.md @@ -342,7 +342,13 @@ Send initial status message. - `reqId` - Request ID, will be echoed back on response. - `payload` - Payload as a list, will be rlp-encoded. -#### BigInt Support +#### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + +### BigInt Support Starting with v4 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/ethash/README.md b/packages/ethash/README.md index e7003ac2f4..6ee3e97004 100644 --- a/packages/ethash/README.md +++ b/packages/ethash/README.md @@ -72,6 +72,12 @@ const solution = await miner.iterate(-1) // iterate until solution is found Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v2 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/evm/README.md b/packages/evm/README.md index 7cbafdc789..0a32bcfb8f 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -87,6 +87,12 @@ All of the examples have their own `README.md` explaining how to run them. For documentation on `EVM` instantiation, exposed API and emitted `events` see generated [API docs](./docs/README.md). +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v1 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/rlp/README.md b/packages/rlp/README.md index 6a536486c4..075953131c 100644 --- a/packages/rlp/README.md +++ b/packages/rlp/README.md @@ -53,6 +53,12 @@ const decodedAsBuffers = arrToBufArr(decoded) assert.deepEqual(bufferList, decodedAsBuffers) ``` +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v4 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/statemanager/README.md b/packages/statemanager/README.md index 7ac71ef8fc..400c0225b1 100644 --- a/packages/statemanager/README.md +++ b/packages/statemanager/README.md @@ -92,6 +92,12 @@ Refer to [this test script](./test/ethersStateManager.spec.ts) for complete exam Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v1 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/trie/README.md b/packages/trie/README.md index 27f77b7c98..fcac5a480b 100644 --- a/packages/trie/README.md +++ b/packages/trie/README.md @@ -253,6 +253,12 @@ You can find additional examples complete with detailed explanations [here](./ex Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support With the 5.0.0 release, [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) takes the place of [BN.js](https://github.com/indutny/bn.js/). diff --git a/packages/tx/README.md b/packages/tx/README.md index 26ffe5a7f9..dc8844fb16 100644 --- a/packages/tx/README.md +++ b/packages/tx/README.md @@ -415,6 +415,12 @@ _getFakeTransaction(txParams: TxParams): Transaction { Generated TypeDoc API [Documentation](./docs/README.md) +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v4 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/util/README.md b/packages/util/README.md index cd1c92ba8a..04f1f531a3 100644 --- a/packages/util/README.md +++ b/packages/util/README.md @@ -114,6 +114,12 @@ Helper methods can be imported like this: import { hexToBytes } from '@ethereumjs/util' ``` +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with Util v8 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). diff --git a/packages/vm/README.md b/packages/vm/README.md index 80fdb7eea2..7e881edc0a 100644 --- a/packages/vm/README.md +++ b/packages/vm/README.md @@ -94,6 +94,12 @@ All of the examples have their own `README.md` explaining how to run them. For documentation on `VM` instantiation, exposed API and emitted `events` see generated [API docs](./docs/README.md). +### Buffer -> Uint8Array + +With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). + +We have converted existing Buffer conversion methods to Uint8Array conversion methods in the [@ethereumjs/util](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util) `bytes` module, see the respective README section for guidance. + ### BigInt Support Starting with v6 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`). From 310e3dccf7ded087abc9a4159a6d1df776eee591 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Tue, 11 Jul 2023 14:20:07 +0200 Subject: [PATCH 04/38] Add generic README unreleased note --- packages/block/README.md | 2 ++ packages/blockchain/README.md | 2 ++ packages/client/README.md | 2 ++ packages/common/README.md | 2 ++ packages/devp2p/README.md | 2 ++ packages/ethash/README.md | 2 ++ packages/evm/README.md | 2 ++ packages/rlp/README.md | 2 ++ packages/statemanager/README.md | 2 ++ packages/trie/README.md | 2 ++ packages/tx/README.md | 2 ++ packages/util/README.md | 2 ++ packages/vm/README.md | 2 ++ packages/wallet/README.md | 2 ++ 14 files changed, 28 insertions(+) diff --git a/packages/block/README.md b/packages/block/README.md index 32fd20af98..dedebf707d 100644 --- a/packages/block/README.md +++ b/packages/block/README.md @@ -6,6 +6,8 @@ [![Code Coverage][block-coverage-badge]][block-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | Implements schema and functions related to Ethereum's block. | | ------------------------------------------------------------ | diff --git a/packages/blockchain/README.md b/packages/blockchain/README.md index 59dd6b4a09..97760a5060 100644 --- a/packages/blockchain/README.md +++ b/packages/blockchain/README.md @@ -6,6 +6,8 @@ [![Code Coverage][blockchain-coverage-badge]][blockchain-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | A module to store and interact with blocks. | | ------------------------------------------- | diff --git a/packages/client/README.md b/packages/client/README.md index 9527bb0d5b..183b8ef859 100644 --- a/packages/client/README.md +++ b/packages/client/README.md @@ -6,6 +6,8 @@ [![Code Coverage][client-coverage-badge]][client-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | Ethereum Execution (Eth 1.0) Client built in TypeScript/JavaScript. | | ------------------------------------------------------------------- | diff --git a/packages/common/README.md b/packages/common/README.md index 608e7bf70a..4bc513535f 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -6,6 +6,8 @@ [![Code Coverage][common-coverage-badge]][common-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | Resources common to all EthereumJS implementations. | | --------------------------------------------------- | diff --git a/packages/devp2p/README.md b/packages/devp2p/README.md index 29c236d089..8f44223f14 100644 --- a/packages/devp2p/README.md +++ b/packages/devp2p/README.md @@ -6,6 +6,8 @@ [![Coverage Status][devp2p-coverage-badge]][devp2p-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + ## Introduction This library bundles different components for lower-level peer-to-peer connection and message exchange: diff --git a/packages/ethash/README.md b/packages/ethash/README.md index 6ee3e97004..362d18e5d5 100644 --- a/packages/ethash/README.md +++ b/packages/ethash/README.md @@ -6,6 +6,8 @@ [![Code Coverage][ethash-coverage-badge]][ethash-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | [Ethash](https://github.com/ethereum/wiki/wiki/Ethash) implementation in TypeScript. | | ------------------------------------------------------------------------------------ | diff --git a/packages/evm/README.md b/packages/evm/README.md index 0a32bcfb8f..cb8b4597ef 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -6,6 +6,8 @@ [![Code Coverage][evm-coverage-badge]][evm-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | TypeScript implementation of the Ethereum EVM. | | ---------------------------------------------- | diff --git a/packages/rlp/README.md b/packages/rlp/README.md index 075953131c..aa3bc5c3cb 100644 --- a/packages/rlp/README.md +++ b/packages/rlp/README.md @@ -6,6 +6,8 @@ [![Code Coverage][rlp-coverage-badge]][rlp-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + [Recursive Length Prefix](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp) encoding for Node.js and the browser. ## Installation diff --git a/packages/statemanager/README.md b/packages/statemanager/README.md index 400c0225b1..87ef0e2458 100644 --- a/packages/statemanager/README.md +++ b/packages/statemanager/README.md @@ -6,6 +6,8 @@ [![Code Coverage][statemanager-coverage-badge]][statemanager-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | TypeScript implementation of the Ethereum StateManager. | | ------------------------------------------------------- | diff --git a/packages/trie/README.md b/packages/trie/README.md index fcac5a480b..155f95676a 100644 --- a/packages/trie/README.md +++ b/packages/trie/README.md @@ -6,6 +6,8 @@ [![Code Coverage][trie-coverage-badge]][trie-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + This is an implementation of the [Modified Merkle Patricia Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) as specified in the [Ethereum Yellow Paper](http://gavwood.com/Paper.pdf): > The modified Merkle Patricia tree (trie) provides a persistent data structure to map between arbitrary-length binary data (byte arrays). It is defined in terms of a mutable data structure to map between 256-bit binary fragments and arbitrary-length binary data. The core of the trie, and its sole requirement in terms of the protocol specification, is to provide a single 32-byte value that identifies a given set of key-value pairs. diff --git a/packages/tx/README.md b/packages/tx/README.md index dc8844fb16..0499742e6c 100644 --- a/packages/tx/README.md +++ b/packages/tx/README.md @@ -6,6 +6,8 @@ [![Code Coverage][tx-coverage-badge]][tx-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | Implements schema and functions related to Ethereum's transaction. | | ------------------------------------------------------------------ | diff --git a/packages/util/README.md b/packages/util/README.md index 04f1f531a3..aa742573ee 100644 --- a/packages/util/README.md +++ b/packages/util/README.md @@ -6,6 +6,8 @@ [![Code Coverage][util-coverage-badge]][util-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + A collection of utility functions for Ethereum. It can be used in Node.js and in the browser with [browserify](http://browserify.org/). ## Installation diff --git a/packages/vm/README.md b/packages/vm/README.md index 7e881edc0a..01b93ef470 100644 --- a/packages/vm/README.md +++ b/packages/vm/README.md @@ -6,6 +6,8 @@ [![Code Coverage][vm-coverage-badge]][vm-coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + | Execution Context for the Ethereum EVM Implementation. | | ------------------------------------------------------ | diff --git a/packages/wallet/README.md b/packages/wallet/README.md index 5a08384247..4324544050 100644 --- a/packages/wallet/README.md +++ b/packages/wallet/README.md @@ -5,6 +5,8 @@ [![Coverage Status][coverage-badge]][coverage-link] [![Discord][discord-badge]][discord-link] +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + A lightweight wallet implementation. At the moment it supports key creation and conversion between various formats. It is complemented by the following packages: From 9d3d3fe6bfc0a5017c61af6a0fb304fb7a67915c Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Tue, 11 Jul 2023 14:31:49 +0200 Subject: [PATCH 05/38] Add generic ESM sections --- packages/block/README.md | 18 +++++++++++++++++ packages/blockchain/README.md | 18 +++++++++++++++++ packages/common/README.md | 18 +++++++++++++++++ packages/devp2p/README.md | 20 +++++++++++++++++- packages/ethash/README.md | 18 +++++++++++++++++ packages/evm/README.md | 18 +++++++++++++++++ packages/rlp/README.md | 18 +++++++++++++++++ packages/statemanager/README.md | 18 +++++++++++++++++ packages/trie/README.md | 18 +++++++++++++++++ packages/tx/README.md | 18 +++++++++++++++++ packages/util/README.md | 36 +++++++++++++++++++++++++++++++++ packages/vm/README.md | 18 +++++++++++++++++ 12 files changed, 235 insertions(+), 1 deletion(-) diff --git a/packages/block/README.md b/packages/block/README.md index dedebf707d..1e9d6571d2 100644 --- a/packages/block/README.md +++ b/packages/block/README.md @@ -238,6 +238,24 @@ const block = Block.fromBlockData( Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/blockchain/README.md b/packages/blockchain/README.md index 97760a5060..af6f75c830 100644 --- a/packages/blockchain/README.md +++ b/packages/blockchain/README.md @@ -120,6 +120,24 @@ The blockchain library now allows for blob transactions to be validated and incl Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/common/README.md b/packages/common/README.md index 4bc513535f..dff448aeb1 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -82,6 +82,24 @@ to ease `blockNumber` based access to parameters. Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/devp2p/README.md b/packages/devp2p/README.md index 8f44223f14..8be378db90 100644 --- a/packages/devp2p/README.md +++ b/packages/devp2p/README.md @@ -344,7 +344,25 @@ Send initial status message. - `reqId` - Request ID, will be echoed back on response. - `payload` - Payload as a list, will be rlp-encoded. -#### Buffer -> Uint8Array +#### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + +### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/ethash/README.md b/packages/ethash/README.md index 362d18e5d5..1b0e51faef 100644 --- a/packages/ethash/README.md +++ b/packages/ethash/README.md @@ -74,6 +74,24 @@ const solution = await miner.iterate(-1) // iterate until solution is found Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/evm/README.md b/packages/evm/README.md index cb8b4597ef..62954e1170 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -89,6 +89,24 @@ All of the examples have their own `README.md` explaining how to run them. For documentation on `EVM` instantiation, exposed API and emitted `events` see generated [API docs](./docs/README.md). +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/rlp/README.md b/packages/rlp/README.md index aa3bc5c3cb..e422d9e696 100644 --- a/packages/rlp/README.md +++ b/packages/rlp/README.md @@ -55,6 +55,24 @@ const decodedAsBuffers = arrToBufArr(decoded) assert.deepEqual(bufferList, decodedAsBuffers) ``` +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/statemanager/README.md b/packages/statemanager/README.md index 87ef0e2458..dc64b8b36b 100644 --- a/packages/statemanager/README.md +++ b/packages/statemanager/README.md @@ -94,6 +94,24 @@ Refer to [this test script](./test/ethersStateManager.spec.ts) for complete exam Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/trie/README.md b/packages/trie/README.md index 155f95676a..ca7064fe01 100644 --- a/packages/trie/README.md +++ b/packages/trie/README.md @@ -255,6 +255,24 @@ You can find additional examples complete with detailed explanations [here](./ex Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/tx/README.md b/packages/tx/README.md index 0499742e6c..a12aee5984 100644 --- a/packages/tx/README.md +++ b/packages/tx/README.md @@ -417,6 +417,24 @@ _getFakeTransaction(txParams: TxParams): Transaction { Generated TypeDoc API [Documentation](./docs/README.md) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/util/README.md b/packages/util/README.md index aa742573ee..5a78a77b0b 100644 --- a/packages/util/README.md +++ b/packages/util/README.md @@ -58,6 +58,24 @@ Read the [API docs](docs/). - [withdrawal](src/withdrawal.ts) - Withdrawal class (EIP-4895) +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array Starting with the Summer 2023 EthereumJS breaking release round (Util v9) all methods, constructors, constants and types of the EthereumJS libraries which took a `Buffer` instance as an input or resulted in a `Buffer` (containing) output have been updated to take in an `Uint8Array` instead and/or produce `Uint8Array` as an output. @@ -116,6 +134,24 @@ Helper methods can be imported like this: import { hexToBytes } from '@ethereumjs/util' ``` +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). diff --git a/packages/vm/README.md b/packages/vm/README.md index 01b93ef470..049b4da139 100644 --- a/packages/vm/README.md +++ b/packages/vm/README.md @@ -96,6 +96,24 @@ All of the examples have their own `README.md` explaining how to run them. For documentation on `VM` instantiation, exposed API and emitted `events` see generated [API docs](./docs/README.md). +### Hybrid CJS/ESM Builds + +With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. + +If you use an ES6-style `import` in your code files from the ESM build will be used: + +```typescript +import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' +``` + +If you use Node.js specific `require` the CJS build will be used: + +```typescript +const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') +``` + +Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. + ### Buffer -> Uint8Array With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). From 92d0d761afa70cba747cdc9b5c64d7aa096d3ee0 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Tue, 11 Jul 2023 14:41:14 +0200 Subject: [PATCH 06/38] Add a first browser example section to README (EVM) --- packages/evm/README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/evm/README.md b/packages/evm/README.md index 62954e1170..e720028a46 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -74,7 +74,9 @@ const main = async () => { void main() ``` -### Example +### Examples + +#### Node.js This projects contain the following examples: @@ -83,6 +85,12 @@ This projects contain the following examples: All of the examples have their own `README.md` explaining how to run them. +#### Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build, see the [./examples/browser.html](./examples/browser.html) file for a complete example for this library including a small setup instruction section. + ## API ### Docs From c7b7bf61fe6dd7f873741bad9f4d037193182c5b Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 09:38:57 +0200 Subject: [PATCH 07/38] Small updates --- packages/evm/README.md | 8 +++----- packages/rlp/README.md | 26 +++++++------------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/packages/evm/README.md b/packages/evm/README.md index e720028a46..3538477468 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -74,9 +74,7 @@ const main = async () => { void main() ``` -### Examples - -#### Node.js +## Examples This projects contain the following examples: @@ -85,11 +83,11 @@ This projects contain the following examples: All of the examples have their own `README.md` explaining how to run them. -#### Browser +## Browser With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. -It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build, see the [./examples/browser.html](./examples/browser.html) file for a complete example for this library including a small setup instruction section. +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). ## API diff --git a/packages/rlp/README.md b/packages/rlp/README.md index e422d9e696..2a8aa5225d 100644 --- a/packages/rlp/README.md +++ b/packages/rlp/README.md @@ -32,6 +32,12 @@ const decoded = RLP.decode(encoded) assert.deepEqual(nestedList, decoded) ``` +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + ## API `RLP.encode(plain)` - RLP encodes an `Array`, `Uint8Array` or `String` and returns a `Uint8Array`. @@ -55,25 +61,7 @@ const decodedAsBuffers = arrToBufArr(decoded) assert.deepEqual(bufferList, decodedAsBuffers) ``` -### Hybrid CJS/ESM Builds - -With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. - -If you use an ES6-style `import` in your code files from the ESM build will be used: - -```typescript -import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' -``` - -If you use Node.js specific `require` the CJS build will be used: - -```typescript -const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') -``` - -Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. - -### Buffer -> Uint8Array +### Buffer -> Uint8Arrayy With the breaking releases from Summer 2023 we have removed all Node.js specific `Buffer` usages from our libraries and replace these with [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) representations, which are available both in Node.js and the browser (`Buffer` is a subclass of `Uint8Array`). From 85baa406e7657b542156690658ab4e197149e9ec Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 09:55:42 +0200 Subject: [PATCH 08/38] Renamed blobHelpers.ts -> blobs.ts (Util), moved Util encoding to Trie --- packages/rlp/README.md | 3 ++- packages/{util/src => trie/src/util}/encoding.ts | 0 packages/util/README.md | 12 +++++++----- packages/util/src/{blobHelpers.ts => blobs.ts} | 0 packages/util/src/index.ts | 7 +------ 5 files changed, 10 insertions(+), 12 deletions(-) rename packages/{util/src => trie/src/util}/encoding.ts (100%) rename packages/util/src/{blobHelpers.ts => blobs.ts} (100%) diff --git a/packages/rlp/README.md b/packages/rlp/README.md index 2a8aa5225d..1b33001573 100644 --- a/packages/rlp/README.md +++ b/packages/rlp/README.md @@ -8,7 +8,8 @@ Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. -[Recursive Length Prefix](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp) encoding for Node.js and the browser. +| [Recursive Length Prefix](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp) encoding for Node.js and the browser. | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ## Installation diff --git a/packages/util/src/encoding.ts b/packages/trie/src/util/encoding.ts similarity index 100% rename from packages/util/src/encoding.ts rename to packages/trie/src/util/encoding.ts diff --git a/packages/util/README.md b/packages/util/README.md index 5a78a77b0b..a0499342cf 100644 --- a/packages/util/README.md +++ b/packages/util/README.md @@ -8,7 +8,8 @@ Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. -A collection of utility functions for Ethereum. It can be used in Node.js and in the browser with [browserify](http://browserify.org/). +| A collection of utility functions for Ethereum. | +| ----------------------------------------------- | ## Installation @@ -21,12 +22,11 @@ npm install @ethereumjs/util ## Usage ```js -import assert from 'assert' -import { isValidChecksumAddress, unpadBuffer } from '@ethereumjs/util' +import { hexToBytes, isValidChecksumAddress } from '@ethereumjs/util' -assert.ok(isValidChecksumAddress('0x2F015C60E0be116B1f0CD534704Db9c92118FB6A')) +isValidChecksumAddress('0x2F015C60E0be116B1f0CD534704Db9c92118FB6A') // true -assert.ok(unpadBuffer(Buffer.from('000000006600', 'hex')).equals(Buffer.from('6600', 'hex'))) +hexToBytes('0x342770c0') ``` ## API @@ -42,6 +42,8 @@ Read the [API docs](docs/). - Private/public key and address-related functionality (creation, validation, conversion) - [address](src/address.ts) - Address class and type +- [blobs](src/blobs.ts) + - Helpers for 4844 blobs and versioned hashes - [bytes](src/bytes.ts) - Byte-related helper and conversion functions - [constants](src/constants.ts) diff --git a/packages/util/src/blobHelpers.ts b/packages/util/src/blobs.ts similarity index 100% rename from packages/util/src/blobHelpers.ts rename to packages/util/src/blobs.ts diff --git a/packages/util/src/index.ts b/packages/util/src/index.ts index ed1061c4e5..972c87da5e 100644 --- a/packages/util/src/index.ts +++ b/packages/util/src/index.ts @@ -43,16 +43,11 @@ export * from './bytes.js' */ export * from './types.js' -/** - * Helper function for working with compact encoding - */ -export * from './encoding.js' - /** * Export ethjs-util methods */ export * from './asyncEventEmitter.js' -export * from './blobHelpers.js' +export * from './blobs.js' export * from './genesis.js' export { arrayContainsArray, From a0ace8696cfce61f6e721dfd6506f441ae0a94d3 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 10:04:07 +0200 Subject: [PATCH 09/38] Version bump, update upstream dependency versions, update README (Util) --- packages/block/package.json | 2 +- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/common/package.json | 2 +- packages/devp2p/package.json | 2 +- packages/ethash/package.json | 2 +- packages/evm/package.json | 2 +- packages/genesis/package.json | 2 +- packages/statemanager/package.json | 2 +- packages/trie/package.json | 2 +- packages/tx/package.json | 2 +- packages/util/README.md | 63 +++++-------------- packages/util/package.json | 2 +- packages/vm/package.json | 2 +- packages/wallet/package.json | 2 +- 16 files changed, 32 insertions(+), 61 deletions(-) diff --git a/packages/block/package.json b/packages/block/package.json index 161d45a6d6..ee554033b3 100644 --- a/packages/block/package.json +++ b/packages/block/package.json @@ -49,7 +49,7 @@ "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "ethereum-cryptography": "^2.1.2" }, "devDependencies": { diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index ef379c68b5..5e71a55aea 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -51,7 +51,7 @@ "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", "level": "^8.0.0", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 654d326d51..273b7f91a8 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -67,7 +67,7 @@ "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "5.0.5", "@ethereumjs/tx": "4.1.2", - "@ethereumjs/util": "8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@ethereumjs/vm": "6.4.2", "abstract-level": "^1.0.3", "body-parser": "^1.19.2", diff --git a/packages/client/package.json b/packages/client/package.json index 9fdf013236..588c01c1aa 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -68,7 +68,7 @@ "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "5.0.5", "@ethereumjs/tx": "4.1.2", - "@ethereumjs/util": "8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@ethereumjs/vm": "6.4.2", "abstract-level": "^1.0.3", "body-parser": "^1.19.2", diff --git a/packages/common/package.json b/packages/common/package.json index 8e22d1b4fa..523190bd0c 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -55,7 +55,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "crc": "^4.3.2" } } diff --git a/packages/devp2p/package.json b/packages/devp2p/package.json index 310feff96a..e6d1b83b41 100644 --- a/packages/devp2p/package.json +++ b/packages/devp2p/package.json @@ -58,7 +58,7 @@ "dependencies": { "@ethereumjs/common": "^3.1.2", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@scure/base": "1.1.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", diff --git a/packages/ethash/package.json b/packages/ethash/package.json index 86e005bf57..02529075b2 100644 --- a/packages/ethash/package.json +++ b/packages/ethash/package.json @@ -46,7 +46,7 @@ "dependencies": { "@ethereumjs/block": "^4.2.2", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "bigint-crypto-utils": "^3.2.2", "ethereum-cryptography": "^2.1.2" }, diff --git a/packages/evm/package.json b/packages/evm/package.json index 7558dabe2c..447612ebf5 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -53,7 +53,7 @@ "dependencies": { "@ethereumjs/common": "^3.1.2", "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", "rustbn-wasm": "^0.2.0" diff --git a/packages/genesis/package.json b/packages/genesis/package.json index 0c141a0b50..6a71996272 100644 --- a/packages/genesis/package.json +++ b/packages/genesis/package.json @@ -57,7 +57,7 @@ }, "dependencies": { "@ethereumjs/common": "^3.1.2", - "@ethereumjs/util": "^8.0.6" + "@ethereumjs/util": "9.0.0-rc.1" }, "engines": { "node": ">=18" diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index 765d369c51..f2bae47d2e 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -60,7 +60,7 @@ "@ethereumjs/block": "^4.2.2", "@ethereumjs/genesis": "^0.0.1", "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@types/tape": "^4.13.2", "debug": "^4.3.3", "eslint": "^8.0.0", diff --git a/packages/trie/package.json b/packages/trie/package.json index 79dc7d274b..3b6d1aa3fa 100644 --- a/packages/trie/package.json +++ b/packages/trie/package.json @@ -53,7 +53,7 @@ }, "dependencies": { "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@types/readable-stream": "^2.3.13", "lru-cache": "^10.0.0", "ethereum-cryptography": "^2.1.2", diff --git a/packages/tx/package.json b/packages/tx/package.json index 22c47f2fb6..630f63a79d 100644 --- a/packages/tx/package.json +++ b/packages/tx/package.json @@ -58,7 +58,7 @@ "dependencies": { "@ethereumjs/common": "^3.1.2", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "ethereum-cryptography": "^2.1.2" }, "peerDependencies": { diff --git a/packages/util/README.md b/packages/util/README.md index a0499342cf..053581823c 100644 --- a/packages/util/README.md +++ b/packages/util/README.md @@ -29,6 +29,12 @@ isValidChecksumAddress('0x2F015C60E0be116B1f0CD534704Db9c92118FB6A') // true hexToBytes('0x342770c0') ``` +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + ## API ### Documentation @@ -47,59 +53,24 @@ Read the [API docs](docs/). - [bytes](src/bytes.ts) - Byte-related helper and conversion functions - [constants](src/constants.ts) - - Exposed constants - - e.g. `KECCAK256_NULL_S` for string representation of Keccak-256 hash of null -- hash - - This module has been removed with `v8`, please use [ethereum-cryptography](https://github.com/ethereum/js-ethereum-cryptography) directly instead + - Exposed constants (e.g. `KECCAK256_NULL_S` for string representation of Keccak-256 hash of null) +- [db](src/db.ts) + - DB interface for database abstraction (Blockchain, Trie) +- [genesis](src/genesis.ts) + - Genesis related interfaces and helpers +- [internal](src/internal.ts) + - Internalized helper methods +- [kzg](src/kzg.ts) + - KZG interface (used for 4844 blob txs) +- [mapDB](src/mapDB.ts) + - Simple map DB implementation using the `DB` interface - [signature](src/signature.ts) - Signing, signature validation, conversion, recovery - [types](src/types.ts) - Helpful TypeScript types -- [internal](src/internal.ts) - - Internalized helper methods - [withdrawal](src/withdrawal.ts) - Withdrawal class (EIP-4895) -### Hybrid CJS/ESM Builds - -With the breaking releases from Summer 2023 we have started to ship our libraries with both CommonJS (`cjs` folder) and ESM builds (`esm` folder), see `package.json` for the detailed setup. - -If you use an ES6-style `import` in your code files from the ESM build will be used: - -```typescript -import { EthereumJSClass } from '@ethereumjs/[PACKAGE_NAME]' -``` - -If you use Node.js specific `require` the CJS build will be used: - -```typescript -const { EthereumJSClass } = require('@ethereumjs/[PACKAGE_NAME]') -``` - -Using ESM will give you additional advantages over CJS beyond browser usage like static code analysis / Tree Shaking which CJS can not provide. - -### Buffer -> Uint8Array - -Starting with the Summer 2023 EthereumJS breaking release round (Util v9) all methods, constructors, constants and types of the EthereumJS libraries which took a `Buffer` instance as an input or resulted in a `Buffer` (containing) output have been updated to take in an `Uint8Array` instead and/or produce `Uint8Array` as an output. - -Here are some examples of the changes: - -```typescript -async putContractStorage(address: Address, key: Buffer, value: Buffer): Promise // StateManager, old -async putContractStorage(address: Address, key: Uint8Array, value: Uint8Array): Promise // StateManager, new - -hash(): Buffer // Block, old -hash(): Uint8Array // Block, new - -export const KECCAK256_NULL = Buffer.from(KECCAK256_NULL_S, 'hex') // Util, old -export const KECCAK256_NULL = hexToBytes(KECCAK256_NULL_S) // Util, new - -export type AccessListBufferItem = [Buffer, Buffer[]] // Tx, old (Type) -export type AccessListBytesItem = [Uint8Array, Uint8Array[]] // Tx, new -``` - -As you can see, complex datastructures containing `Buffer` objects are now renamed from containing `Buffer` as an indicator key word to now having a `Bytes` containing name. - ### Upgrade Helpers in bytes-Module Depending on the extend of `Buffer` usage within your own libraries and other planning considerations, there are the two upgrade options to do the switch to `Uint8Array` yourself or keep `Buffer` and do transitions for input and output values. diff --git a/packages/util/package.json b/packages/util/package.json index 91b8502292..c899ec2f97 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/util", - "version": "8.0.6", + "version": "9.0.0-rc.1", "description": "A collection of utility functions for Ethereum", "keywords": [ "ethereum", diff --git a/packages/vm/package.json b/packages/vm/package.json index b1661630f7..68961951b3 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -70,7 +70,7 @@ "@ethereumjs/statemanager": "^1.0.5", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2" }, diff --git a/packages/wallet/package.json b/packages/wallet/package.json index c4b0ef4985..beb65ebea0 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -46,7 +46,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@scure/base": "^1.1.1", "ethereum-cryptography": "^2.1.2", "js-md5": "^0.7.3", From b64d151c0545af93df6746fd7ca965d687db271b Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 10:06:46 +0200 Subject: [PATCH 10/38] Move encoding tests from Util to Trie --- .../test/encoding.spec.ts => trie/test/encodingUtils.spec.ts} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename packages/{util/test/encoding.spec.ts => trie/test/encodingUtils.spec.ts} (95%) diff --git a/packages/util/test/encoding.spec.ts b/packages/trie/test/encodingUtils.spec.ts similarity index 95% rename from packages/util/test/encoding.spec.ts rename to packages/trie/test/encodingUtils.spec.ts index 9457e21cac..03331969df 100644 --- a/packages/util/test/encoding.spec.ts +++ b/packages/trie/test/encodingUtils.spec.ts @@ -1,11 +1,11 @@ +import { hexToBytes } from '@ethereumjs/util' import { assert, describe, it } from 'vitest' import { bytesToNibbles, compactBytesToNibbles, - hexToBytes, nibblesToCompactBytes, -} from '../src/index.js' +} from '../src/util/encoding.js' describe('encoding', () => { it('nibblesToCompactBytes and compactBytesToNibbles should encode hex data correctly', () => { From c0f18adcbf2064e87fbc89ff28ba85b65a681182 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 10:32:48 +0200 Subject: [PATCH 11/38] Version bump, update upstream dependency versions, update README (Common) --- packages/block/package.json | 2 +- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/common/README.md | 28 +++++++++++-------- packages/common/package.json | 2 +- packages/common/src/eips/1153.json | 2 +- packages/devp2p/package.json | 2 +- packages/ethash/package.json | 2 +- packages/evm/package.json | 2 +- packages/genesis/package.json | 2 +- packages/statemanager/package.json | 2 +- packages/tx/package.json | 2 +- packages/vm/package.json | 2 +- 14 files changed, 30 insertions(+), 24 deletions(-) diff --git a/packages/block/package.json b/packages/block/package.json index ee554033b3..0b5eb01bc5 100644 --- a/packages/block/package.json +++ b/packages/block/package.json @@ -45,7 +45,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "^5.0.5", "@ethereumjs/tx": "^4.1.2", diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index 5e71a55aea..d8ead45796 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "@ethereumjs/block": "^4.2.2", - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/ethash": "^2.0.5", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "^5.0.5", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 273b7f91a8..d97343e690 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -59,7 +59,7 @@ "dependencies": { "@ethereumjs/block": "4.2.2", "@ethereumjs/blockchain": "6.2.2", - "@ethereumjs/common": "3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "5.1.2", "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", diff --git a/packages/client/package.json b/packages/client/package.json index 588c01c1aa..b0c19aff71 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -59,7 +59,7 @@ "dependencies": { "@ethereumjs/block": "4.2.2", "@ethereumjs/blockchain": "6.2.2", - "@ethereumjs/common": "3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "5.1.2", "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", diff --git a/packages/common/README.md b/packages/common/README.md index dff448aeb1..190b433be5 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -51,7 +51,7 @@ const common = new Common({ chain: 'mainnet', hardfork: 'london' }) If no hardfork is provided, the common is initialized with the default hardfork. -Current `DEFAULT_HARDFORK`: `Hardfork.Merge` +Current `DEFAULT_HARDFORK`: `Hardfork.Shanghai` Here are some simple usage examples: @@ -68,7 +68,7 @@ c.param('pow', 'minerReward') // 3000000000000000000 c.bootstrapNodes() // Array with current nodes // Instantiate with an EIP activated -c = new Common({ chain: Chain.Mainnet, eips: [2537] }) +c = new Common({ chain: Chain.Mainnet, eips: [4844] }) ``` # API @@ -114,8 +114,7 @@ Please note that number-related API signatures have changed along with this vers ## Events -The `Common` class is implemented as an `EventEmitter` and is emitting the following events -on which you can react within your code: +The `Common` class has a public property `events` which contains an `EventEmitter`. Following events are emitted on which you can react within your code: | Event | Description | | ----------------- | ---------------------------------------------------------- | @@ -264,10 +263,11 @@ library supported: - `london` (`Hardfork.London`) (since `v2.4.0`) - `merge` (`Hardfork.Merge`) (`DEFAULT_HARDFORK`) (since `v2.5.0`) - `shanghai` (`Hardfork.Shanghai`) (since `v3.1.0`) +- `cancun` (`Hardfork.Cancun`) (since `v4.0.0`) (not yet EIP-complete) ### Future Hardforks -The next upcoming HF `Hardfork.Cancun` is currently not yet supported by this library. +The next upcoming HF `Hardfork.Prague` is currently not yet supported by this library. ### Parameter Access @@ -293,32 +293,38 @@ Starting with the `v2.0.0` release of the library, EIPs are now native citizens and can be activated like this: ```typescript -const c = new Common({ chain: Chain.Mainnet, eips: [2537] }) +const c = new Common({ chain: Chain.Mainnet, eips: [4844] }) ``` The following EIPs are currently supported: +- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153): Transient storage opcodes - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559): Fee market change for ETH 1.0 chain -- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315): Simple subroutines for the EVM (`experimental`) -- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537): BLS precompiles +- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315): Simple subroutines for the EVM (`outdated`) +- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537): BLS precompiles (removed in v4.0.0, see latest v3 release) - [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565): ModExp gas cost - [EIP-2718](https://eips.ethereum.org/EIPS/eip-2565): Transaction Types - [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929): gas cost increases for state access opcodes - [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930): Optional access list tx type +- [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074): AUTH and AUTHCALL opcodes - [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198): Base fee Opcode - [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529): Reduction in refunds -- [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`experimental`) +- [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`outdated`) - [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541): Reject new contracts starting with the 0xEF byte - [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554): Difficulty Bomb Delay to December 2021 (only PoW networks) - [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607): Reject transactions from senders with deployed code - [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651): Warm COINBASE (Shanghai) -- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670): EOF - Code Validation (`experimental`) +- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670): EOF - Code Validation (`outdated`) - [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675): Upgrade consensus to Proof-of-Stake - [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855): Push0 opcode (Shanghai) - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860): Limit and meter initcode (Shanghai) - [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345): Difficulty Bomb Delay to June 2022 -- [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399): Supplant DIFFICULTY opcode with PREVRANDAO (Merge) (`experimental`) +- [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399): Supplant DIFFICULTY opcode with PREVRANDAO (Merge) +- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788): Beacon block root in the EVM +- [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Shard Blob Transactions (Cancun) (`experimental`) - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895): Beacon chain push withdrawals as operations (Shanghai) +- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656): MCOPY - Memory copying instruction +- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780): SELFDESTRUCT only in same transaction ### Bootstrap Nodes diff --git a/packages/common/package.json b/packages/common/package.json index 523190bd0c..40122ed304 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/common", - "version": "3.1.2", + "version": "4.0.0-rc.1", "description": "Resources common to all Ethereum implementations", "keywords": [ "ethereum", diff --git a/packages/common/src/eips/1153.json b/packages/common/src/eips/1153.json index 5dbb643e67..68ffc00a46 100644 --- a/packages/common/src/eips/1153.json +++ b/packages/common/src/eips/1153.json @@ -1,7 +1,7 @@ { "name": "EIP-1153", "number": 1153, - "comment": "Transient Storage", + "comment": "Transient storage opcodes", "url": "https://eips.ethereum.org/EIPS/eip-1153", "status": "Review", "minimumHardfork": "chainstart", diff --git a/packages/devp2p/package.json b/packages/devp2p/package.json index e6d1b83b41..b65832c676 100644 --- a/packages/devp2p/package.json +++ b/packages/devp2p/package.json @@ -56,7 +56,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "@scure/base": "1.1.1", diff --git a/packages/ethash/package.json b/packages/ethash/package.json index 02529075b2..3d5d0f0512 100644 --- a/packages/ethash/package.json +++ b/packages/ethash/package.json @@ -51,7 +51,7 @@ "ethereum-cryptography": "^2.1.2" }, "devDependencies": { - "@ethereumjs/common": "^3.1.2" + "@ethereumjs/common": "4.0.0-rc.1" }, "engines": { "node": ">=18" diff --git a/packages/evm/package.json b/packages/evm/package.json index 447612ebf5..150e77dc9e 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -51,7 +51,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", diff --git a/packages/genesis/package.json b/packages/genesis/package.json index 6a71996272..d490988afd 100644 --- a/packages/genesis/package.json +++ b/packages/genesis/package.json @@ -56,7 +56,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1" }, "engines": { diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index f2bae47d2e..fd3a25171a 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -48,7 +48,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", diff --git a/packages/tx/package.json b/packages/tx/package.json index 630f63a79d..b8ce2936c1 100644 --- a/packages/tx/package.json +++ b/packages/tx/package.json @@ -56,7 +56,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "ethereum-cryptography": "^2.1.2" diff --git a/packages/vm/package.json b/packages/vm/package.json index 68961951b3..29c143659e 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -64,7 +64,7 @@ "dependencies": { "@ethereumjs/block": "^4.2.2", "@ethereumjs/blockchain": "^6.2.2", - "@ethereumjs/common": "^3.1.2", + "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/evm": "^1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "^1.0.5", From f3a4b296bb8d881da4039cc996ae348c357a1745 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 10:33:24 +0200 Subject: [PATCH 12/38] Rebuild docs --- packages/trie/docs/README.md | 91 ++++---- packages/trie/docs/classes/BranchNode.md | 34 +-- packages/trie/docs/classes/CheckpointDB.md | 210 ++++++++++++------ packages/trie/docs/classes/ExtensionNode.md | 42 ++-- packages/trie/docs/classes/LeafNode.md | 42 ++-- packages/trie/docs/classes/MapDB.md | 179 --------------- packages/trie/docs/classes/Trie.md | 202 ++++++++++------- packages/trie/docs/classes/TrieReadStream.md | 2 +- packages/trie/docs/classes/WalkController.md | 4 +- .../trie/docs/interfaces/CheckpointDBOpts.md | 34 +++ packages/trie/docs/interfaces/DB.md | 126 ----------- packages/trie/docs/interfaces/DelBatch.md | 30 --- packages/trie/docs/interfaces/PutBatch.md | 41 ---- packages/trie/docs/interfaces/TrieOpts.md | 33 ++- 14 files changed, 434 insertions(+), 636 deletions(-) delete mode 100644 packages/trie/docs/classes/MapDB.md create mode 100644 packages/trie/docs/interfaces/CheckpointDBOpts.md delete mode 100644 packages/trie/docs/interfaces/DB.md delete mode 100644 packages/trie/docs/interfaces/DelBatch.md delete mode 100644 packages/trie/docs/interfaces/PutBatch.md diff --git a/packages/trie/docs/README.md b/packages/trie/docs/README.md index 417d3649e3..53043c61e9 100644 --- a/packages/trie/docs/README.md +++ b/packages/trie/docs/README.md @@ -10,7 +10,6 @@ - [CheckpointDB](classes/CheckpointDB.md) - [ExtensionNode](classes/ExtensionNode.md) - [LeafNode](classes/LeafNode.md) -- [MapDB](classes/MapDB.md) - [PrioritizedTaskExecutor](classes/PrioritizedTaskExecutor.md) - [Trie](classes/Trie.md) - [TrieReadStream](classes/TrieReadStream.md) @@ -18,14 +17,11 @@ ### Interfaces -- [DB](interfaces/DB.md) -- [DelBatch](interfaces/DelBatch.md) -- [PutBatch](interfaces/PutBatch.md) +- [CheckpointDBOpts](interfaces/CheckpointDBOpts.md) - [TrieOpts](interfaces/TrieOpts.md) ### Type Aliases -- [BatchDBOp](README.md#batchdbop) - [Checkpoint](README.md#checkpoint) - [EmbeddedNode](README.md#embeddednode) - [FoundNodeFunction](README.md#foundnodefunction) @@ -43,21 +39,12 @@ - [decodeNode](README.md#decodenode) - [decodeRawNode](README.md#decoderawnode) +- [genesisStateRoot](README.md#genesisstateroot) - [isRawNode](README.md#israwnode) - [verifyRangeProof](README.md#verifyrangeproof) ## Type Aliases -### BatchDBOp - -Ƭ **BatchDBOp**: [`PutBatch`](interfaces/PutBatch.md) \| [`DelBatch`](interfaces/DelBatch.md) - -#### Defined in - -[packages/trie/src/types.ts:72](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L72) - -___ - ### Checkpoint Ƭ **Checkpoint**: `Object` @@ -66,28 +53,28 @@ ___ | Name | Type | | :------ | :------ | -| `keyValueMap` | `Map`<`string`, `Buffer` \| ``null``\> | -| `root` | `Buffer` | +| `keyValueMap` | `Map`<`string`, `Uint8Array` \| `undefined`\> | +| `root` | `Uint8Array` | #### Defined in -[packages/trie/src/types.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L119) +[packages/trie/src/types.ts:95](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L95) ___ ### EmbeddedNode -Ƭ **EmbeddedNode**: `Buffer` \| `Buffer`[] +Ƭ **EmbeddedNode**: `Uint8Array` \| `Uint8Array`[] #### Defined in -[packages/trie/src/types.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L10) +[packages/trie/src/types.ts:13](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L13) ___ ### FoundNodeFunction -Ƭ **FoundNodeFunction**: (`nodeRef`: `Buffer`, `node`: [`TrieNode`](README.md#trienode) \| ``null``, `key`: [`Nibbles`](README.md#nibbles), `walkController`: [`WalkController`](classes/WalkController.md)) => `void` +Ƭ **FoundNodeFunction**: (`nodeRef`: `Uint8Array`, `node`: [`TrieNode`](README.md#trienode) \| ``null``, `key`: [`Nibbles`](README.md#nibbles), `walkController`: [`WalkController`](classes/WalkController.md)) => `void` #### Type declaration @@ -97,7 +84,7 @@ ___ | Name | Type | | :------ | :------ | -| `nodeRef` | `Buffer` | +| `nodeRef` | `Uint8Array` | | `node` | [`TrieNode`](README.md#trienode) \| ``null`` | | `key` | [`Nibbles`](README.md#nibbles) | | `walkController` | [`WalkController`](classes/WalkController.md) | @@ -108,7 +95,7 @@ ___ #### Defined in -[packages/trie/src/types.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L14) +[packages/trie/src/types.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L17) ___ @@ -132,7 +119,7 @@ ___ #### Defined in -[packages/trie/src/types.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L21) +[packages/trie/src/types.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L24) ___ @@ -142,17 +129,17 @@ ___ #### Defined in -[packages/trie/src/types.ts:6](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L6) +[packages/trie/src/types.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L9) ___ ### Proof -Ƭ **Proof**: `Buffer`[] +Ƭ **Proof**: `Uint8Array`[] #### Defined in -[packages/trie/src/types.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L12) +[packages/trie/src/types.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L15) ___ @@ -162,27 +149,27 @@ ___ #### Defined in -[packages/trie/src/types.ts:4](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L4) +[packages/trie/src/types.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L7) ___ ### TrieOptsWithDefaults -Ƭ **TrieOptsWithDefaults**: [`TrieOpts`](interfaces/TrieOpts.md) & { `useKeyHashing`: `boolean` ; `useKeyHashingFunction`: [`HashKeysFunction`](README.md#hashkeysfunction) ; `useNodePruning`: `boolean` ; `useRootPersistence`: `boolean` } +Ƭ **TrieOptsWithDefaults**: [`TrieOpts`](interfaces/TrieOpts.md) & { `cacheSize`: `number` ; `useKeyHashing`: `boolean` ; `useKeyHashingFunction`: [`HashKeysFunction`](README.md#hashkeysfunction) ; `useNodePruning`: `boolean` ; `useRootPersistence`: `boolean` } #### Defined in -[packages/trie/src/types.ts:65](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L65) +[packages/trie/src/types.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L75) ## Variables ### ROOT\_DB\_KEY -• `Const` **ROOT\_DB\_KEY**: `Buffer` +• `Const` **ROOT\_DB\_KEY**: `Uint8Array` #### Defined in -[packages/trie/src/types.ts:126](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L126) +[packages/trie/src/types.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L102) ## Functions @@ -194,7 +181,7 @@ ___ | Name | Type | | :------ | :------ | -| `raw` | `Buffer` | +| `raw` | `Uint8Array` | #### Returns @@ -202,7 +189,7 @@ ___ #### Defined in -[packages/trie/src/trie/node/util.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/util.ts#L25) +[packages/trie/src/node/util.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/util.ts#L24) ___ @@ -214,7 +201,7 @@ ___ | Name | Type | | :------ | :------ | -| `raw` | `Buffer`[] | +| `raw` | `Uint8Array`[] | #### Returns @@ -222,7 +209,29 @@ ___ #### Defined in -[packages/trie/src/trie/node/util.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/util.ts#L11) +[packages/trie/src/node/util.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/util.ts#L10) + +___ + +### genesisStateRoot + +▸ **genesisStateRoot**(`genesisState`): `Promise`<`Uint8Array`\> + +Derives the stateRoot of the genesis block based on genesis allocations + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `genesisState` | `GenesisState` | + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Defined in + +[packages/trie/src/util/genesisState.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/util/genesisState.ts#L12) ___ @@ -242,7 +251,7 @@ ___ #### Defined in -[packages/trie/src/trie/node/util.ts:33](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/util.ts#L33) +[packages/trie/src/node/util.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/util.ts#L32) ___ @@ -273,12 +282,12 @@ NOTE: Currently only supports verification when the length of firstKey and lastK | Name | Type | Description | | :------ | :------ | :------ | -| `rootHash` | `Buffer` | root hash. | +| `rootHash` | `Uint8Array` | root hash. | | `firstKey` | ``null`` \| [`Nibbles`](README.md#nibbles) | first key. | | `lastKey` | ``null`` \| [`Nibbles`](README.md#nibbles) | last key. | | `keys` | [`Nibbles`](README.md#nibbles)[] | key list. | -| `values` | `Buffer`[] | value list, one-to-one correspondence with keys. | -| `proof` | ``null`` \| `Buffer`[] | proof node list, if proof is null, both `firstKey` and `lastKey` must be null | +| `values` | `Uint8Array`[] | value list, one-to-one correspondence with keys. | +| `proof` | ``null`` \| `Uint8Array`[] | proof node list, if proof is null, both `firstKey` and `lastKey` must be null | | `useKeyHashingFunction` | [`HashKeysFunction`](README.md#hashkeysfunction) | - | #### Returns @@ -289,4 +298,4 @@ a flag to indicate whether there exists more trie node in the trie #### Defined in -[packages/trie/src/proof/range.ts:410](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/proof/range.ts#L410) +[packages/trie/src/proof/range.ts:413](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/proof/range.ts#L413) diff --git a/packages/trie/docs/classes/BranchNode.md b/packages/trie/docs/classes/BranchNode.md index 7ee2879484..3b009db99b 100644 --- a/packages/trie/docs/classes/BranchNode.md +++ b/packages/trie/docs/classes/BranchNode.md @@ -31,7 +31,7 @@ #### Defined in -[packages/trie/src/trie/node/branch.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L10) +[packages/trie/src/node/branch.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L9) ## Properties @@ -41,17 +41,17 @@ #### Defined in -[packages/trie/src/trie/node/branch.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L7) +[packages/trie/src/node/branch.ts:6](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L6) ___ ### \_value -• **\_value**: ``null`` \| `Buffer` +• **\_value**: ``null`` \| `Uint8Array` #### Defined in -[packages/trie/src/trie/node/branch.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L8) +[packages/trie/src/node/branch.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L7) ## Methods @@ -71,7 +71,7 @@ ___ #### Defined in -[packages/trie/src/trie/node/branch.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L42) +[packages/trie/src/node/branch.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L41) ___ @@ -85,7 +85,7 @@ ___ #### Defined in -[packages/trie/src/trie/node/branch.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L51) +[packages/trie/src/node/branch.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L50) ___ @@ -99,21 +99,21 @@ ___ #### Defined in -[packages/trie/src/trie/node/branch.ts:34](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L34) +[packages/trie/src/node/branch.ts:33](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L33) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` #### Returns -`Buffer` +`Uint8Array` #### Defined in -[packages/trie/src/trie/node/branch.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L38) +[packages/trie/src/node/branch.ts:37](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L37) ___ @@ -134,27 +134,27 @@ ___ #### Defined in -[packages/trie/src/trie/node/branch.ts:30](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L30) +[packages/trie/src/node/branch.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L29) ___ ### value -▸ **value**(`v?`): ``null`` \| `Buffer` +▸ **value**(`v?`): ``null`` \| `Uint8Array` #### Parameters | Name | Type | | :------ | :------ | -| `v?` | ``null`` \| `Buffer` | +| `v?` | ``null`` \| `Uint8Array` | #### Returns -``null`` \| `Buffer` +``null`` \| `Uint8Array` #### Defined in -[packages/trie/src/trie/node/branch.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L22) +[packages/trie/src/node/branch.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L21) ___ @@ -166,7 +166,7 @@ ___ | Name | Type | | :------ | :------ | -| `arr` | `Buffer`[] | +| `arr` | `Uint8Array`[] | #### Returns @@ -174,4 +174,4 @@ ___ #### Defined in -[packages/trie/src/trie/node/branch.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/branch.ts#L15) +[packages/trie/src/node/branch.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/branch.ts#L14) diff --git a/packages/trie/docs/classes/CheckpointDB.md b/packages/trie/docs/classes/CheckpointDB.md index af51e7d3db..ba5313823a 100644 --- a/packages/trie/docs/classes/CheckpointDB.md +++ b/packages/trie/docs/classes/CheckpointDB.md @@ -7,7 +7,7 @@ which validates inputs and sets encoding type. ## Implements -- [`DB`](../interfaces/DB.md) +- `DB` ## Table of contents @@ -17,6 +17,8 @@ which validates inputs and sets encoding type. ### Properties +- [\_stats](CheckpointDB.md#_stats) +- [cacheSize](CheckpointDB.md#cachesize) - [checkpoints](CheckpointDB.md#checkpoints) - [db](CheckpointDB.md#db) @@ -25,19 +27,21 @@ which validates inputs and sets encoding type. - [batch](CheckpointDB.md#batch) - [checkpoint](CheckpointDB.md#checkpoint) - [commit](CheckpointDB.md#commit) -- [copy](CheckpointDB.md#copy) - [del](CheckpointDB.md#del) - [get](CheckpointDB.md#get) - [hasCheckpoints](CheckpointDB.md#hascheckpoints) +- [open](CheckpointDB.md#open) - [put](CheckpointDB.md#put) - [revert](CheckpointDB.md#revert) - [setCheckpoints](CheckpointDB.md#setcheckpoints) +- [shallowCopy](CheckpointDB.md#shallowcopy) +- [stats](CheckpointDB.md#stats) ## Constructors ### constructor -• **new CheckpointDB**(`db`) +• **new CheckpointDB**(`opts`) Initialize a DB instance. @@ -45,31 +49,64 @@ Initialize a DB instance. | Name | Type | | :------ | :------ | -| `db` | [`DB`](../interfaces/DB.md) | +| `opts` | [`CheckpointDBOpts`](../interfaces/CheckpointDBOpts.md) | #### Defined in -[packages/trie/src/db/checkpoint.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L14) +[packages/trie/src/db/checkpoint.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L49) ## Properties +### \_stats + +• **\_stats**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `cache` | { `hits`: `number` = 0; `reads`: `number` = 0; `writes`: `number` = 0 } | +| `cache.hits` | `number` | +| `cache.reads` | `number` | +| `cache.writes` | `number` | +| `db` | { `hits`: `number` = 0; `reads`: `number` = 0; `writes`: `number` = 0 } | +| `db.hits` | `number` | +| `db.reads` | `number` | +| `db.writes` | `number` | + +#### Defined in + +[packages/trie/src/db/checkpoint.ts:33](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L33) + +___ + +### cacheSize + +• `Readonly` **cacheSize**: `number` + +#### Defined in + +[packages/trie/src/db/checkpoint.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L19) + +___ + ### checkpoints • **checkpoints**: [`Checkpoint`](../README.md#checkpoint)[] #### Defined in -[packages/trie/src/db/checkpoint.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L8) +[packages/trie/src/db/checkpoint.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L17) ___ ### db -• **db**: [`DB`](../interfaces/DB.md) +• **db**: `DB`<`string`, `string`\> #### Defined in -[packages/trie/src/db/checkpoint.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L9) +[packages/trie/src/db/checkpoint.ts:18](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L18) ## Methods @@ -77,13 +114,13 @@ ___ ▸ **batch**(`opStack`): `Promise`<`void`\> -Performs a batch operation on db. +**`Inherit Doc`** #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `opStack` | [`BatchDBOp`](../README.md#batchdbop)[] | A stack of levelup operations | +| Name | Type | +| :------ | :------ | +| `opStack` | `BatchDBOp`<`Uint8Array`, `Uint8Array`\>[] | #### Returns @@ -91,11 +128,11 @@ Performs a batch operation on db. #### Implementation of -[DB](../interfaces/DB.md).[batch](../interfaces/DB.md#batch) +DB.batch #### Defined in -[packages/trie/src/db/checkpoint.ts:140](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L140) +[packages/trie/src/db/checkpoint.ts:222](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L222) ___ @@ -109,7 +146,7 @@ Adds a new checkpoint to the stack | Name | Type | | :------ | :------ | -| `root` | `Buffer` | +| `root` | `Uint8Array` | #### Returns @@ -117,7 +154,7 @@ Adds a new checkpoint to the stack #### Defined in -[packages/trie/src/db/checkpoint.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L46) +[packages/trie/src/db/checkpoint.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L90) ___ @@ -133,28 +170,7 @@ Commits the latest checkpoint #### Defined in -[packages/trie/src/db/checkpoint.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L53) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`CheckpointDB`](CheckpointDB.md) - -Returns a copy of the DB instance, with a reference -to the **same** underlying leveldb instance. - -#### Returns - -[`CheckpointDB`](CheckpointDB.md) - -#### Implementation of - -[DB](../interfaces/DB.md).[copy](../interfaces/DB.md#copy) - -#### Defined in - -[packages/trie/src/db/checkpoint.ts:157](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L157) +[packages/trie/src/db/checkpoint.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L97) ___ @@ -162,13 +178,13 @@ ___ ▸ **del**(`key`): `Promise`<`void`\> -Removes a raw value in the underlying leveldb. +**`Inherit Doc`** #### Parameters | Name | Type | | :------ | :------ | -| `key` | `Buffer` | +| `key` | `Uint8Array` | #### Returns @@ -176,39 +192,37 @@ Removes a raw value in the underlying leveldb. #### Implementation of -[DB](../interfaces/DB.md).[del](../interfaces/DB.md#del) +DB.del #### Defined in -[packages/trie/src/db/checkpoint.ts:127](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L127) +[packages/trie/src/db/checkpoint.ts:200](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L200) ___ ### get -▸ **get**(`key`): `Promise`<``null`` \| `Buffer`\> +▸ **get**(`key`): `Promise`<`undefined` \| `Uint8Array`\> -Retrieves a raw value from leveldb. +**`Inherit Doc`** #### Parameters | Name | Type | | :------ | :------ | -| `key` | `Buffer` | +| `key` | `Uint8Array` | #### Returns -`Promise`<``null`` \| `Buffer`\> - -A Promise that resolves to `Buffer` if a value is found or `null` if no value is found. +`Promise`<`undefined` \| `Uint8Array`\> #### Implementation of -[DB](../interfaces/DB.md).[get](../interfaces/DB.md#get) +DB.get #### Defined in -[packages/trie/src/db/checkpoint.ts:93](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L93) +[packages/trie/src/db/checkpoint.ts:137](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L137) ___ @@ -224,22 +238,40 @@ Is the DB during a checkpoint phase? #### Defined in -[packages/trie/src/db/checkpoint.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L38) +[packages/trie/src/db/checkpoint.ts:82](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L82) + +___ + +### open + +▸ **open**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Implementation of + +DB.open + +#### Defined in + +[packages/trie/src/db/checkpoint.ts:272](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L272) ___ ### put -▸ **put**(`key`, `val`): `Promise`<`void`\> +▸ **put**(`key`, `value`): `Promise`<`void`\> -Writes a value directly to leveldb. +**`Inherit Doc`** #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `key` | `Buffer` | The key as a `Buffer` | -| `val` | `Buffer` | - | +| Name | Type | +| :------ | :------ | +| `key` | `Uint8Array` | +| `value` | `Uint8Array` | #### Returns @@ -247,27 +279,27 @@ Writes a value directly to leveldb. #### Implementation of -[DB](../interfaces/DB.md).[put](../interfaces/DB.md#put) +DB.put #### Defined in -[packages/trie/src/db/checkpoint.ts:115](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L115) +[packages/trie/src/db/checkpoint.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L177) ___ ### revert -▸ **revert**(): `Promise`<`Buffer`\> +▸ **revert**(): `Promise`<`Uint8Array`\> Reverts the latest checkpoint #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> #### Defined in -[packages/trie/src/db/checkpoint.ts:85](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L85) +[packages/trie/src/db/checkpoint.ts:129](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L129) ___ @@ -289,4 +321,56 @@ Flush the checkpoints and use the given checkpoints instead. #### Defined in -[packages/trie/src/db/checkpoint.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L24) +[packages/trie/src/db/checkpoint.ts:68](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L68) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`CheckpointDB`](CheckpointDB.md) + +**`Inherit Doc`** + +#### Returns + +[`CheckpointDB`](CheckpointDB.md) + +#### Implementation of + +DB.shallowCopy + +#### Defined in + +[packages/trie/src/db/checkpoint.ts:268](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L268) + +___ + +### stats + +▸ **stats**(`reset?`): `Object` + +#### Parameters + +| Name | Type | Default value | +| :------ | :------ | :------ | +| `reset` | `boolean` | `true` | + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `cache` | { `hits`: `number` = 0; `reads`: `number` = 0; `writes`: `number` = 0 } | +| `cache.hits` | `number` | +| `cache.reads` | `number` | +| `cache.writes` | `number` | +| `db` | { `hits`: `number` = 0; `reads`: `number` = 0; `writes`: `number` = 0 } | +| `db.hits` | `number` | +| `db.reads` | `number` | +| `db.writes` | `number` | +| `size` | `number` | + +#### Defined in + +[packages/trie/src/db/checkpoint.ts:246](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/checkpoint.ts#L246) diff --git a/packages/trie/docs/classes/ExtensionNode.md b/packages/trie/docs/classes/ExtensionNode.md index 402ba9e225..203516c3d4 100644 --- a/packages/trie/docs/classes/ExtensionNode.md +++ b/packages/trie/docs/classes/ExtensionNode.md @@ -42,7 +42,7 @@ | Name | Type | | :------ | :------ | | `nibbles` | [`Nibbles`](../README.md#nibbles) | -| `value` | `Buffer` | +| `value` | `Uint8Array` | #### Overrides @@ -50,7 +50,7 @@ Node.constructor #### Defined in -[packages/trie/src/trie/node/extension.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/extension.ts#L8) +[packages/trie/src/node/extension.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/extension.ts#L8) ## Properties @@ -64,7 +64,7 @@ Node.\_nibbles #### Defined in -[packages/trie/src/trie/node/node.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L10) +[packages/trie/src/node/node.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L9) ___ @@ -78,13 +78,13 @@ Node.\_terminator #### Defined in -[packages/trie/src/trie/node/node.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L12) +[packages/trie/src/node/node.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L11) ___ ### \_value -• **\_value**: `Buffer` +• **\_value**: `Uint8Array` #### Inherited from @@ -92,7 +92,7 @@ Node.\_value #### Defined in -[packages/trie/src/trie/node/node.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L11) +[packages/trie/src/node/node.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L10) ## Methods @@ -110,7 +110,7 @@ Node.encodedKey #### Defined in -[packages/trie/src/trie/node/node.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L44) +[packages/trie/src/node/node.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L43) ___ @@ -134,7 +134,7 @@ Node.key #### Defined in -[packages/trie/src/trie/node/node.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L24) +[packages/trie/src/node/node.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L23) ___ @@ -152,17 +152,17 @@ Node.keyLength #### Defined in -[packages/trie/src/trie/node/node.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L32) +[packages/trie/src/node/node.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L31) ___ ### raw -▸ **raw**(): [`Buffer`, `Buffer`] +▸ **raw**(): [`Uint8Array`, `Uint8Array`] #### Returns -[`Buffer`, `Buffer`] +[`Uint8Array`, `Uint8Array`] #### Inherited from @@ -170,17 +170,17 @@ Node.raw #### Defined in -[packages/trie/src/trie/node/node.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L48) +[packages/trie/src/node/node.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L47) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` #### Returns -`Buffer` +`Uint8Array` #### Inherited from @@ -188,23 +188,23 @@ Node.serialize #### Defined in -[packages/trie/src/trie/node/node.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L52) +[packages/trie/src/node/node.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L51) ___ ### value -▸ **value**(`v?`): `Buffer` +▸ **value**(`v?`): `Uint8Array` #### Parameters | Name | Type | | :------ | :------ | -| `v?` | `Buffer` | +| `v?` | `Uint8Array` | #### Returns -`Buffer` +`Uint8Array` #### Inherited from @@ -212,7 +212,7 @@ Node.value #### Defined in -[packages/trie/src/trie/node/node.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L36) +[packages/trie/src/node/node.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L35) ___ @@ -236,7 +236,7 @@ Node.decodeKey #### Defined in -[packages/trie/src/trie/node/node.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L20) +[packages/trie/src/node/node.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L19) ___ @@ -256,4 +256,4 @@ ___ #### Defined in -[packages/trie/src/trie/node/extension.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/extension.ts#L12) +[packages/trie/src/node/extension.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/extension.ts#L12) diff --git a/packages/trie/docs/classes/LeafNode.md b/packages/trie/docs/classes/LeafNode.md index 822a9d7934..0ebce1040f 100644 --- a/packages/trie/docs/classes/LeafNode.md +++ b/packages/trie/docs/classes/LeafNode.md @@ -42,7 +42,7 @@ | Name | Type | | :------ | :------ | | `nibbles` | [`Nibbles`](../README.md#nibbles) | -| `value` | `Buffer` | +| `value` | `Uint8Array` | #### Overrides @@ -50,7 +50,7 @@ Node.constructor #### Defined in -[packages/trie/src/trie/node/leaf.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/leaf.ts#L8) +[packages/trie/src/node/leaf.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/leaf.ts#L8) ## Properties @@ -64,7 +64,7 @@ Node.\_nibbles #### Defined in -[packages/trie/src/trie/node/node.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L10) +[packages/trie/src/node/node.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L9) ___ @@ -78,13 +78,13 @@ Node.\_terminator #### Defined in -[packages/trie/src/trie/node/node.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L12) +[packages/trie/src/node/node.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L11) ___ ### \_value -• **\_value**: `Buffer` +• **\_value**: `Uint8Array` #### Inherited from @@ -92,7 +92,7 @@ Node.\_value #### Defined in -[packages/trie/src/trie/node/node.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L11) +[packages/trie/src/node/node.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L10) ## Methods @@ -110,7 +110,7 @@ Node.encodedKey #### Defined in -[packages/trie/src/trie/node/node.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L44) +[packages/trie/src/node/node.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L43) ___ @@ -134,7 +134,7 @@ Node.key #### Defined in -[packages/trie/src/trie/node/node.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L24) +[packages/trie/src/node/node.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L23) ___ @@ -152,17 +152,17 @@ Node.keyLength #### Defined in -[packages/trie/src/trie/node/node.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L32) +[packages/trie/src/node/node.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L31) ___ ### raw -▸ **raw**(): [`Buffer`, `Buffer`] +▸ **raw**(): [`Uint8Array`, `Uint8Array`] #### Returns -[`Buffer`, `Buffer`] +[`Uint8Array`, `Uint8Array`] #### Inherited from @@ -170,17 +170,17 @@ Node.raw #### Defined in -[packages/trie/src/trie/node/node.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L48) +[packages/trie/src/node/node.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L47) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` #### Returns -`Buffer` +`Uint8Array` #### Inherited from @@ -188,23 +188,23 @@ Node.serialize #### Defined in -[packages/trie/src/trie/node/node.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L52) +[packages/trie/src/node/node.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L51) ___ ### value -▸ **value**(`v?`): `Buffer` +▸ **value**(`v?`): `Uint8Array` #### Parameters | Name | Type | | :------ | :------ | -| `v?` | `Buffer` | +| `v?` | `Uint8Array` | #### Returns -`Buffer` +`Uint8Array` #### Inherited from @@ -212,7 +212,7 @@ Node.value #### Defined in -[packages/trie/src/trie/node/node.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L36) +[packages/trie/src/node/node.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L35) ___ @@ -236,7 +236,7 @@ Node.decodeKey #### Defined in -[packages/trie/src/trie/node/node.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/node.ts#L20) +[packages/trie/src/node/node.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/node.ts#L19) ___ @@ -256,4 +256,4 @@ ___ #### Defined in -[packages/trie/src/trie/node/leaf.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/node/leaf.ts#L12) +[packages/trie/src/node/leaf.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/node/leaf.ts#L12) diff --git a/packages/trie/docs/classes/MapDB.md b/packages/trie/docs/classes/MapDB.md deleted file mode 100644 index 2cf62b2d74..0000000000 --- a/packages/trie/docs/classes/MapDB.md +++ /dev/null @@ -1,179 +0,0 @@ -[@ethereumjs/trie](../README.md) / MapDB - -# Class: MapDB - -## Implements - -- [`DB`](../interfaces/DB.md) - -## Table of contents - -### Constructors - -- [constructor](MapDB.md#constructor) - -### Properties - -- [\_database](MapDB.md#_database) - -### Methods - -- [batch](MapDB.md#batch) -- [copy](MapDB.md#copy) -- [del](MapDB.md#del) -- [get](MapDB.md#get) -- [put](MapDB.md#put) - -## Constructors - -### constructor - -• **new MapDB**(`database?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `database?` | `Map`<`string`, `Buffer`\> | - -#### Defined in - -[packages/trie/src/db/map.ts:6](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L6) - -## Properties - -### \_database - -• **\_database**: `Map`<`string`, `Buffer`\> - -#### Defined in - -[packages/trie/src/db/map.ts:4](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L4) - -## Methods - -### batch - -▸ **batch**(`opStack`): `Promise`<`void`\> - -Performs a batch operation on db. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `opStack` | [`BatchDBOp`](../README.md#batchdbop)[] | A stack of levelup operations | - -#### Returns - -`Promise`<`void`\> - -#### Implementation of - -[DB](../interfaces/DB.md).[batch](../interfaces/DB.md#batch) - -#### Defined in - -[packages/trie/src/db/map.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L28) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`DB`](../interfaces/DB.md) - -Returns a copy of the DB instance, with a reference -to the **same** underlying leveldb instance. - -#### Returns - -[`DB`](../interfaces/DB.md) - -#### Implementation of - -[DB](../interfaces/DB.md).[copy](../interfaces/DB.md#copy) - -#### Defined in - -[packages/trie/src/db/map.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L40) - -___ - -### del - -▸ **del**(`key`): `Promise`<`void`\> - -Removes a raw value in the underlying leveldb. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `key` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Implementation of - -[DB](../interfaces/DB.md).[del](../interfaces/DB.md#del) - -#### Defined in - -[packages/trie/src/db/map.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L24) - -___ - -### get - -▸ **get**(`key`): `Promise`<``null`` \| `Buffer`\> - -Retrieves a raw value from leveldb. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `key` | `Buffer` | - -#### Returns - -`Promise`<``null`` \| `Buffer`\> - -A Promise that resolves to `Buffer` if a value is found or `null` if no value is found. - -#### Implementation of - -[DB](../interfaces/DB.md).[get](../interfaces/DB.md#get) - -#### Defined in - -[packages/trie/src/db/map.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L10) - -___ - -### put - -▸ **put**(`key`, `val`): `Promise`<`void`\> - -Writes a value directly to leveldb. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `key` | `Buffer` | The key as a `Buffer` | -| `val` | `Buffer` | - | - -#### Returns - -`Promise`<`void`\> - -#### Implementation of - -[DB](../interfaces/DB.md).[put](../interfaces/DB.md#put) - -#### Defined in - -[packages/trie/src/db/map.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/db/map.ts#L20) diff --git a/packages/trie/docs/classes/Trie.md b/packages/trie/docs/classes/Trie.md index aa7d89b25e..06a611bdf8 100644 --- a/packages/trie/docs/classes/Trie.md +++ b/packages/trie/docs/classes/Trie.md @@ -20,7 +20,6 @@ The basic trie interface, use with `import { Trie } from '@ethereumjs/trie'`. - [checkRoot](Trie.md#checkroot) - [checkpoint](Trie.md#checkpoint) - [commit](Trie.md#commit) -- [copy](Trie.md#copy) - [createProof](Trie.md#createproof) - [createReadStream](Trie.md#createreadstream) - [database](Trie.md#database) @@ -35,6 +34,8 @@ The basic trie interface, use with `import { Trie } from '@ethereumjs/trie'`. - [put](Trie.md#put) - [revert](Trie.md#revert) - [root](Trie.md#root) +- [saveStack](Trie.md#savestack) +- [shallowCopy](Trie.md#shallowcopy) - [verifyProof](Trie.md#verifyproof) - [verifyPrunedIntegrity](Trie.md#verifyprunedintegrity) - [verifyRangeProof](Trie.md#verifyrangeproof) @@ -57,19 +58,19 @@ Creates a new trie. #### Defined in -[packages/trie/src/trie/trie.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L59) +[packages/trie/src/trie.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L73) ## Properties ### EMPTY\_TRIE\_ROOT -• **EMPTY\_TRIE\_ROOT**: `Buffer` +• **EMPTY\_TRIE\_ROOT**: `Uint8Array` The root for an empty trie #### Defined in -[packages/trie/src/trie/trie.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L45) +[packages/trie/src/trie.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L59) ## Methods @@ -78,17 +79,17 @@ The root for an empty trie ▸ **batch**(`ops`): `Promise`<`void`\> The given hash of operations (key additions or deletions) are executed on the trie -(delete operations are only executed on DB with `useNodePruning` set to `true`) +(delete operations are only executed on DB with `deleteFromDB` set to `true`) **`Example`** ```ts const ops = [ - { type: 'del', key: Buffer.from('father') } - , { type: 'put', key: Buffer.from('name'), value: Buffer.from('Yuri Irsenovich Kim') } - , { type: 'put', key: Buffer.from('dob'), value: Buffer.from('16 February 1941') } - , { type: 'put', key: Buffer.from('spouse'), value: Buffer.from('Kim Young-sook') } - , { type: 'put', key: Buffer.from('occupation'), value: Buffer.from('Clown') } + { type: 'del', key: Uint8Array.from('father') } + , { type: 'put', key: Uint8Array.from('name'), value: Uint8Array.from('Yuri Irsenovich Kim') } + , { type: 'put', key: Uint8Array.from('dob'), value: Uint8Array.from('16 February 1941') } + , { type: 'put', key: Uint8Array.from('spouse'), value: Uint8Array.from('Kim Young-sook') } + , { type: 'put', key: Uint8Array.from('occupation'), value: Uint8Array.from('Clown') } ] await trie.batch(ops) ``` @@ -97,7 +98,7 @@ await trie.batch(ops) | Name | Type | | :------ | :------ | -| `ops` | [`BatchDBOp`](../README.md#batchdbop)[] | +| `ops` | `BatchDBOp`<`Uint8Array`, `Uint8Array`\>[] | #### Returns @@ -105,7 +106,7 @@ await trie.batch(ops) #### Defined in -[packages/trie/src/trie/trie.ts:697](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L697) +[packages/trie/src/trie.ts:722](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L722) ___ @@ -119,7 +120,7 @@ Checks if a given root exists. | Name | Type | | :------ | :------ | -| `root` | `Buffer` | +| `root` | `Uint8Array` | #### Returns @@ -127,7 +128,7 @@ Checks if a given root exists. #### Defined in -[packages/trie/src/trie/trie.ts:129](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L129) +[packages/trie/src/trie.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L148) ___ @@ -144,7 +145,7 @@ After this is called, all changes can be reverted until `commit` is called. #### Defined in -[packages/trie/src/trie/trie.ts:927](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L927) +[packages/trie/src/trie.ts:968](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L968) ___ @@ -165,29 +166,7 @@ If not during a checkpoint phase #### Defined in -[packages/trie/src/trie/trie.ts:936](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L936) - -___ - -### shallowCopy - -▸ **shallowCopy**(`includeCheckpoints?`): [`Trie`](Trie.md) - -Returns a copy of the underlying trie. - -#### Parameters - -| Name | Type | Default value | Description | -| :------ | :------ | :------ | :------ | -| `includeCheckpoints` | `boolean` | `true` | If true and during a checkpoint, the copy will contain the checkpointing metadata and will use the same scratch as underlying db. | - -#### Returns - -[`Trie`](Trie.md) - -#### Defined in - -[packages/trie/src/trie/trie.ts:860](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L860) +[packages/trie/src/trie.ts:977](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L977) ___ @@ -201,7 +180,7 @@ Creates a proof from a trie and key that can be verified using [verifyProof](Tri | Name | Type | | :------ | :------ | -| `key` | `Buffer` | +| `key` | `Uint8Array` | #### Returns @@ -209,7 +188,7 @@ Creates a proof from a trie and key that can be verified using [verifyProof](Tri #### Defined in -[packages/trie/src/trie/trie.ts:737](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L737) +[packages/trie/src/trie.ts:762](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L762) ___ @@ -217,7 +196,7 @@ ___ ▸ **createReadStream**(): [`TrieReadStream`](TrieReadStream.md) -The `data` event is given an `Object` that has two properties; the `key` and the `value`. Both should be Buffers. +The `data` event is given an `Object` that has two properties; the `key` and the `value`. Both should be Uint8Arrays. #### Returns @@ -227,7 +206,7 @@ Returns a [stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#str #### Defined in -[packages/trie/src/trie/trie.ts:852](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L852) +[packages/trie/src/trie.ts:884](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L884) ___ @@ -239,7 +218,7 @@ ___ | Name | Type | | :------ | :------ | -| `db?` | [`DB`](../interfaces/DB.md) | +| `db?` | `DB`<`string`, `string`\> | #### Returns @@ -247,7 +226,7 @@ ___ #### Defined in -[packages/trie/src/trie/trie.ts:95](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L95) +[packages/trie/src/trie.ts:114](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L114) ___ @@ -256,13 +235,13 @@ ___ ▸ **del**(`key`): `Promise`<`void`\> Deletes a value given a `key` from the trie -(delete operations are only executed on DB with `useNodePruning` set to `true`) +(delete operations are only executed on DB with `deleteFromDB` set to `true`) #### Parameters | Name | Type | | :------ | :------ | -| `key` | `Buffer` | +| `key` | `Uint8Array` | #### Returns @@ -272,7 +251,7 @@ A Promise that resolves once value is deleted. #### Defined in -[packages/trie/src/trie/trie.ts:218](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L218) +[packages/trie/src/trie.ts:240](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L240) ___ @@ -287,7 +266,7 @@ It returns a `stack` of nodes to the closest node. | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | -| `key` | `Buffer` | `undefined` | the search key | +| `key` | `Uint8Array` | `undefined` | the search key | | `throwIfMissing` | `boolean` | `false` | if true, throws if any nodes are missing. Used for verifying proofs. (default: false) | #### Returns @@ -296,7 +275,7 @@ It returns a `stack` of nodes to the closest node. #### Defined in -[packages/trie/src/trie/trie.ts:253](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L253) +[packages/trie/src/trie.ts:278](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L278) ___ @@ -312,7 +291,7 @@ Flushes all checkpoints, restoring the initial checkpoint state. #### Defined in -[packages/trie/src/trie/trie.ts:966](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L966) +[packages/trie/src/trie.ts:1007](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L1007) ___ @@ -334,13 +313,13 @@ Saves the nodes from a proof into the trie. #### Defined in -[packages/trie/src/trie/trie.ts:715](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L715) +[packages/trie/src/trie.ts:740](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L740) ___ ### get -▸ **get**(`key`, `throwIfMissing?`): `Promise`<``null`` \| `Buffer`\> +▸ **get**(`key`, `throwIfMissing?`): `Promise`<``null`` \| `Uint8Array`\> Gets a value given a `key` @@ -348,18 +327,18 @@ Gets a value given a `key` | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | -| `key` | `Buffer` | `undefined` | the key to search for | +| `key` | `Uint8Array` | `undefined` | the key to search for | | `throwIfMissing` | `boolean` | `false` | if true, throws if any nodes are missing. Used for verifying proofs. (default: false) | #### Returns -`Promise`<``null`` \| `Buffer`\> +`Promise`<``null`` \| `Uint8Array`\> -A Promise that resolves to `Buffer` if a value was found or `null` if no value was found. +A Promise that resolves to `Uint8Array` if a value was found or `null` if no value was found. #### Defined in -[packages/trie/src/trie/trie.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L148) +[packages/trie/src/trie.ts:167](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L167) ___ @@ -375,7 +354,7 @@ Is the trie during a checkpoint phase? #### Defined in -[packages/trie/src/trie/trie.ts:919](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L919) +[packages/trie/src/trie.ts:960](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L960) ___ @@ -389,7 +368,7 @@ Retrieves a node from db by hash. | Name | Type | | :------ | :------ | -| `node` | `Buffer` \| `Buffer`[] | +| `node` | `Uint8Array` \| `Uint8Array`[] | #### Returns @@ -397,7 +376,7 @@ Retrieves a node from db by hash. #### Defined in -[packages/trie/src/trie/trie.ts:344](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L344) +[packages/trie/src/trie.ts:369](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L369) ___ @@ -413,7 +392,7 @@ Persists the root hash in the underlying database #### Defined in -[packages/trie/src/trie/trie.ts:875](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L875) +[packages/trie/src/trie.ts:916](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L916) ___ @@ -422,14 +401,14 @@ ___ ▸ **put**(`key`, `value`): `Promise`<`void`\> Stores a given `value` at the given `key` or do a delete if `value` is empty -(delete operations are only executed on DB with `useNodePruning` set to `true`) +(delete operations are only executed on DB with `deleteFromDB` set to `true`) #### Parameters | Name | Type | | :------ | :------ | -| `key` | `Buffer` | -| `value` | `Buffer` | +| `key` | `Uint8Array` | +| `value` | `Uint8Array` | #### Returns @@ -439,7 +418,7 @@ A Promise that resolves once value is stored. #### Defined in -[packages/trie/src/trie/trie.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L164) +[packages/trie/src/trie.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L183) ___ @@ -457,13 +436,13 @@ parent checkpoint as current. #### Defined in -[packages/trie/src/trie/trie.ts:952](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L952) +[packages/trie/src/trie.ts:993](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L993) ___ ### root -▸ **root**(`value?`): `Buffer` +▸ **root**(`value?`): `Uint8Array` Gets and/or Sets the current root of the `trie` @@ -471,21 +450,74 @@ Gets and/or Sets the current root of the `trie` | Name | Type | | :------ | :------ | -| `value?` | ``null`` \| `Buffer` | +| `value?` | ``null`` \| `Uint8Array` | #### Returns -`Buffer` +`Uint8Array` + +#### Defined in + +[packages/trie/src/trie.ts:129](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L129) + +___ + +### saveStack + +▸ **saveStack**(`key`, `stack`, `opStack`): `Promise`<`void`\> + +Saves a stack of nodes to the database. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `key` | [`Nibbles`](../README.md#nibbles) | the key. Should follow the stack | +| `stack` | [`TrieNode`](../README.md#trienode)[] | a stack of nodes to the value given by the key | +| `opStack` | `BatchDBOp`<`Uint8Array`, `Uint8Array`\>[] | a stack of levelup operations to commit at the end of this function | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[packages/trie/src/trie.ts:637](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L637) + +___ + +### shallowCopy + +▸ **shallowCopy**(`includeCheckpoints?`): [`Trie`](Trie.md) + +Returns a copy of the underlying trie. + +Note on db: the copy will create a reference to the +same underlying database. + +Note on cache: for memory reasons a copy will not +recreate a new LRU cache but initialize with cache +being deactivated. + +#### Parameters + +| Name | Type | Default value | Description | +| :------ | :------ | :------ | :------ | +| `includeCheckpoints` | `boolean` | `true` | If true and during a checkpoint, the copy will contain the checkpointing metadata and will use the same scratch as underlying db. | + +#### Returns + +[`Trie`](Trie.md) #### Defined in -[packages/trie/src/trie/trie.ts:110](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L110) +[packages/trie/src/trie.ts:900](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L900) ___ ### verifyProof -▸ **verifyProof**(`rootHash`, `key`, `proof`): `Promise`<``null`` \| `Buffer`\> +▸ **verifyProof**(`rootHash`, `key`, `proof`): `Promise`<``null`` \| `Uint8Array`\> Verifies a proof. @@ -497,19 +529,19 @@ If proof is found to be invalid. | Name | Type | | :------ | :------ | -| `rootHash` | `Buffer` | -| `key` | `Buffer` | +| `rootHash` | `Uint8Array` | +| `key` | `Uint8Array` | | `proof` | [`Proof`](../README.md#proof) | #### Returns -`Promise`<``null`` \| `Buffer`\> +`Promise`<``null`` \| `Uint8Array`\> The value from the key, or null if valid proof of non-existence. #### Defined in -[packages/trie/src/trie/trie.ts:753](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L753) +[packages/trie/src/trie.ts:778](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L778) ___ @@ -523,7 +555,7 @@ ___ #### Defined in -[packages/trie/src/trie/trie.ts:801](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L801) +[packages/trie/src/trie.ts:830](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L830) ___ @@ -537,12 +569,12 @@ ___ | Name | Type | | :------ | :------ | -| `rootHash` | `Buffer` | -| `firstKey` | ``null`` \| `Buffer` | -| `lastKey` | ``null`` \| `Buffer` | -| `keys` | `Buffer`[] | -| `values` | `Buffer`[] | -| `proof` | ``null`` \| `Buffer`[] | +| `rootHash` | `Uint8Array` | +| `firstKey` | ``null`` \| `Uint8Array` | +| `lastKey` | ``null`` \| `Uint8Array` | +| `keys` | `Uint8Array`[] | +| `values` | `Uint8Array`[] | +| `proof` | ``null`` \| `Uint8Array`[] | #### Returns @@ -550,7 +582,7 @@ ___ #### Defined in -[packages/trie/src/trie/trie.ts:778](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L778) +[packages/trie/src/trie.ts:807](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L807) ___ @@ -564,7 +596,7 @@ Walks a trie until finished. | Name | Type | Description | | :------ | :------ | :------ | -| `root` | `Buffer` | | +| `root` | `Uint8Array` | | | `onFound` | [`FoundNodeFunction`](../README.md#foundnodefunction) | callback to call when a node is found. This schedules new tasks. If no tasks are available, the Promise resolves. | #### Returns @@ -575,7 +607,7 @@ Resolves when finished walking trie. #### Defined in -[packages/trie/src/trie/trie.ts:324](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L324) +[packages/trie/src/trie.ts:349](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L349) ___ @@ -595,4 +627,4 @@ ___ #### Defined in -[packages/trie/src/trie/trie.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie/trie.ts#L75) +[packages/trie/src/trie.ts:89](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/trie.ts#L89) diff --git a/packages/trie/docs/classes/TrieReadStream.md b/packages/trie/docs/classes/TrieReadStream.md index bfc9eed415..6279016fb2 100644 --- a/packages/trie/docs/classes/TrieReadStream.md +++ b/packages/trie/docs/classes/TrieReadStream.md @@ -277,7 +277,7 @@ node_modules/@types/readable-stream/index.d.ts:296 #### Inherited from -Readable.\_\_@asyncIterator@21362 +Readable.\_\_@asyncIterator@21534 #### Defined in diff --git a/packages/trie/docs/classes/WalkController.md b/packages/trie/docs/classes/WalkController.md index 4e7c3b2e11..7f1e493f7a 100644 --- a/packages/trie/docs/classes/WalkController.md +++ b/packages/trie/docs/classes/WalkController.md @@ -109,7 +109,7 @@ Push a node to the queue. If the queue has places left for tasks, the node is ex | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | -| `nodeRef` | `Buffer` | `undefined` | Push a node reference to the event queue. This reference is a 32-byte keccak hash of the value corresponding to the `key`. | +| `nodeRef` | `Uint8Array` | `undefined` | Push a node reference to the event queue. This reference is a 32-byte keccak hash of the value corresponding to the `key`. | | `key` | [`Nibbles`](../README.md#nibbles) | `[]` | The current key. | | `priority?` | `number` | `undefined` | Optional priority, defaults to key length | @@ -135,7 +135,7 @@ Async function to create and start a new walk over a trie. | :------ | :------ | :------ | | `onNode` | [`FoundNodeFunction`](../README.md#foundnodefunction) | The `FoundNodeFunction to call if a node is found. | | `trie` | [`Trie`](Trie.md) | The trie to walk on. | -| `root` | `Buffer` | The root key to walk on. | +| `root` | `Uint8Array` | The root key to walk on. | | `poolSize?` | `number` | Task execution pool size to prevent OOM errors. Defaults to 500. | #### Returns diff --git a/packages/trie/docs/interfaces/CheckpointDBOpts.md b/packages/trie/docs/interfaces/CheckpointDBOpts.md new file mode 100644 index 0000000000..3cdc21b172 --- /dev/null +++ b/packages/trie/docs/interfaces/CheckpointDBOpts.md @@ -0,0 +1,34 @@ +[@ethereumjs/trie](../README.md) / CheckpointDBOpts + +# Interface: CheckpointDBOpts + +## Table of contents + +### Properties + +- [cacheSize](CheckpointDBOpts.md#cachesize) +- [db](CheckpointDBOpts.md#db) + +## Properties + +### cacheSize + +• `Optional` **cacheSize**: `number` + +Cache size (default: 0) + +#### Defined in + +[packages/trie/src/types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L92) + +___ + +### db + +• **db**: `DB`<`string`, `string`\> + +A database instance. + +#### Defined in + +[packages/trie/src/types.ts:87](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L87) diff --git a/packages/trie/docs/interfaces/DB.md b/packages/trie/docs/interfaces/DB.md deleted file mode 100644 index 4ed8a67401..0000000000 --- a/packages/trie/docs/interfaces/DB.md +++ /dev/null @@ -1,126 +0,0 @@ -[@ethereumjs/trie](../README.md) / DB - -# Interface: DB - -## Implemented by - -- [`CheckpointDB`](../classes/CheckpointDB.md) -- [`MapDB`](../classes/MapDB.md) - -## Table of contents - -### Methods - -- [batch](DB.md#batch) -- [copy](DB.md#copy) -- [del](DB.md#del) -- [get](DB.md#get) -- [put](DB.md#put) - -## Methods - -### batch - -▸ **batch**(`opStack`): `Promise`<`void`\> - -Performs a batch operation on db. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `opStack` | [`BatchDBOp`](../README.md#batchdbop)[] | A stack of levelup operations | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[packages/trie/src/types.ts:110](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L110) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`DB`](DB.md) - -Returns a copy of the DB instance, with a reference -to the **same** underlying leveldb instance. - -#### Returns - -[`DB`](DB.md) - -#### Defined in - -[packages/trie/src/types.ts:116](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L116) - -___ - -### del - -▸ **del**(`key`): `Promise`<`void`\> - -Removes a raw value in the underlying leveldb. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `key` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[packages/trie/src/types.ts:104](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L104) - -___ - -### get - -▸ **get**(`key`): `Promise`<``null`` \| `Buffer`\> - -Retrieves a raw value from leveldb. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `key` | `Buffer` | - -#### Returns - -`Promise`<``null`` \| `Buffer`\> - -A Promise that resolves to `Buffer` if a value is found or `null` if no value is found. - -#### Defined in - -[packages/trie/src/types.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L91) - -___ - -### put - -▸ **put**(`key`, `val`): `Promise`<`void`\> - -Writes a value directly to leveldb. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `key` | `Buffer` | The key as a `Buffer` | -| `val` | `Buffer` | - | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[packages/trie/src/types.ts:98](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L98) diff --git a/packages/trie/docs/interfaces/DelBatch.md b/packages/trie/docs/interfaces/DelBatch.md deleted file mode 100644 index fec31e45fe..0000000000 --- a/packages/trie/docs/interfaces/DelBatch.md +++ /dev/null @@ -1,30 +0,0 @@ -[@ethereumjs/trie](../README.md) / DelBatch - -# Interface: DelBatch - -## Table of contents - -### Properties - -- [key](DelBatch.md#key) -- [type](DelBatch.md#type) - -## Properties - -### key - -• **key**: `Buffer` - -#### Defined in - -[packages/trie/src/types.ts:82](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L82) - -___ - -### type - -• **type**: ``"del"`` - -#### Defined in - -[packages/trie/src/types.ts:81](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L81) diff --git a/packages/trie/docs/interfaces/PutBatch.md b/packages/trie/docs/interfaces/PutBatch.md deleted file mode 100644 index eda80e3153..0000000000 --- a/packages/trie/docs/interfaces/PutBatch.md +++ /dev/null @@ -1,41 +0,0 @@ -[@ethereumjs/trie](../README.md) / PutBatch - -# Interface: PutBatch - -## Table of contents - -### Properties - -- [key](PutBatch.md#key) -- [type](PutBatch.md#type) -- [value](PutBatch.md#value) - -## Properties - -### key - -• **key**: `Buffer` - -#### Defined in - -[packages/trie/src/types.ts:76](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L76) - -___ - -### type - -• **type**: ``"put"`` - -#### Defined in - -[packages/trie/src/types.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L75) - -___ - -### value - -• **value**: `Buffer` - -#### Defined in - -[packages/trie/src/types.ts:77](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L77) diff --git a/packages/trie/docs/interfaces/TrieOpts.md b/packages/trie/docs/interfaces/TrieOpts.md index 71d3c97aa6..555e3b55fe 100644 --- a/packages/trie/docs/interfaces/TrieOpts.md +++ b/packages/trie/docs/interfaces/TrieOpts.md @@ -6,6 +6,7 @@ ### Properties +- [cacheSize](TrieOpts.md#cachesize) - [db](TrieOpts.md#db) - [root](TrieOpts.md#root) - [useKeyHashing](TrieOpts.md#usekeyhashing) @@ -15,27 +16,41 @@ ## Properties +### cacheSize + +• `Optional` **cacheSize**: `number` + +LRU cache for trie nodes to allow for faster node retrieval. + +Default: 0 (deactivated) + +#### Defined in + +[packages/trie/src/types.ts:72](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L72) + +___ + ### db -• `Optional` **db**: [`DB`](DB.md) +• `Optional` **db**: `DB`<`string`, `string`\> A database instance. #### Defined in -[packages/trie/src/types.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L27) +[packages/trie/src/types.ts:30](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L30) ___ ### root -• `Optional` **root**: `Buffer` +• `Optional` **root**: `Uint8Array` -A `Buffer` for the root of a previously stored trie +A `Uint8Array` for the root of a previously stored trie #### Defined in -[packages/trie/src/types.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L32) +[packages/trie/src/types.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L35) ___ @@ -56,7 +71,7 @@ instantiation with `useKeyHashing` set to `true`. #### Defined in -[packages/trie/src/types.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L46) +[packages/trie/src/types.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L49) ___ @@ -68,7 +83,7 @@ Hash function used for hashing trie node and securing key. #### Defined in -[packages/trie/src/types.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L51) +[packages/trie/src/types.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L54) ___ @@ -81,7 +96,7 @@ unreachable nodes will be pruned (deleted) from the trie #### Defined in -[packages/trie/src/types.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L62) +[packages/trie/src/types.ts:65](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L65) ___ @@ -93,4 +108,4 @@ Store the root inside the database after every `write` operation #### Defined in -[packages/trie/src/types.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L56) +[packages/trie/src/types.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/trie/src/types.ts#L59) From e6fe6f1fd3b26d1d0cd5263984367eed4f422cad Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 11:12:13 +0200 Subject: [PATCH 13/38] Version bump, update upstream dependency versions, update README (Trie) --- packages/block/package.json | 2 +- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/common/README.md | 10 +- packages/statemanager/package.json | 2 +- packages/trie/README.md | 168 +++++------------- packages/trie/package.json | 4 +- packages/vm/package.json | 2 +- 9 files changed, 60 insertions(+), 134 deletions(-) diff --git a/packages/block/package.json b/packages/block/package.json index 0b5eb01bc5..ce1284f4ac 100644 --- a/packages/block/package.json +++ b/packages/block/package.json @@ -47,7 +47,7 @@ "dependencies": { "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/trie": "^5.0.5", + "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "9.0.0-rc.1", "ethereum-cryptography": "^2.1.2" diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index d8ead45796..191b265820 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -49,7 +49,7 @@ "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/ethash": "^2.0.5", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/trie": "^5.0.5", + "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index d97343e690..98347db7e5 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -65,7 +65,7 @@ "@ethereumjs/evm": "1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", - "@ethereumjs/trie": "5.0.5", + "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "4.1.2", "@ethereumjs/util": "9.0.0-rc.1", "@ethereumjs/vm": "6.4.2", diff --git a/packages/client/package.json b/packages/client/package.json index b0c19aff71..e24a7aa03a 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -66,7 +66,7 @@ "@ethereumjs/genesis": "0.0.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", - "@ethereumjs/trie": "5.0.5", + "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "4.1.2", "@ethereumjs/util": "9.0.0-rc.1", "@ethereumjs/vm": "6.4.2", diff --git a/packages/common/README.md b/packages/common/README.md index 190b433be5..c44f6a6da1 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -37,7 +37,7 @@ require (CommonJS, Node.js): const { Common, Chain, Hardfork } = require('@ethereumjs/common') ``` -## Parameters +### Parameters All parameters can be accessed through the `Common` class, instantiated with an object containing either the `chain` (e.g. 'Chain.Mainnet') or the `chain` together with a specific `hardfork` provided: @@ -71,7 +71,13 @@ c.bootstrapNodes() // Array with current nodes c = new Common({ chain: Chain.Mainnet, eips: [4844] }) ``` -# API +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + +## API ### Docs diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index fd3a25171a..feb501447f 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -59,7 +59,7 @@ "devDependencies": { "@ethereumjs/block": "^4.2.2", "@ethereumjs/genesis": "^0.0.1", - "@ethereumjs/trie": "^5.0.5", + "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "@types/tape": "^4.13.2", "debug": "^4.3.3", diff --git a/packages/trie/README.md b/packages/trie/README.md index ca7064fe01..0e91446c61 100644 --- a/packages/trie/README.md +++ b/packages/trie/README.md @@ -8,7 +8,8 @@ Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. -This is an implementation of the [Modified Merkle Patricia Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) as specified in the [Ethereum Yellow Paper](http://gavwood.com/Paper.pdf): +| Implementation of the [Modified Merkle Patricia Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) as specified in the [Ethereum Yellow Paper](http://gavwood.com/Paper.pdf) | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | > The modified Merkle Patricia tree (trie) provides a persistent data structure to map between arbitrary-length binary data (byte arrays). It is defined in terms of a mutable data structure to map between 256-bit binary fragments and arbitrary-length binary data. The core of the trie, and its sole requirement in terms of the protocol specification, is to provide a single 32-byte value that identifies a given set of key-value pairs. @@ -20,16 +21,10 @@ To obtain the latest version, simply require the project using `npm`: npm install @ethereumjs/trie ``` -### Upgrading - -If you currently use this package in your project and plan to upgrade, please review our [upgrade guide](./UPGRADING.md) first. It will ensure you take all the necessary steps and streamline the upgrade process. - ## Usage This class implements the basic [Modified Merkle Patricia Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) in the `Trie` base class, which you can use with the `useKeyHashing` option set to `true` to create a trie which stores values under the `keccak256` hash of its keys (this is the Trie flavor which is used in Ethereum production systems). -**Note:** Up to v4 of the Trie library the secure trie was implemented as a separate `SecureTrie` class, see the [upgrade guide](./UPGRADING.md) for more infos. - Checkpointing functionality to `Trie` through the methods `checkpoint`, `commit` and `revert`. It is best to select the variant that is most appropriate for your unique use case. @@ -37,14 +32,15 @@ It is best to select the variant that is most appropriate for your unique use ca ### Initialization and Basic Usage ```typescript -import { Trie, MapDB } from '@ethereumjs/trie' +import { Trie } from '@ethereumjs/trie' +import { bytesToUtf8, MapDB, utf8ToBytes } from '@ethereumjs/util' const trie = new Trie({ db: new MapDB() }) async function test() { - await trie.put(Buffer.from('test'), Buffer.from('one')) - const value = await trie.get(Buffer.from('test')) - console.log(value.toString()) // 'one' + await trie.put(utf8ToBytes('test'), utf8ToBytes('one')) + const value = await trie.get(utf8ToBytes('test')) + console.log(value ? bytesToUtf8(value) : 'not found') // 'one' } test() @@ -53,14 +49,15 @@ test() ### Use with static constructor ```typescript -import { Trie, MapDB } from '@ethereumjs/trie' +import { Trie } from '@ethereumjs/trie' +import { bytesToUtf8, utf8ToBytes } from '@ethereumjs/util' -const trie = Trie.create() +const trie = await Trie.create() async function test() { - await trie.put(Buffer.from('test'), Buffer.from('one')) - const value = await trie.get(Buffer.from('test')) - console.log(value.toString()) // 'one' + await trie.put(utf8ToBytes('test'), utf8ToBytes('one')) + const value = await trie.get(utf8ToBytes('test')) + console.log(value ? bytesToUtf8(value) : 'not found') // 'one' } test() @@ -74,9 +71,9 @@ When the static `Trie.create` constructor is used without any options, the `trie The `DB` opt in the `TrieOpts` allows you to use any database that conforms to the `DB` interface to store the trie data in. We provide several [examples](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/trie/examples) for database implementations. The [level.js](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/trie/examples/level.js) example is used in the `ethereumjs client` while [lmdb.js](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/trie/examples/lmdb.js) is an alternative implementation that uses the popular [LMDB](https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database) as its underlying database. -If no `db` option is provided, an in-memory database powered by [a Javascript Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) will fulfill this role. +If no `db` option is provided, an in-memory database powered by [a Javascript Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) will fulfill this role (imported from `@ethereumjs/util`, see [mapDB](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/mapDB.ts) module). -If you want to use an alternative database, you can integrate your own by writing a DB wrapper that conforms to the [`DB` interface](./src/types.ts#L85). The `DB` interface defines the methods `get`, `put`, `del`, `batch` and `copy` that a concrete implementation of the `DB` interface will need to implement. +If you want to use an alternative database, you can integrate your own by writing a DB wrapper that conforms to the [`DB` interface](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/db.ts) (in `@ethereumjs/util`). The `DB` interface defines the methods `get`, `put`, `del`, `batch` and `copy` that a concrete implementation of the `DB` interface will need to implement. ##### LevelDB @@ -100,10 +97,9 @@ By default, the deletion of trie nodes from the underlying database does not occ You can enable persistence by setting the `useRootPersistence` option to `true` when constructing a trie through the `Trie.create` function. As such, this value is preserved when creating copies of the trie and is incapable of being modified once a trie is instantiated. ```typescript -import { Trie, MapDB } from '@ethereumjs/trie' +import { Trie } from '@ethereumjs/trie' const trie = await Trie.create({ - db: new MapDB(), useRootPersistence: true, }) ``` @@ -119,13 +115,16 @@ The `createProof` and `verifyProof` functions allow you to verify that a certain The following code demonstrates how to construct and subsequently verify a proof that confirms the existence of the key `test` (which corresponds with the value `one`) within the given trie. This is also known as inclusion, hence the name 'Proof-of-Inclusion.' ```typescript +import { Trie } from '@ethereumjs/trie' +import { bytesToUtf8, utf8ToBytes } from '@ethereumjs/util' + const trie = new Trie() async function test() { - await trie.put(Buffer.from('test'), Buffer.from('one')) - const proof = await trie.createProof(Buffer.from('test')) - const value = await trie.verifyProof(trie.root(), Buffer.from('test'), proof) - console.log(value.toString()) // 'one' + await trie.put(utf8ToBytes('test'), utf8ToBytes('one')) + const proof = await trie.createProof(utf8ToBytes('test')) + const value = await trie.verifyProof(trie.root(), utf8ToBytes('test'), proof) + console.log(value ? bytesToUtf8(value) : 'not found') // 'one' } test() @@ -136,14 +135,17 @@ test() The following code demonstrates how to construct and subsequently verify a proof that confirms that the key `test3` does not exist within the given trie. This is also known as exclusion, hence the name 'Proof-of-Exclusion.' ```typescript +import { Trie } from '@ethereumjs/trie' +import { bytesToUtf8, utf8ToBytes } from '@ethereumjs/util' + const trie = new Trie() async function test() { - await trie.put(Buffer.from('test'), Buffer.from('one')) - await trie.put(Buffer.from('test2'), Buffer.from('two')) - const proof = await trie.createProof(Buffer.from('test3')) - const value = await trie.verifyProof(trie.root(), Buffer.from('test3'), proof) - console.log(value.toString()) // null + await trie.put(utf8ToBytes('test'), utf8ToBytes('one')) + await trie.put(utf8ToBytes('test2'), utf8ToBytes('two')) + const proof = await trie.createProof(utf8ToBytes('test3')) + const value = await trie.verifyProof(trie.root(), utf8ToBytes('test3'), proof) + console.log(value ? bytesToUtf8(value) : 'null') // null } test() @@ -154,16 +156,19 @@ test() If `verifyProof` detects an invalid proof, it will throw an error. While contrived, the below example illustrates the resulting error condition in the event a prover tampers with the data in a merkle proof. ```typescript +import { Trie } from '@ethereumjs/trie' +import { bytesToUtf8, utf8ToBytes } from '@ethereumjs/util' + const trie = new Trie() async function test() { - await trie.put(Buffer.from('test'), Buffer.from('one')) - await trie.put(Buffer.from('test2'), Buffer.from('two')) - const proof = await trie.createProof(Buffer.from('test2')) + await trie.put(utf8ToBytes('test'), utf8ToBytes('one')) + await trie.put(utf8ToBytes('test2'), utf8ToBytes('two')) + const proof = await trie.createProof(utf8ToBytes('test2')) proof[1].reverse() try { - const value = await trie.verifyProof(trie.root(), Buffer.from('test2'), proof) - console.log(value.toString()) // results in error + const value = await trie.verifyProof(trie.root(), utf8ToBytes('test2'), proof) + console.log(value ? bytesToUtf8(value) : 'not found') // results in error } catch (err) { console.log(err) // Missing node in DB } @@ -176,78 +181,15 @@ test() You may use the `Trie.verifyRangeProof()` function to confirm if the given leaf nodes and edge proof possess the capacity to prove that the given trie leaves' range matches the specific root (which is useful for snap sync, for instance). -## Read Stream on Geth DB - -```typescript -import { Level } from 'level' -import { LevelDB, Trie } from '@ethereumjs/trie' - -import { LevelDB } from './your-level-implementation' - -// Set stateRoot to block #222 -const stateRoot = '0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544' -// Convert the state root to a Buffer (strip the 0x prefix) -const stateRootBuffer = Buffer.from(stateRoot.slice(2), 'hex') -// Initialize trie -const trie = new Trie({ - db: new LevelDB(new Level('YOUR_PATH_TO_THE_GETH_CHAIN_DB')), - root: stateRootBuffer, - useKeyHashing: true, -}) - -trie - .createReadStream() - .on('data', console.log) - .on('end', () => console.log('End.')) -``` - -## Read Account State Including Storage From Geth DB - -```typescript -import { Level } from 'level' -import { Trie, LevelDB } from '@ethereumjs/trie' -import { Account, bufferToHex } from '@ethereumjs/util' -import { RLP } from '@ethereumjs/rlp' - -import { LevelDB } from './your-level-implementation' +## Examples -const stateRoot = 'STATE_ROOT_OF_A_BLOCK' +You can find additional examples complete with detailed explanations [here](./examples/README.md). -const trie = new Trie({ - db: new LevelDB(new Level('YOUR_PATH_TO_THE_GETH_CHAINDATA_FOLDER')), - root: stateRoot - useKeyHashing: true, -}) +## Browser -const address = 'AN_ETHEREUM_ACCOUNT_ADDRESS' +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. -async function test() { - const data = await trie.get(address) - const acc = Account.fromAccountData(data) - - console.log('-------State-------') - console.log(`nonce: ${acc.nonce}`) - console.log(`balance in wei: ${acc.balance}`) - console.log(`storageRoot: ${bufferToHex(acc.stateRoot)}`) - console.log(`codeHash: ${bufferToHex(acc.codeHash)}`) - - const storageTrie = trie.shallowCopy() - storageTrie.root(acc.stateRoot) - - console.log('------Storage------') - const stream = storageTrie.createReadStream() - stream - .on('data', (data) => { - console.log(`key: ${bufferToHex(data.key)}`) - console.log(`Value: ${bufferToHex(Buffer.from(RLP.decode(data.value)))}`) - }) - .on('end', () => console.log('Finished reading storage.')) -} - -test() -``` - -You can find additional examples complete with detailed explanations [here](./examples/README.md). +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). ## API @@ -285,28 +227,6 @@ With the 5.0.0 release, [BigInt](https://developer.mozilla.org/en-US/docs/Web/Ja BigInt is a primitive that is used to represent and manipulate primitive `bigint` values that the number primitive is incapable of representing as a result of their magnitude. `ES2020` saw the introduction of this particular feature. Note that this version update resulted in the altering of number-related API signatures and that the minimal build target is now set to `ES2020`. -## Testing - -You may run tests for browsers and node.js using: - -```shell -npm run test -``` - -You may run tests for browsers using: - -```shell -npm run test:browser -``` - -> Note that this requires an installation of [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/), otherwise the tests will fail. - -You may run tests for node.js using: - -```shell -npm run test:node -``` - ## Benchmarking You will find two simple **benchmarks** in the `benchmarks` folder: diff --git a/packages/trie/package.json b/packages/trie/package.json index 3b6d1aa3fa..db8b1cb7c9 100644 --- a/packages/trie/package.json +++ b/packages/trie/package.json @@ -1,7 +1,7 @@ { "name": "@ethereumjs/trie", - "version": "5.0.5", - "description": "This is an implementation of the modified merkle patricia tree as specified in Ethereum's yellow paper.", + "version": "6.0.0-rc.1", + "description": "Implementation of the modified merkle patricia tree as specified in Ethereum's yellow paper.", "keywords": [ "merkle", "radix", diff --git a/packages/vm/package.json b/packages/vm/package.json index 29c143659e..aa97595a46 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -68,7 +68,7 @@ "@ethereumjs/evm": "^1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "^1.0.5", - "@ethereumjs/trie": "^5.0.5", + "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", From bfeb7aff80a4cc7b3026a1e9c685494033aea199 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 11:25:56 +0200 Subject: [PATCH 14/38] Version bump, update upstream dependency versions, update README (devp2p) --- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/devp2p/README.md | 31 +++++-------------- packages/devp2p/package.json | 2 +- 4 files changed, 10 insertions(+), 27 deletions(-) diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 98347db7e5..8764e07160 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -60,7 +60,7 @@ "@ethereumjs/block": "4.2.2", "@ethereumjs/blockchain": "6.2.2", "@ethereumjs/common": "4.0.0-rc.1", - "@ethereumjs/devp2p": "5.1.2", + "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", diff --git a/packages/client/package.json b/packages/client/package.json index e24a7aa03a..5ad502e386 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -60,7 +60,7 @@ "@ethereumjs/block": "4.2.2", "@ethereumjs/blockchain": "6.2.2", "@ethereumjs/common": "4.0.0-rc.1", - "@ethereumjs/devp2p": "5.1.2", + "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", "@ethereumjs/genesis": "0.0.1", diff --git a/packages/devp2p/README.md b/packages/devp2p/README.md index 8be378db90..3b7ab7acca 100644 --- a/packages/devp2p/README.md +++ b/packages/devp2p/README.md @@ -17,21 +17,7 @@ This library bundles different components for lower-level peer-to-peer connectio - Ethereum Wire Protocol (ETH/66) - Light Ethereum Subprotocol (LES/4) -## Run/Build - -To build the `dist/` directory, run: - -```shell -npm run build -``` - -You can also use `ts-node` to run a script without first transpiling to js (you need to `npm i --save-dev ts-node` first): - -```shell -node -r ts-node/register [YOUR_SCRIPT_TO_RUN.ts] -``` - -## Usage/Examples +## Usage All components of this library are implemented as Node `EventEmitter` objects and make heavy use of the Node.js network stack. @@ -44,6 +30,8 @@ dpt.on('peer:added', (peer) => { }) ``` +## Examples + Basic example to connect to some bootstrap nodes and get basic peer info: - [simple](examples/simple.cts) @@ -75,7 +63,10 @@ includes node discovery ([./src/dpt/server.ts](./src/dpt/server.ts)) Create your peer table: ```typescript -const dpt = new DPT(Buffer.from(PRIVATE_KEY, 'hex'), { +import { DPT } from '@ethereumjs/devp2p' +import { hexToBytes } from '@ethereumjs/util' + +const dpt = new DPT(hexToBytes(PRIVATE_KEY), { endpoint: { address: '0.0.0.0', udpPort: null, @@ -395,14 +386,6 @@ While it's possible to bundle this package for the browser, some features do not module. DNS discovery mode can be toggled on/off via the DPTOption `shouldGetDnsPeers` ("false" by default). -## Tests - -There are unit tests in the `test/` directory which can be run with: - -```shell -npm run test -``` - ## Debugging ### Introduction diff --git a/packages/devp2p/package.json b/packages/devp2p/package.json index b65832c676..26fe95ce55 100644 --- a/packages/devp2p/package.json +++ b/packages/devp2p/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/devp2p", - "version": "5.1.2", + "version": "6.0.0-rc.1", "description": "A JavaScript implementation of ÐΞVp2p", "keywords": [ "ethereum", From 3ef0fbbb863af0f7a2e014ad15b747276a330810 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 11:28:29 +0200 Subject: [PATCH 15/38] Rebuild docs (Tx) --- packages/tx/docs/README.md | 267 +++--- .../classes/AccessListEIP2930Transaction.md | 286 +++---- .../tx/docs/classes/BlobEIP4844Transaction.md | 439 +++++----- .../classes/FeeMarketEIP1559Transaction.md | 288 +++---- packages/tx/docs/classes/LegacyTransaction.md | 786 +++++++++++++++++ packages/tx/docs/classes/Transaction.md | 807 ------------------ .../tx/docs/classes/TransactionFactory.md | 70 +- packages/tx/docs/enums/Capability.md | 10 +- packages/tx/docs/enums/TransactionType.md | 54 ++ .../interfaces/AccessListEIP2930TxData.md | 50 +- .../tx/docs/interfaces/BlobEIP4844TxData.md | 71 +- .../docs/interfaces/FeeMarketEIP1559TxData.md | 34 +- packages/tx/docs/interfaces/JsonRpcTx.md | 42 +- packages/tx/docs/interfaces/JsonTx.md | 32 +- packages/tx/docs/interfaces/Transaction.md | 52 ++ .../docs/interfaces/TransactionInterface.md | 340 ++++++++ packages/tx/docs/interfaces/TxData.md | 52 ++ packages/tx/docs/interfaces/TxOptions.md | 8 +- packages/tx/docs/interfaces/TxValuesArray.md | 52 ++ 19 files changed, 2113 insertions(+), 1627 deletions(-) create mode 100644 packages/tx/docs/classes/LegacyTransaction.md delete mode 100644 packages/tx/docs/classes/Transaction.md create mode 100644 packages/tx/docs/enums/TransactionType.md create mode 100644 packages/tx/docs/interfaces/Transaction.md create mode 100644 packages/tx/docs/interfaces/TransactionInterface.md create mode 100644 packages/tx/docs/interfaces/TxData.md create mode 100644 packages/tx/docs/interfaces/TxValuesArray.md diff --git a/packages/tx/docs/README.md b/packages/tx/docs/README.md index 3eb948b76a..0250040025 100644 --- a/packages/tx/docs/README.md +++ b/packages/tx/docs/README.md @@ -7,13 +7,14 @@ ### Enumerations - [Capability](enums/Capability.md) +- [TransactionType](enums/TransactionType.md) ### Classes - [AccessListEIP2930Transaction](classes/AccessListEIP2930Transaction.md) - [BlobEIP4844Transaction](classes/BlobEIP4844Transaction.md) - [FeeMarketEIP1559Transaction](classes/FeeMarketEIP1559Transaction.md) -- [Transaction](classes/Transaction.md) +- [LegacyTransaction](classes/LegacyTransaction.md) - [TransactionFactory](classes/TransactionFactory.md) ### Interfaces @@ -23,38 +24,35 @@ - [FeeMarketEIP1559TxData](interfaces/FeeMarketEIP1559TxData.md) - [JsonRpcTx](interfaces/JsonRpcTx.md) - [JsonTx](interfaces/JsonTx.md) +- [Transaction](interfaces/Transaction.md) +- [TransactionInterface](interfaces/TransactionInterface.md) +- [TxData](interfaces/TxData.md) - [TxOptions](interfaces/TxOptions.md) +- [TxValuesArray](interfaces/TxValuesArray.md) ### Type Aliases - [AccessList](README.md#accesslist) -- [AccessListBuffer](README.md#accesslistbuffer) -- [AccessListBufferItem](README.md#accesslistbufferitem) -- [AccessListEIP2930ValuesArray](README.md#accesslisteip2930valuesarray) +- [AccessListBytes](README.md#accesslistbytes) +- [AccessListBytesItem](README.md#accesslistbytesitem) - [AccessListItem](README.md#accesslistitem) -- [FeeMarketEIP1559ValuesArray](README.md#feemarketeip1559valuesarray) -- [TxData](README.md#txdata) -- [TxValuesArray](README.md#txvaluesarray) +- [BlobEIP4844NetworkValuesArray](README.md#blobeip4844networkvaluesarray) +- [LegacyTxData](README.md#legacytxdata) - [TypedTransaction](README.md#typedtransaction) - -### Variables - -- [AccessTupleType](README.md#accesstupletype) -- [AddressType](README.md#addresstype) -- [BlobNetworkTransactionWrapper](README.md#blobnetworktransactionwrapper) -- [BlobTransactionType](README.md#blobtransactiontype) -- [ECDSASignatureType](README.md#ecdsasignaturetype) -- [KZGCommitmentType](README.md#kzgcommitmenttype) -- [KZGProofType](README.md#kzgprooftype) -- [SignedBlobTransactionType](README.md#signedblobtransactiontype) -- [kzg](README.md#kzg) +- [TypedTxData](README.md#typedtxdata) ### Functions -- [computeVersionedHash](README.md#computeversionedhash) -- [initKZG](README.md#initkzg) - [isAccessList](README.md#isaccesslist) -- [isAccessListBuffer](README.md#isaccesslistbuffer) +- [isAccessListBytes](README.md#isaccesslistbytes) +- [isAccessListEIP2930Tx](README.md#isaccesslisteip2930tx) +- [isAccessListEIP2930TxData](README.md#isaccesslisteip2930txdata) +- [isBlobEIP4844Tx](README.md#isblobeip4844tx) +- [isBlobEIP4844TxData](README.md#isblobeip4844txdata) +- [isFeeMarketEIP1559Tx](README.md#isfeemarketeip1559tx) +- [isFeeMarketEIP1559TxData](README.md#isfeemarketeip1559txdata) +- [isLegacyTx](README.md#islegacytx) +- [isLegacyTxData](README.md#islegacytxdata) ## Type Aliases @@ -64,39 +62,27 @@ #### Defined in -[types.ts:115](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L115) - -___ - -### AccessListBuffer - -Ƭ **AccessListBuffer**: [`AccessListBufferItem`](README.md#accesslistbufferitem)[] - -#### Defined in - -[types.ts:114](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L114) +common/dist/cjs/interfaces.d.ts:26 ___ -### AccessListBufferItem +### AccessListBytes -Ƭ **AccessListBufferItem**: [`Buffer`, `Buffer`[]] +Ƭ **AccessListBytes**: [`AccessListBytesItem`](README.md#accesslistbytesitem)[] #### Defined in -[types.ts:113](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L113) +common/dist/cjs/interfaces.d.ts:25 ___ -### AccessListEIP2930ValuesArray - -Ƭ **AccessListEIP2930ValuesArray**: [`Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, [`AccessListBuffer`](README.md#accesslistbuffer), Buffer?, Buffer?, Buffer?] +### AccessListBytesItem -Buffer values array for an [AccessListEIP2930Transaction](classes/AccessListEIP2930Transaction.md) +Ƭ **AccessListBytesItem**: [`Uint8Array`, `Uint8Array`[]] #### Defined in -[types.ts:270](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L270) +common/dist/cjs/interfaces.d.ts:24 ___ @@ -113,33 +99,31 @@ ___ #### Defined in -[types.ts:105](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L105) +common/dist/cjs/interfaces.d.ts:20 ___ -### FeeMarketEIP1559ValuesArray +### BlobEIP4844NetworkValuesArray -Ƭ **FeeMarketEIP1559ValuesArray**: [`Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, `Buffer`, [`AccessListBuffer`](README.md#accesslistbuffer), Buffer?, Buffer?, Buffer?] - -Buffer values array for a [FeeMarketEIP1559Transaction](classes/FeeMarketEIP1559Transaction.md) +Ƭ **BlobEIP4844NetworkValuesArray**: [`BlobEIP4844TxValuesArray`, `Uint8Array`[], `Uint8Array`[], `Uint8Array`[]] #### Defined in -[types.ts:287](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L287) +[tx/src/types.ts:371](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L371) ___ -### TxData +### LegacyTxData -Ƭ **TxData**: `Object` +Ƭ **LegacyTxData**: `Object` -Legacy [Transaction](classes/Transaction.md) Data +Legacy [Transaction](interfaces/Transaction.md) Data #### Type declaration | Name | Type | Description | | :------ | :------ | :------ | -| `data?` | `BufferLike` | This will contain the data of the message or the init of a contract. | +| `data?` | `BytesLike` | This will contain the data of the message or the init of a contract. | | `gasLimit?` | `BigIntLike` | The transaction's gas limit. | | `gasPrice?` | `BigIntLike` \| ``null`` | The transaction's gas price. | | `nonce?` | `BigIntLike` | The transaction's nonce. | @@ -152,211 +136,224 @@ Legacy [Transaction](classes/Transaction.md) Data #### Defined in -[types.ts:149](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L149) +[tx/src/types.ts:187](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L187) ___ -### TxValuesArray - -Ƭ **TxValuesArray**: `Buffer`[] +### TypedTransaction -Buffer values array for a legacy [Transaction](classes/Transaction.md) +Ƭ **TypedTransaction**: [`Transaction`](interfaces/Transaction.md)[[`TransactionType`](enums/TransactionType.md)] #### Defined in -[types.ts:265](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L265) +[tx/src/types.ts:113](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L113) ___ -### TypedTransaction +### TypedTxData -Ƭ **TypedTransaction**: [`Transaction`](classes/Transaction.md) \| [`AccessListEIP2930Transaction`](classes/AccessListEIP2930Transaction.md) \| [`FeeMarketEIP1559Transaction`](classes/FeeMarketEIP1559Transaction.md) \| [`BlobEIP4844Transaction`](classes/BlobEIP4844Transaction.md) +Ƭ **TypedTxData**: [`TxData`](interfaces/TxData.md)[[`TransactionType`](enums/TransactionType.md)] -Encompassing type for all transaction types. +#### Defined in -Note that this also includes legacy txs which are -referenced as [Transaction](classes/Transaction.md) for compatibility reasons. +[tx/src/types.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L162) -#### Defined in +## Functions -[types.ts:140](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L140) +### isAccessList -## Variables +▸ **isAccessList**(`input`): input is AccessList -### AccessTupleType +#### Parameters -• `Const` **AccessTupleType**: `ContainerType`<{ `address`: `ByteVectorType` = AddressType; `storageKeys`: `ListCompositeType`<`ByteVectorType`\> }\> +| Name | Type | +| :------ | :------ | +| `input` | [`AccessListBytes`](README.md#accesslistbytes) \| [`AccessList`](README.md#accesslist) | + +#### Returns + +input is AccessList #### Defined in -[types.ts:362](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L362) +[tx/src/types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L92) ___ -### AddressType +### isAccessListBytes + +▸ **isAccessListBytes**(`input`): input is AccessListBytes -• `Const` **AddressType**: `ByteVectorType` = `Bytes20` +#### Parameters -EIP4844 types +| Name | Type | +| :------ | :------ | +| `input` | [`AccessListBytes`](README.md#accesslistbytes) \| [`AccessList`](README.md#accesslist) | + +#### Returns + +input is AccessListBytes #### Defined in -[types.ts:359](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L359) +[tx/src/types.ts:81](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L81) ___ -### BlobNetworkTransactionWrapper +### isAccessListEIP2930Tx -• `Const` **BlobNetworkTransactionWrapper**: `ContainerType`<{ `blobKzgs`: `ListCompositeType`<`ByteVectorType`\> ; `blobs`: `ListCompositeType`<`ByteVectorType`\> ; `kzgAggregatedProof`: `ByteVectorType` = KZGProofType; `tx`: `ContainerType`<{ `message`: `ContainerType`<{ `accessList`: `ListCompositeType`<`ContainerType`<{ `address`: `ByteVectorType` = AddressType; `storageKeys`: `ListCompositeType`<`ByteVectorType`\> }\>\> ; `blobVersionedHashes`: `ListCompositeType`<`ByteVectorType`\> ; `chainId`: `UintBigintType` = Uint256; `data`: `ByteListType` ; `gas`: `UintBigintType` = Uint64; `maxFeePerDataGas`: `UintBigintType` = Uint256; `maxFeePerGas`: `UintBigintType` = Uint256; `maxPriorityFeePerGas`: `UintBigintType` = Uint256; `nonce`: `UintBigintType` = Uint64; `to`: `UnionType`<(`ByteVectorType` \| `NoneType`)[]\> ; `value`: `UintBigintType` = Uint256 }\> = BlobTransactionType; `signature`: `ContainerType`<{ `r`: `UintBigintType` = Uint256; `s`: `UintBigintType` = Uint256; `yParity`: `BooleanType` }\> = ECDSASignatureType }\> = SignedBlobTransactionType }\> - -#### Defined in +▸ **isAccessListEIP2930Tx**(`tx`): tx is AccessListEIP2930Transaction -[types.ts:400](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L400) +#### Parameters -___ +| Name | Type | +| :------ | :------ | +| `tx` | [`TypedTransaction`](README.md#typedtransaction) | -### BlobTransactionType +#### Returns -• `Const` **BlobTransactionType**: `ContainerType`<{ `accessList`: `ListCompositeType`<`ContainerType`<{ `address`: `ByteVectorType` = AddressType; `storageKeys`: `ListCompositeType`<`ByteVectorType`\> }\>\> ; `blobVersionedHashes`: `ListCompositeType`<`ByteVectorType`\> ; `chainId`: `UintBigintType` = Uint256; `data`: `ByteListType` ; `gas`: `UintBigintType` = Uint64; `maxFeePerDataGas`: `UintBigintType` = Uint256; `maxFeePerGas`: `UintBigintType` = Uint256; `maxPriorityFeePerGas`: `UintBigintType` = Uint256; `nonce`: `UintBigintType` = Uint64; `to`: `UnionType`<(`ByteVectorType` \| `NoneType`)[]\> ; `value`: `UintBigintType` = Uint256 }\> +tx is AccessListEIP2930Transaction #### Defined in -[types.ts:368](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L368) +[tx/src/types.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L119) ___ -### ECDSASignatureType - -• `Const` **ECDSASignatureType**: `ContainerType`<{ `r`: `UintBigintType` = Uint256; `s`: `UintBigintType` = Uint256; `yParity`: `BooleanType` }\> +### isAccessListEIP2930TxData -#### Defined in +▸ **isAccessListEIP2930TxData**(`txData`): txData is AccessListEIP2930TxData -[types.ts:383](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L383) +#### Parameters -___ +| Name | Type | +| :------ | :------ | +| `txData` | [`TypedTxData`](README.md#typedtxdata) | -### KZGCommitmentType +#### Returns -• `Const` **KZGCommitmentType**: `ByteVectorType` = `Bytes48` +txData is AccessListEIP2930TxData #### Defined in -[types.ts:396](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L396) +[tx/src/types.ts:169](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L169) ___ -### KZGProofType +### isBlobEIP4844Tx -• `Const` **KZGProofType**: `ByteVectorType` = `KZGCommitmentType` - -#### Defined in +▸ **isBlobEIP4844Tx**(`tx`): tx is BlobEIP4844Transaction -[types.ts:397](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L397) +#### Parameters -___ +| Name | Type | +| :------ | :------ | +| `tx` | [`TypedTransaction`](README.md#typedtransaction) | -### SignedBlobTransactionType +#### Returns -• `Const` **SignedBlobTransactionType**: `ContainerType`<{ `message`: `ContainerType`<{ `accessList`: `ListCompositeType`<`ContainerType`<{ `address`: `ByteVectorType` = AddressType; `storageKeys`: `ListCompositeType`<`ByteVectorType`\> }\>\> ; `blobVersionedHashes`: `ListCompositeType`<`ByteVectorType`\> ; `chainId`: `UintBigintType` = Uint256; `data`: `ByteListType` ; `gas`: `UintBigintType` = Uint64; `maxFeePerDataGas`: `UintBigintType` = Uint256; `maxFeePerGas`: `UintBigintType` = Uint256; `maxPriorityFeePerGas`: `UintBigintType` = Uint256; `nonce`: `UintBigintType` = Uint64; `to`: `UnionType`<(`ByteVectorType` \| `NoneType`)[]\> ; `value`: `UintBigintType` = Uint256 }\> = BlobTransactionType; `signature`: `ContainerType`<{ `r`: `UintBigintType` = Uint256; `s`: `UintBigintType` = Uint256; `yParity`: `BooleanType` }\> = ECDSASignatureType }\> +tx is BlobEIP4844Transaction #### Defined in -[types.ts:390](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L390) +[tx/src/types.ts:127](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L127) ___ -### kzg +### isBlobEIP4844TxData -• **kzg**: `Kzg` +▸ **isBlobEIP4844TxData**(`txData`): txData is BlobEIP4844TxData -#### Defined in +#### Parameters + +| Name | Type | +| :------ | :------ | +| `txData` | [`TypedTxData`](README.md#typedtxdata) | -[kzg/kzg.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/kzg/kzg.ts#L8) +#### Returns -## Functions +txData is BlobEIP4844TxData + +#### Defined in -### computeVersionedHash +[tx/src/types.ts:179](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L179) -▸ **computeVersionedHash**(`commitment`, `blobCommitmentVersion`): `Uint8Array` +___ + +### isFeeMarketEIP1559Tx -Converts a vector commitment for a given data blob to its versioned hash. For 4844, this version -number will be 0x01 for KZG vector commitments but could be different if future vector commitment -types are introduced +▸ **isFeeMarketEIP1559Tx**(`tx`): tx is FeeMarketEIP1559Transaction #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `commitment` | `Uint8Array` | a vector commitment to a blob | -| `blobCommitmentVersion` | `number` | the version number corresponding to the type of vector commitment | +| Name | Type | +| :------ | :------ | +| `tx` | [`TypedTransaction`](README.md#typedtransaction) | #### Returns -`Uint8Array` - -a versioned hash corresponding to a given blob vector commitment +tx is FeeMarketEIP1559Transaction #### Defined in -[utils/blobHelpers.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/utils/blobHelpers.ts#L74) +[tx/src/types.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L123) ___ -### initKZG +### isFeeMarketEIP1559TxData -▸ **initKZG**(`kzgLib`, `trustedSetupPath`): `void` +▸ **isFeeMarketEIP1559TxData**(`txData`): txData is FeeMarketEIP1559TxData #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `kzgLib` | `Kzg` | a KZG implementation (defaults to c-kzg) | -| `trustedSetupPath` | `string` | the full path (e.g. "/home/linux/devnet4.txt") to a kzg trusted setup text file | +| Name | Type | +| :------ | :------ | +| `txData` | [`TypedTxData`](README.md#typedtxdata) | #### Returns -`void` +txData is FeeMarketEIP1559TxData #### Defined in -[kzg/kzg.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/kzg/kzg.ts#L21) +[tx/src/types.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L174) ___ -### isAccessList +### isLegacyTx -▸ **isAccessList**(`input`): input is AccessList +▸ **isLegacyTx**(`tx`): tx is LegacyTransaction #### Parameters | Name | Type | | :------ | :------ | -| `input` | [`AccessListBuffer`](README.md#accesslistbuffer) \| [`AccessList`](README.md#accesslist) | +| `tx` | [`TypedTransaction`](README.md#typedtransaction) | #### Returns -input is AccessList +tx is LegacyTransaction #### Defined in -[types.ts:130](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L130) +[tx/src/types.ts:115](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L115) ___ -### isAccessListBuffer +### isLegacyTxData -▸ **isAccessListBuffer**(`input`): input is AccessListBuffer +▸ **isLegacyTxData**(`txData`): txData is LegacyTxData #### Parameters | Name | Type | | :------ | :------ | -| `input` | [`AccessListBuffer`](README.md#accesslistbuffer) \| [`AccessList`](README.md#accesslist) | +| `txData` | [`TypedTxData`](README.md#typedtxdata) | #### Returns -input is AccessListBuffer +txData is LegacyTxData #### Defined in -[types.ts:117](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L117) +[tx/src/types.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L164) diff --git a/packages/tx/docs/classes/AccessListEIP2930Transaction.md b/packages/tx/docs/classes/AccessListEIP2930Transaction.md index cee9015560..358c854658 100644 --- a/packages/tx/docs/classes/AccessListEIP2930Transaction.md +++ b/packages/tx/docs/classes/AccessListEIP2930Transaction.md @@ -9,7 +9,7 @@ Typed transaction with optional access lists ## Hierarchy -- `BaseTransaction`<[`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md)\> +- `BaseTransaction`<[`AccessListEIP2930`](../enums/TransactionType.md#accesslisteip2930)\> ↳ **`AccessListEIP2930Transaction`** @@ -41,24 +41,25 @@ Typed transaction with optional access lists ### Methods -- [\_processSignature](AccessListEIP2930Transaction.md#_processsignature) - [errorStr](AccessListEIP2930Transaction.md#errorstr) - [getBaseFee](AccessListEIP2930Transaction.md#getbasefee) - [getDataFee](AccessListEIP2930Transaction.md#getdatafee) +- [getHashedMessageToSign](AccessListEIP2930Transaction.md#gethashedmessagetosign) - [getMessageToSign](AccessListEIP2930Transaction.md#getmessagetosign) - [getMessageToVerifySignature](AccessListEIP2930Transaction.md#getmessagetoverifysignature) - [getSenderAddress](AccessListEIP2930Transaction.md#getsenderaddress) - [getSenderPublicKey](AccessListEIP2930Transaction.md#getsenderpublickey) - [getUpfrontCost](AccessListEIP2930Transaction.md#getupfrontcost) +- [getValidationErrors](AccessListEIP2930Transaction.md#getvalidationerrors) - [hash](AccessListEIP2930Transaction.md#hash) - [isSigned](AccessListEIP2930Transaction.md#issigned) +- [isValid](AccessListEIP2930Transaction.md#isvalid) - [raw](AccessListEIP2930Transaction.md#raw) - [serialize](AccessListEIP2930Transaction.md#serialize) - [sign](AccessListEIP2930Transaction.md#sign) - [supports](AccessListEIP2930Transaction.md#supports) - [toCreationAddress](AccessListEIP2930Transaction.md#tocreationaddress) - [toJSON](AccessListEIP2930Transaction.md#tojson) -- [validate](AccessListEIP2930Transaction.md#validate) - [verifySignature](AccessListEIP2930Transaction.md#verifysignature) - [fromSerializedTx](AccessListEIP2930Transaction.md#fromserializedtx) - [fromTxData](AccessListEIP2930Transaction.md#fromtxdata) @@ -85,11 +86,11 @@ varying data types. #### Overrides -BaseTransaction<AccessListEIP2930Transaction\>.constructor +BaseTransaction<TransactionType.AccessListEIP2930\>.constructor #### Defined in -[eip2930Transaction.ts:136](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L136) +[tx/src/eip2930Transaction.ts:135](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L135) ## Properties @@ -99,17 +100,17 @@ BaseTransaction<AccessListEIP2930Transaction\>.constructor #### Defined in -[eip2930Transaction.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L40) +[tx/src/eip2930Transaction.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L47) ___ ### accessList -• `Readonly` **accessList**: [`AccessListBuffer`](../README.md#accesslistbuffer) +• `Readonly` **accessList**: [`AccessListBytes`](../README.md#accesslistbytes) #### Defined in -[eip2930Transaction.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L39) +[tx/src/eip2930Transaction.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L46) ___ @@ -119,7 +120,7 @@ ___ #### Defined in -[eip2930Transaction.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L38) +[tx/src/eip2930Transaction.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L45) ___ @@ -133,13 +134,13 @@ BaseTransaction.common #### Defined in -[eip2930Transaction.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L43) +[tx/src/eip2930Transaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L50) ___ ### data -• `Readonly` **data**: `Buffer` +• `Readonly` **data**: `Uint8Array` #### Inherited from @@ -147,7 +148,7 @@ BaseTransaction.data #### Defined in -[baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) +[tx/src/baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) ___ @@ -161,7 +162,7 @@ BaseTransaction.gasLimit #### Defined in -[baseTransaction.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L49) +[tx/src/baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) ___ @@ -171,7 +172,7 @@ ___ #### Defined in -[eip2930Transaction.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L41) +[tx/src/eip2930Transaction.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L48) ___ @@ -185,7 +186,7 @@ BaseTransaction.nonce #### Defined in -[baseTransaction.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L48) +[tx/src/baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) ___ @@ -199,7 +200,7 @@ BaseTransaction.r #### Defined in -[baseTransaction.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L55) +[tx/src/baseTransaction.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L57) ___ @@ -213,7 +214,7 @@ BaseTransaction.s #### Defined in -[baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) +[tx/src/baseTransaction.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L58) ___ @@ -227,7 +228,7 @@ BaseTransaction.to #### Defined in -[baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) +[tx/src/baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) ___ @@ -241,7 +242,7 @@ BaseTransaction.v #### Defined in -[baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) +[tx/src/baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) ___ @@ -255,13 +256,13 @@ BaseTransaction.value #### Defined in -[baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) +[tx/src/baseTransaction.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L53) ## Accessors ### type -• `get` **type**(): `number` +• `get` **type**(): [`TransactionType`](../enums/TransactionType.md) Returns the transaction type. @@ -269,7 +270,7 @@ Note: legacy txs will return tx type `0`. #### Returns -`number` +[`TransactionType`](../enums/TransactionType.md) #### Inherited from @@ -277,36 +278,10 @@ BaseTransaction.type #### Defined in -[baseTransaction.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L134) +[tx/src/baseTransaction.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L128) ## Methods -### \_processSignature - -▸ **_processSignature**(`v`, `r`, `s`): [`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `v` | `bigint` | -| `r` | `Buffer` | -| `s` | `Buffer` | - -#### Returns - -[`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md) - -#### Overrides - -BaseTransaction.\_processSignature - -#### Defined in - -[eip2930Transaction.ts:335](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L335) - -___ - ### errorStr ▸ **errorStr**(): `string` @@ -323,7 +298,7 @@ BaseTransaction.errorStr #### Defined in -[eip2930Transaction.ts:380](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L380) +[tx/src/eip2930Transaction.ts:372](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L372) ___ @@ -343,7 +318,7 @@ BaseTransaction.getBaseFee #### Defined in -[baseTransaction.ts:204](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L204) +[tx/src/baseTransaction.ts:205](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L205) ___ @@ -363,15 +338,39 @@ BaseTransaction.getDataFee #### Defined in -[eip2930Transaction.ts:181](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L181) +[tx/src/eip2930Transaction.ts:180](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L180) + +___ + +### getHashedMessageToSign + +▸ **getHashedMessageToSign**(): `Uint8Array` + +Returns the hashed serialized unsigned tx, which can be used +to sign the transaction (e.g. for sending to a hardware wallet). + +Note: in contrast to the legacy tx the raw message format is already +serialized and doesn't need to be RLP encoded any more. + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.getHashedMessageToSign + +#### Defined in + +[tx/src/eip2930Transaction.ts:273](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L273) ___ ### getMessageToSign -▸ **getMessageToSign**(`hashMessage?`): `Buffer` +▸ **getMessageToSign**(): `Uint8Array` -Returns the serialized unsigned tx (hashed or raw), which can be used +Returns the raw serialized unsigned tx, which can be used to sign the transaction (e.g. for sending to a hardware wallet). Note: in contrast to the legacy tx the raw message format is already @@ -381,15 +380,9 @@ serialized and doesn't need to be RLP encoded any more. const serializedMessage = tx.getMessageToSign() // use this for the HW wallet input ``` -#### Parameters - -| Name | Type | Default value | Description | -| :------ | :------ | :------ | :------ | -| `hashMessage` | `boolean` | `true` | Return hashed message if set to true (default: true) | - #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -397,19 +390,19 @@ BaseTransaction.getMessageToSign #### Defined in -[eip2930Transaction.ts:266](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L266) +[tx/src/eip2930Transaction.ts:260](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L260) ___ ### getMessageToVerifySignature -▸ **getMessageToVerifySignature**(): `Buffer` +▸ **getMessageToVerifySignature**(): `Uint8Array` Computes a sha3-256 hash which can be used to verify the signature #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -417,7 +410,7 @@ BaseTransaction.getMessageToVerifySignature #### Defined in -[eip2930Transaction.ts:304](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L304) +[tx/src/eip2930Transaction.ts:302](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L302) ___ @@ -437,19 +430,19 @@ BaseTransaction.getSenderAddress #### Defined in -[baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) +[tx/src/baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) ___ ### getSenderPublicKey -▸ **getSenderPublicKey**(): `Buffer` +▸ **getSenderPublicKey**(): `Uint8Array` Returns the public key of the sender #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -457,7 +450,7 @@ BaseTransaction.getSenderPublicKey #### Defined in -[eip2930Transaction.ts:311](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L311) +[tx/src/eip2930Transaction.ts:309](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L309) ___ @@ -477,13 +470,35 @@ BaseTransaction.getUpfrontCost #### Defined in -[eip2930Transaction.ts:202](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L202) +[tx/src/eip2930Transaction.ts:201](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L201) + +___ + +### getValidationErrors + +▸ **getValidationErrors**(): `string`[] + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`string`[] + +an array of error strings + +#### Inherited from + +BaseTransaction.getValidationErrors + +#### Defined in + +[tx/src/baseTransaction.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L156) ___ ### hash -▸ **hash**(): `Buffer` +▸ **hash**(): `Uint8Array` Computes a sha3-256 hash of the serialized tx. @@ -492,7 +507,7 @@ Use [getMessageToSign](AccessListEIP2930Transaction.md#getmessagetosign) to get #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -500,7 +515,7 @@ BaseTransaction.hash #### Defined in -[eip2930Transaction.ts:285](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L285) +[tx/src/eip2930Transaction.ts:283](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L283) ___ @@ -518,15 +533,37 @@ BaseTransaction.isSigned #### Defined in -[baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) +[tx/src/baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) + +___ + +### isValid + +▸ **isValid**(): `boolean` + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`boolean` + +true if the transaction is valid, false otherwise + +#### Inherited from + +BaseTransaction.isValid + +#### Defined in + +[tx/src/baseTransaction.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L174) ___ ### raw -▸ **raw**(): [`AccessListEIP2930ValuesArray`](../README.md#accesslisteip2930valuesarray) +▸ **raw**(): `AccessListEIP2930TxValuesArray` -Returns a Buffer Array of the raw Buffers of the EIP-2930 transaction, in order. +Returns a Uint8Array Array of the raw Bytess of the EIP-2930 transaction, in order. Format: `[chainId, nonce, gasPrice, gasLimit, to, value, data, accessList, signatureYParity (v), signatureR (r), signatureS (s)]` @@ -534,13 +571,13 @@ signatureYParity (v), signatureR (r), signatureS (s)]` Use [serialize](AccessListEIP2930Transaction.md#serialize) to add a transaction to a block with Block.fromValuesArray. -For an unsigned tx this method uses the empty Buffer values for the +For an unsigned tx this method uses the empty Bytes values for the signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant representation for external signing use [getMessageToSign](AccessListEIP2930Transaction.md#getmessagetosign). #### Returns -[`AccessListEIP2930ValuesArray`](../README.md#accesslisteip2930valuesarray) +`AccessListEIP2930TxValuesArray` #### Overrides @@ -548,13 +585,13 @@ BaseTransaction.raw #### Defined in -[eip2930Transaction.ts:219](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L219) +[tx/src/eip2930Transaction.ts:218](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L218) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` Returns the serialized encoding of the EIP-2930 transaction. @@ -567,7 +604,7 @@ the RLP encoding of the values. #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -575,7 +612,7 @@ BaseTransaction.serialize #### Defined in -[eip2930Transaction.ts:245](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L245) +[tx/src/eip2930Transaction.ts:244](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L244) ___ @@ -595,7 +632,7 @@ const signedTx = tx.sign(privateKey) | Name | Type | | :------ | :------ | -| `privateKey` | `Buffer` | +| `privateKey` | `Uint8Array` | #### Returns @@ -607,7 +644,7 @@ BaseTransaction.sign #### Defined in -[baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) +[tx/src/baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) ___ @@ -627,7 +664,7 @@ This method can be useful for feature checks if the tx type is unknown (e.g. when instantiated with the tx factory). -See `Capabilites` in the `types` module for a reference +See `Capabilities` in the `types` module for a reference on all supported capabilities. #### Parameters @@ -646,7 +683,7 @@ BaseTransaction.supports #### Defined in -[baseTransaction.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L154) +[tx/src/baseTransaction.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L148) ___ @@ -666,7 +703,7 @@ BaseTransaction.toCreationAddress #### Defined in -[baseTransaction.ts:244](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L244) +[tx/src/baseTransaction.ts:245](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L245) ___ @@ -686,68 +723,7 @@ BaseTransaction.toJSON #### Defined in -[eip2930Transaction.ts:359](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L359) - -___ - -### validate - -▸ **validate**(): `boolean` - -Checks if the transaction has the minimum amount of gas required -(DataFee + TxFee + Creation Fee). - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L162) - -▸ **validate**(`stringError`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``false`` | - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L163) - -▸ **validate**(`stringError`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``true`` | - -#### Returns - -`string`[] - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L164) +[tx/src/eip2930Transaction.ts:357](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L357) ___ @@ -767,7 +743,7 @@ BaseTransaction.verifySignature #### Defined in -[baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) +[tx/src/baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) ___ @@ -784,7 +760,7 @@ signatureYParity (v), signatureR (r), signatureS (s)])` | Name | Type | | :------ | :------ | -| `serialized` | `Buffer` | +| `serialized` | `Uint8Array` | | `opts` | [`TxOptions`](../interfaces/TxOptions.md) | #### Returns @@ -793,7 +769,7 @@ signatureYParity (v), signatureR (r), signatureS (s)])` #### Defined in -[eip2930Transaction.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L73) +[tx/src/eip2930Transaction.ts:72](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L72) ___ @@ -823,7 +799,7 @@ Notes: #### Defined in -[eip2930Transaction.ts:63](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L63) +[tx/src/eip2930Transaction.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L62) ___ @@ -840,7 +816,7 @@ signatureYParity (v), signatureR (r), signatureS (s)]` | Name | Type | | :------ | :------ | -| `values` | [`AccessListEIP2930ValuesArray`](../README.md#accesslisteip2930valuesarray) | +| `values` | `AccessListEIP2930TxValuesArray` | | `opts` | [`TxOptions`](../interfaces/TxOptions.md) | #### Returns @@ -849,4 +825,4 @@ signatureYParity (v), signatureR (r), signatureS (s)]` #### Defined in -[eip2930Transaction.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L97) +[tx/src/eip2930Transaction.ts:96](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip2930Transaction.ts#L96) diff --git a/packages/tx/docs/classes/BlobEIP4844Transaction.md b/packages/tx/docs/classes/BlobEIP4844Transaction.md index a12c3d1151..3f855111a2 100644 --- a/packages/tx/docs/classes/BlobEIP4844Transaction.md +++ b/packages/tx/docs/classes/BlobEIP4844Transaction.md @@ -4,12 +4,12 @@ Typed transaction with a new gas fee market mechanism for transactions that include "blobs" of data -- TransactionType: 5 +- TransactionType: 3 - EIP: [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) ## Hierarchy -- `BaseTransaction`<[`BlobEIP4844Transaction`](BlobEIP4844Transaction.md)\> +- `BaseTransaction`<[`BlobEIP4844`](../enums/TransactionType.md#blobeip4844)\> ↳ **`BlobEIP4844Transaction`** @@ -23,13 +23,13 @@ Typed transaction with a new gas fee market mechanism for transactions that incl - [AccessListJSON](BlobEIP4844Transaction.md#accesslistjson) - [accessList](BlobEIP4844Transaction.md#accesslist) -- [aggregateKzgProof](BlobEIP4844Transaction.md#aggregatekzgproof) - [blobs](BlobEIP4844Transaction.md#blobs) - [chainId](BlobEIP4844Transaction.md#chainid) - [common](BlobEIP4844Transaction.md#common) - [data](BlobEIP4844Transaction.md#data) - [gasLimit](BlobEIP4844Transaction.md#gaslimit) - [kzgCommitments](BlobEIP4844Transaction.md#kzgcommitments) +- [kzgProofs](BlobEIP4844Transaction.md#kzgproofs) - [maxFeePerDataGas](BlobEIP4844Transaction.md#maxfeeperdatagas) - [maxFeePerGas](BlobEIP4844Transaction.md#maxfeepergas) - [maxPriorityFeePerGas](BlobEIP4844Transaction.md#maxpriorityfeepergas) @@ -47,17 +47,19 @@ Typed transaction with a new gas fee market mechanism for transactions that incl ### Methods -- [\_processSignature](BlobEIP4844Transaction.md#_processsignature) - [errorStr](BlobEIP4844Transaction.md#errorstr) - [getBaseFee](BlobEIP4844Transaction.md#getbasefee) - [getDataFee](BlobEIP4844Transaction.md#getdatafee) +- [getHashedMessageToSign](BlobEIP4844Transaction.md#gethashedmessagetosign) - [getMessageToSign](BlobEIP4844Transaction.md#getmessagetosign) - [getMessageToVerifySignature](BlobEIP4844Transaction.md#getmessagetoverifysignature) - [getSenderAddress](BlobEIP4844Transaction.md#getsenderaddress) - [getSenderPublicKey](BlobEIP4844Transaction.md#getsenderpublickey) - [getUpfrontCost](BlobEIP4844Transaction.md#getupfrontcost) +- [getValidationErrors](BlobEIP4844Transaction.md#getvalidationerrors) - [hash](BlobEIP4844Transaction.md#hash) - [isSigned](BlobEIP4844Transaction.md#issigned) +- [isValid](BlobEIP4844Transaction.md#isvalid) - [numBlobs](BlobEIP4844Transaction.md#numblobs) - [raw](BlobEIP4844Transaction.md#raw) - [serialize](BlobEIP4844Transaction.md#serialize) @@ -66,13 +68,11 @@ Typed transaction with a new gas fee market mechanism for transactions that incl - [supports](BlobEIP4844Transaction.md#supports) - [toCreationAddress](BlobEIP4844Transaction.md#tocreationaddress) - [toJSON](BlobEIP4844Transaction.md#tojson) -- [toValue](BlobEIP4844Transaction.md#tovalue) -- [unsignedHash](BlobEIP4844Transaction.md#unsignedhash) -- [validate](BlobEIP4844Transaction.md#validate) - [verifySignature](BlobEIP4844Transaction.md#verifysignature) - [fromSerializedBlobTxNetworkWrapper](BlobEIP4844Transaction.md#fromserializedblobtxnetworkwrapper) - [fromSerializedTx](BlobEIP4844Transaction.md#fromserializedtx) - [fromTxData](BlobEIP4844Transaction.md#fromtxdata) +- [fromValuesArray](BlobEIP4844Transaction.md#fromvaluesarray) - [minimalFromNetworkWrapper](BlobEIP4844Transaction.md#minimalfromnetworkwrapper) ## Constructors @@ -96,11 +96,11 @@ varying data types. #### Overrides -BaseTransaction<BlobEIP4844Transaction\>.constructor +BaseTransaction<TransactionType.BlobEIP4844\>.constructor #### Defined in -[eip4844Transaction.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L91) +[tx/src/eip4844Transaction.ts:105](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L105) ## Properties @@ -110,37 +110,27 @@ BaseTransaction<BlobEIP4844Transaction\>.constructor #### Defined in -[eip4844Transaction.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L73) +[tx/src/eip4844Transaction.ts:87](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L87) ___ ### accessList -• `Readonly` **accessList**: [`AccessListBuffer`](../README.md#accesslistbuffer) +• `Readonly` **accessList**: [`AccessListBytes`](../README.md#accesslistbytes) #### Defined in -[eip4844Transaction.ts:72](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L72) - -___ - -### aggregateKzgProof - -• `Optional` **aggregateKzgProof**: `Buffer` - -#### Defined in - -[eip4844Transaction.ts:82](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L82) +[tx/src/eip4844Transaction.ts:86](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L86) ___ ### blobs -• `Optional` **blobs**: `Buffer`[] +• `Optional` **blobs**: `Uint8Array`[] #### Defined in -[eip4844Transaction.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L80) +[tx/src/eip4844Transaction.ts:94](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L94) ___ @@ -150,7 +140,7 @@ ___ #### Defined in -[eip4844Transaction.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L71) +[tx/src/eip4844Transaction.ts:85](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L85) ___ @@ -164,13 +154,13 @@ BaseTransaction.common #### Defined in -[eip4844Transaction.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L78) +[tx/src/eip4844Transaction.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L92) ___ ### data -• `Readonly` **data**: `Buffer` +• `Readonly` **data**: `Uint8Array` #### Inherited from @@ -178,7 +168,7 @@ BaseTransaction.data #### Defined in -[baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) +[tx/src/baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) ___ @@ -192,17 +182,27 @@ BaseTransaction.gasLimit #### Defined in -[baseTransaction.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L49) +[tx/src/baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) ___ ### kzgCommitments -• `Optional` **kzgCommitments**: `Buffer`[] +• `Optional` **kzgCommitments**: `Uint8Array`[] + +#### Defined in + +[tx/src/eip4844Transaction.ts:95](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L95) + +___ + +### kzgProofs + +• `Optional` **kzgProofs**: `Uint8Array`[] #### Defined in -[eip4844Transaction.ts:81](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L81) +[tx/src/eip4844Transaction.ts:96](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L96) ___ @@ -212,7 +212,7 @@ ___ #### Defined in -[eip4844Transaction.ts:76](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L76) +[tx/src/eip4844Transaction.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L90) ___ @@ -222,7 +222,7 @@ ___ #### Defined in -[eip4844Transaction.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L75) +[tx/src/eip4844Transaction.ts:89](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L89) ___ @@ -232,7 +232,7 @@ ___ #### Defined in -[eip4844Transaction.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L74) +[tx/src/eip4844Transaction.ts:88](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L88) ___ @@ -246,7 +246,7 @@ BaseTransaction.nonce #### Defined in -[baseTransaction.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L48) +[tx/src/baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) ___ @@ -260,7 +260,7 @@ BaseTransaction.r #### Defined in -[baseTransaction.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L55) +[tx/src/baseTransaction.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L57) ___ @@ -274,7 +274,7 @@ BaseTransaction.s #### Defined in -[baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) +[tx/src/baseTransaction.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L58) ___ @@ -288,7 +288,7 @@ BaseTransaction.to #### Defined in -[baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) +[tx/src/baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) ___ @@ -302,7 +302,7 @@ BaseTransaction.v #### Defined in -[baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) +[tx/src/baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) ___ @@ -316,23 +316,23 @@ BaseTransaction.value #### Defined in -[baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) +[tx/src/baseTransaction.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L53) ___ ### versionedHashes -• **versionedHashes**: `Buffer`[] +• **versionedHashes**: `Uint8Array`[] #### Defined in -[eip4844Transaction.ts:79](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L79) +[tx/src/eip4844Transaction.ts:93](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L93) ## Accessors ### type -• `get` **type**(): `number` +• `get` **type**(): [`TransactionType`](../enums/TransactionType.md) Returns the transaction type. @@ -340,7 +340,7 @@ Note: legacy txs will return tx type `0`. #### Returns -`number` +[`TransactionType`](../enums/TransactionType.md) #### Inherited from @@ -348,36 +348,10 @@ BaseTransaction.type #### Defined in -[baseTransaction.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L134) +[tx/src/baseTransaction.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L128) ## Methods -### \_processSignature - -▸ **_processSignature**(`v`, `r`, `s`): [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `v` | `bigint` | -| `r` | `Buffer` | -| `s` | `Buffer` | - -#### Returns - -[`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) - -#### Overrides - -BaseTransaction.\_processSignature - -#### Defined in - -[eip4844Transaction.ts:446](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L446) - -___ - ### errorStr ▸ **errorStr**(): `string` @@ -394,7 +368,7 @@ BaseTransaction.errorStr #### Defined in -[eip4844Transaction.ts:475](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L475) +[tx/src/eip4844Transaction.ts:583](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L583) ___ @@ -414,7 +388,7 @@ BaseTransaction.getBaseFee #### Defined in -[baseTransaction.ts:204](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L204) +[tx/src/baseTransaction.ts:205](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L205) ___ @@ -434,43 +408,51 @@ BaseTransaction.getDataFee #### Defined in -[baseTransaction.ts:218](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L218) +[tx/src/baseTransaction.ts:219](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L219) ___ -### getMessageToSign +### getHashedMessageToSign -▸ **getMessageToSign**(`hashMessage`): `Buffer` \| `Buffer`[] +▸ **getHashedMessageToSign**(): `Uint8Array` -#### Parameters +Returns the hashed serialized unsigned tx, which can be used +to sign the transaction (e.g. for sending to a hardware wallet). -| Name | Type | -| :------ | :------ | -| `hashMessage` | ``false`` | +Note: in contrast to the legacy tx the raw message format is already +serialized and doesn't need to be RLP encoded any more. #### Returns -`Buffer` \| `Buffer`[] +`Uint8Array` #### Overrides -BaseTransaction.getMessageToSign +BaseTransaction.getHashedMessageToSign #### Defined in -[eip4844Transaction.ts:377](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L377) +[tx/src/eip4844Transaction.ts:482](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L482) -▸ **getMessageToSign**(`hashMessage?`): `Buffer` +___ -#### Parameters +### getMessageToSign -| Name | Type | -| :------ | :------ | -| `hashMessage?` | ``true`` | +▸ **getMessageToSign**(): `Uint8Array` + +Returns the raw serialized unsigned tx, which can be used +to sign the transaction (e.g. for sending to a hardware wallet). + +Note: in contrast to the legacy tx the raw message format is already +serialized and doesn't need to be RLP encoded any more. + +```javascript +const serializedMessage = tx.getMessageToSign() // use this for the HW wallet input +``` #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -478,17 +460,17 @@ BaseTransaction.getMessageToSign #### Defined in -[eip4844Transaction.ts:378](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L378) +[tx/src/eip4844Transaction.ts:469](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L469) ___ ### getMessageToVerifySignature -▸ **getMessageToVerifySignature**(): `Buffer` +▸ **getMessageToVerifySignature**(): `Uint8Array` #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -496,7 +478,7 @@ BaseTransaction.getMessageToVerifySignature #### Defined in -[eip4844Transaction.ts:395](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L395) +[tx/src/eip4844Transaction.ts:508](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L508) ___ @@ -516,19 +498,19 @@ BaseTransaction.getSenderAddress #### Defined in -[baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) +[tx/src/baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) ___ ### getSenderPublicKey -▸ **getSenderPublicKey**(): `Buffer` +▸ **getSenderPublicKey**(): `Uint8Array` Returns the public key of the sender #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -536,7 +518,7 @@ BaseTransaction.getSenderPublicKey #### Defined in -[eip4844Transaction.ts:402](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L402) +[tx/src/eip4844Transaction.ts:515](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L515) ___ @@ -562,17 +544,44 @@ BaseTransaction.getUpfrontCost #### Defined in -[eip4844Transaction.ts:294](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L294) +[tx/src/eip4844Transaction.ts:382](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L382) + +___ + +### getValidationErrors + +▸ **getValidationErrors**(): `string`[] + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`string`[] + +an array of error strings + +#### Inherited from + +BaseTransaction.getValidationErrors + +#### Defined in + +[tx/src/baseTransaction.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L156) ___ ### hash -▸ **hash**(): `Buffer` +▸ **hash**(): `Uint8Array` + +Computes a sha3-256 hash of the serialized tx. + +This method can only be used for signed txs (it throws otherwise). +Use [getMessageToSign](BlobEIP4844Transaction.md#getmessagetosign) to get a tx hash for the purpose of signing. #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -580,7 +589,7 @@ BaseTransaction.hash #### Defined in -[eip4844Transaction.ts:391](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L391) +[tx/src/eip4844Transaction.ts:492](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L492) ___ @@ -598,7 +607,29 @@ BaseTransaction.isSigned #### Defined in -[baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) +[tx/src/baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) + +___ + +### isValid + +▸ **isValid**(): `boolean` + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`boolean` + +true if the transaction is valid, false otherwise + +#### Inherited from + +BaseTransaction.isValid + +#### Defined in + +[tx/src/baseTransaction.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L174) ___ @@ -614,20 +645,29 @@ the number of blobs included with this transaction #### Defined in -[eip4844Transaction.ts:494](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L494) +[tx/src/eip4844Transaction.ts:602](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L602) ___ ### raw -▸ **raw**(): [`TxValuesArray`](../README.md#txvaluesarray) +▸ **raw**(): `BlobEIP4844TxValuesArray` -This method is not implemented for blob transactions as the `raw` method is used exclusively with -rlp encoding and these transactions use SSZ for serialization. +Returns a Uint8Array Array of the raw Bytes of the EIP-4844 transaction, in order. + +Format: [chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, value, data, +access_list, max_fee_per_data_gas, blob_versioned_hashes, y_parity, r, s]`. + +Use {@link BlobEIP4844Transaction.serialize} to add a transaction to a block +with {@link Block.fromValuesArray}. + +For an unsigned tx this method uses the empty Bytes values for the +signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant +representation for external signing use [getMessageToSign](BlobEIP4844Transaction.md#getmessagetosign). #### Returns -[`TxValuesArray`](../README.md#txvaluesarray) +`BlobEIP4844TxValuesArray` #### Overrides @@ -635,21 +675,26 @@ BaseTransaction.raw #### Defined in -[eip4844Transaction.ts:306](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L306) +[tx/src/eip4844Transaction.ts:403](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L403) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` -Serialize a blob transaction to the execution payload variant +Returns the serialized encoding of the EIP-4844 transaction. -#### Returns +Format: `0x03 || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, +access_list, max_fee_per_data_gas, blob_versioned_hashes, y_parity, r, s])`. + +Note that in contrast to the legacy tx serialization format this is not +valid RLP any more due to the raw tx type preceding and concatenated to +the RLP encoding of the values. -`Buffer` +#### Returns -the minimum (execution payload) serialization of a signed transaction +`Uint8Array` #### Overrides @@ -657,23 +702,23 @@ BaseTransaction.serialize #### Defined in -[eip4844Transaction.ts:344](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L344) +[tx/src/eip4844Transaction.ts:432](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L432) ___ ### serializeNetworkWrapper -▸ **serializeNetworkWrapper**(): `Buffer` +▸ **serializeNetworkWrapper**(): `Uint8Array` #### Returns -`Buffer` +`Uint8Array` the serialized form of a blob transaction in the network wrapper format (used for gossipping mempool transactions over devp2p) #### Defined in -[eip4844Transaction.ts:352](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L352) +[tx/src/eip4844Transaction.ts:440](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L440) ___ @@ -693,7 +738,7 @@ const signedTx = tx.sign(privateKey) | Name | Type | | :------ | :------ | -| `privateKey` | `Buffer` | +| `privateKey` | `Uint8Array` | #### Returns @@ -705,7 +750,7 @@ BaseTransaction.sign #### Defined in -[baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) +[tx/src/baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) ___ @@ -725,7 +770,7 @@ This method can be useful for feature checks if the tx type is unknown (e.g. when instantiated with the tx factory). -See `Capabilites` in the `types` module for a reference +See `Capabilities` in the `types` module for a reference on all supported capabilities. #### Parameters @@ -744,7 +789,7 @@ BaseTransaction.supports #### Defined in -[baseTransaction.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L154) +[tx/src/baseTransaction.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L148) ___ @@ -764,7 +809,7 @@ BaseTransaction.toCreationAddress #### Defined in -[baseTransaction.ts:244](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L244) +[tx/src/baseTransaction.ts:245](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L245) ___ @@ -782,98 +827,7 @@ BaseTransaction.toJSON #### Defined in -[eip4844Transaction.ts:426](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L426) - -___ - -### toValue - -▸ **toValue**(): `ValueOfFields`<{ `message`: `ContainerType`<{ `accessList`: `ListCompositeType`<`ContainerType`<{ `address`: `ByteVectorType` = AddressType; `storageKeys`: `ListCompositeType`<`ByteVectorType`\> }\>\> ; `blobVersionedHashes`: `ListCompositeType`<`ByteVectorType`\> ; `chainId`: `UintBigintType` = Uint256; `data`: `ByteListType` ; `gas`: `UintBigintType` = Uint64; `maxFeePerDataGas`: `UintBigintType` = Uint256; `maxFeePerGas`: `UintBigintType` = Uint256; `maxPriorityFeePerGas`: `UintBigintType` = Uint256; `nonce`: `UintBigintType` = Uint64; `to`: `UnionType`<(`ByteVectorType` \| `NoneType`)[]\> ; `value`: `UintBigintType` = Uint256 }\> = BlobTransactionType; `signature`: `ContainerType`<{ `r`: `UintBigintType` = Uint256; `s`: `UintBigintType` = Uint256; `yParity`: `BooleanType` }\> = ECDSASignatureType }\> - -#### Returns - -`ValueOfFields`<{ `message`: `ContainerType`<{ `accessList`: `ListCompositeType`<`ContainerType`<{ `address`: `ByteVectorType` = AddressType; `storageKeys`: `ListCompositeType`<`ByteVectorType`\> }\>\> ; `blobVersionedHashes`: `ListCompositeType`<`ByteVectorType`\> ; `chainId`: `UintBigintType` = Uint256; `data`: `ByteListType` ; `gas`: `UintBigintType` = Uint64; `maxFeePerDataGas`: `UintBigintType` = Uint256; `maxFeePerGas`: `UintBigintType` = Uint256; `maxPriorityFeePerGas`: `UintBigintType` = Uint256; `nonce`: `UintBigintType` = Uint64; `to`: `UnionType`<(`ByteVectorType` \| `NoneType`)[]\> ; `value`: `UintBigintType` = Uint256 }\> = BlobTransactionType; `signature`: `ContainerType`<{ `r`: `UintBigintType` = Uint256; `s`: `UintBigintType` = Uint256; `yParity`: `BooleanType` }\> = ECDSASignatureType }\> - -#### Defined in - -[eip4844Transaction.ts:310](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L310) - -___ - -### unsignedHash - -▸ **unsignedHash**(): `Buffer` - -Returns the hash of a blob transaction - -#### Returns - -`Buffer` - -#### Defined in - -[eip4844Transaction.ts:386](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L386) - -___ - -### validate - -▸ **validate**(): `boolean` - -Checks if the transaction has the minimum amount of gas required -(DataFee + TxFee + Creation Fee). - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L162) - -▸ **validate**(`stringError`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``false`` | - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L163) - -▸ **validate**(`stringError`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``true`` | - -#### Returns - -`string`[] - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L164) +[tx/src/eip4844Transaction.ts:539](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L539) ___ @@ -893,7 +847,7 @@ BaseTransaction.verifySignature #### Defined in -[baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) +[tx/src/baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) ___ @@ -903,15 +857,11 @@ ___ Creates a transaction from the network encoding of a blob transaction (with blobs/commitments/proof) -**`Throws`** - -if no KZG library is loaded -- using the `initKzg` helper method -- or if `opts.common` not provided - #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `serialized` | `Buffer` | a buffer representing a serialized BlobTransactionNetworkWrapper | +| `serialized` | `Uint8Array` | a buffer representing a serialized BlobTransactionNetworkWrapper | | `opts?` | [`TxOptions`](../interfaces/TxOptions.md) | any TxOptions defined | #### Returns @@ -922,7 +872,7 @@ a BlobEIP4844Transaction #### Defined in -[eip4844Transaction.ts:201](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L201) +[tx/src/eip4844Transaction.ts:325](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L325) ___ @@ -930,24 +880,25 @@ ___ ▸ `Static` **fromSerializedTx**(`serialized`, `opts?`): [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) -Creates a transaction from the "minimal" encoding of a blob transaction (without blobs/commitments/kzg proof) +Instantiate a transaction from the serialized tx. + +Format: `0x03 || rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, value, data, +access_list, max_fee_per_data_gas, blob_versioned_hashes, y_parity, r, s])` #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `serialized` | `Buffer` | a buffer representing a serialized signed blob transaction | -| `opts?` | [`TxOptions`](../interfaces/TxOptions.md) | any TxOptions defined | +| Name | Type | +| :------ | :------ | +| `serialized` | `Uint8Array` | +| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | #### Returns [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) -a BlobEIP4844Transaction - #### Defined in -[eip4844Transaction.ts:262](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L262) +[tx/src/eip4844Transaction.ts:236](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L236) ___ @@ -968,7 +919,33 @@ ___ #### Defined in -[eip4844Transaction.ts:172](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L172) +[tx/src/eip4844Transaction.ts:186](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L186) + +___ + +### fromValuesArray + +▸ `Static` **fromValuesArray**(`values`, `opts?`): [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) + +Create a transaction from a values array. + +Format: `[chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, +accessList, signatureYParity, signatureR, signatureS]` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `values` | `BlobEIP4844TxValuesArray` | +| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | + +#### Returns + +[`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) + +#### Defined in + +[tx/src/eip4844Transaction.ts:260](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L260) ___ @@ -994,4 +971,4 @@ the "minimal" representation of a BlobEIP4844Transaction (i.e. transaction objec #### Defined in -[eip4844Transaction.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L183) +[tx/src/eip4844Transaction.ts:219](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip4844Transaction.ts#L219) diff --git a/packages/tx/docs/classes/FeeMarketEIP1559Transaction.md b/packages/tx/docs/classes/FeeMarketEIP1559Transaction.md index 0ef5c36238..9c944a49f3 100644 --- a/packages/tx/docs/classes/FeeMarketEIP1559Transaction.md +++ b/packages/tx/docs/classes/FeeMarketEIP1559Transaction.md @@ -9,7 +9,7 @@ Typed transaction with a new gas fee market mechanism ## Hierarchy -- `BaseTransaction`<[`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md)\> +- `BaseTransaction`<[`FeeMarketEIP1559`](../enums/TransactionType.md#feemarketeip1559)\> ↳ **`FeeMarketEIP1559Transaction`** @@ -42,24 +42,25 @@ Typed transaction with a new gas fee market mechanism ### Methods -- [\_processSignature](FeeMarketEIP1559Transaction.md#_processsignature) - [errorStr](FeeMarketEIP1559Transaction.md#errorstr) - [getBaseFee](FeeMarketEIP1559Transaction.md#getbasefee) - [getDataFee](FeeMarketEIP1559Transaction.md#getdatafee) +- [getHashedMessageToSign](FeeMarketEIP1559Transaction.md#gethashedmessagetosign) - [getMessageToSign](FeeMarketEIP1559Transaction.md#getmessagetosign) - [getMessageToVerifySignature](FeeMarketEIP1559Transaction.md#getmessagetoverifysignature) - [getSenderAddress](FeeMarketEIP1559Transaction.md#getsenderaddress) - [getSenderPublicKey](FeeMarketEIP1559Transaction.md#getsenderpublickey) - [getUpfrontCost](FeeMarketEIP1559Transaction.md#getupfrontcost) +- [getValidationErrors](FeeMarketEIP1559Transaction.md#getvalidationerrors) - [hash](FeeMarketEIP1559Transaction.md#hash) - [isSigned](FeeMarketEIP1559Transaction.md#issigned) +- [isValid](FeeMarketEIP1559Transaction.md#isvalid) - [raw](FeeMarketEIP1559Transaction.md#raw) - [serialize](FeeMarketEIP1559Transaction.md#serialize) - [sign](FeeMarketEIP1559Transaction.md#sign) - [supports](FeeMarketEIP1559Transaction.md#supports) - [toCreationAddress](FeeMarketEIP1559Transaction.md#tocreationaddress) - [toJSON](FeeMarketEIP1559Transaction.md#tojson) -- [validate](FeeMarketEIP1559Transaction.md#validate) - [verifySignature](FeeMarketEIP1559Transaction.md#verifysignature) - [fromSerializedTx](FeeMarketEIP1559Transaction.md#fromserializedtx) - [fromTxData](FeeMarketEIP1559Transaction.md#fromtxdata) @@ -86,11 +87,11 @@ varying data types. #### Overrides -BaseTransaction<FeeMarketEIP1559Transaction\>.constructor +BaseTransaction<TransactionType.FeeMarketEIP1559\>.constructor #### Defined in -[eip1559Transaction.ts:149](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L149) +[tx/src/eip1559Transaction.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L148) ## Properties @@ -100,17 +101,17 @@ BaseTransaction<FeeMarketEIP1559Transaction\>.constructor #### Defined in -[eip1559Transaction.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L40) +[tx/src/eip1559Transaction.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L47) ___ ### accessList -• `Readonly` **accessList**: [`AccessListBuffer`](../README.md#accesslistbuffer) +• `Readonly` **accessList**: [`AccessListBytes`](../README.md#accesslistbytes) #### Defined in -[eip1559Transaction.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L39) +[tx/src/eip1559Transaction.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L46) ___ @@ -120,7 +121,7 @@ ___ #### Defined in -[eip1559Transaction.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L38) +[tx/src/eip1559Transaction.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L45) ___ @@ -134,13 +135,13 @@ BaseTransaction.common #### Defined in -[eip1559Transaction.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L44) +[tx/src/eip1559Transaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L51) ___ ### data -• `Readonly` **data**: `Buffer` +• `Readonly` **data**: `Uint8Array` #### Inherited from @@ -148,7 +149,7 @@ BaseTransaction.data #### Defined in -[baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) +[tx/src/baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) ___ @@ -162,7 +163,7 @@ BaseTransaction.gasLimit #### Defined in -[baseTransaction.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L49) +[tx/src/baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) ___ @@ -172,7 +173,7 @@ ___ #### Defined in -[eip1559Transaction.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L42) +[tx/src/eip1559Transaction.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L49) ___ @@ -182,7 +183,7 @@ ___ #### Defined in -[eip1559Transaction.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L41) +[tx/src/eip1559Transaction.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L48) ___ @@ -196,7 +197,7 @@ BaseTransaction.nonce #### Defined in -[baseTransaction.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L48) +[tx/src/baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) ___ @@ -210,7 +211,7 @@ BaseTransaction.r #### Defined in -[baseTransaction.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L55) +[tx/src/baseTransaction.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L57) ___ @@ -224,7 +225,7 @@ BaseTransaction.s #### Defined in -[baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) +[tx/src/baseTransaction.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L58) ___ @@ -238,7 +239,7 @@ BaseTransaction.to #### Defined in -[baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) +[tx/src/baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) ___ @@ -252,7 +253,7 @@ BaseTransaction.v #### Defined in -[baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) +[tx/src/baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) ___ @@ -266,13 +267,13 @@ BaseTransaction.value #### Defined in -[baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) +[tx/src/baseTransaction.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L53) ## Accessors ### type -• `get` **type**(): `number` +• `get` **type**(): [`TransactionType`](../enums/TransactionType.md) Returns the transaction type. @@ -280,7 +281,7 @@ Note: legacy txs will return tx type `0`. #### Returns -`number` +[`TransactionType`](../enums/TransactionType.md) #### Inherited from @@ -288,36 +289,10 @@ BaseTransaction.type #### Defined in -[baseTransaction.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L134) +[tx/src/baseTransaction.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L128) ## Methods -### \_processSignature - -▸ **_processSignature**(`v`, `r`, `s`): [`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `v` | `bigint` | -| `r` | `Buffer` | -| `s` | `Buffer` | - -#### Returns - -[`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md) - -#### Overrides - -BaseTransaction.\_processSignature - -#### Defined in - -[eip1559Transaction.ts:364](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L364) - -___ - ### errorStr ▸ **errorStr**(): `string` @@ -334,7 +309,7 @@ BaseTransaction.errorStr #### Defined in -[eip1559Transaction.ts:411](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L411) +[tx/src/eip1559Transaction.ts:403](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L403) ___ @@ -354,7 +329,7 @@ BaseTransaction.getBaseFee #### Defined in -[baseTransaction.ts:204](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L204) +[tx/src/baseTransaction.ts:205](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L205) ___ @@ -374,15 +349,39 @@ BaseTransaction.getDataFee #### Defined in -[eip1559Transaction.ts:204](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L204) +[tx/src/eip1559Transaction.ts:203](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L203) + +___ + +### getHashedMessageToSign + +▸ **getHashedMessageToSign**(): `Uint8Array` + +Returns the hashed serialized unsigned tx, which can be used +to sign the transaction (e.g. for sending to a hardware wallet). + +Note: in contrast to the legacy tx the raw message format is already +serialized and doesn't need to be RLP encoded any more. + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.getHashedMessageToSign + +#### Defined in + +[tx/src/eip1559Transaction.ts:302](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L302) ___ ### getMessageToSign -▸ **getMessageToSign**(`hashMessage?`): `Buffer` +▸ **getMessageToSign**(): `Uint8Array` -Returns the serialized unsigned tx (hashed or raw), which can be used +Returns the raw serialized unsigned tx, which can be used to sign the transaction (e.g. for sending to a hardware wallet). Note: in contrast to the legacy tx the raw message format is already @@ -392,15 +391,9 @@ serialized and doesn't need to be RLP encoded any more. const serializedMessage = tx.getMessageToSign() // use this for the HW wallet input ``` -#### Parameters - -| Name | Type | Default value | Description | -| :------ | :------ | :------ | :------ | -| `hashMessage` | `boolean` | `true` | Return hashed message if set to true (default: true) | - #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -408,19 +401,19 @@ BaseTransaction.getMessageToSign #### Defined in -[eip1559Transaction.ts:295](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L295) +[tx/src/eip1559Transaction.ts:289](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L289) ___ ### getMessageToVerifySignature -▸ **getMessageToVerifySignature**(): `Buffer` +▸ **getMessageToVerifySignature**(): `Uint8Array` Computes a sha3-256 hash which can be used to verify the signature #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -428,7 +421,7 @@ BaseTransaction.getMessageToVerifySignature #### Defined in -[eip1559Transaction.ts:333](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L333) +[tx/src/eip1559Transaction.ts:331](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L331) ___ @@ -448,19 +441,19 @@ BaseTransaction.getSenderAddress #### Defined in -[baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) +[tx/src/baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) ___ ### getSenderPublicKey -▸ **getSenderPublicKey**(): `Buffer` +▸ **getSenderPublicKey**(): `Uint8Array` Returns the public key of the sender #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -468,7 +461,7 @@ BaseTransaction.getSenderPublicKey #### Defined in -[eip1559Transaction.ts:340](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L340) +[tx/src/eip1559Transaction.ts:338](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L338) ___ @@ -494,13 +487,35 @@ BaseTransaction.getUpfrontCost #### Defined in -[eip1559Transaction.ts:226](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L226) +[tx/src/eip1559Transaction.ts:225](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L225) + +___ + +### getValidationErrors + +▸ **getValidationErrors**(): `string`[] + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`string`[] + +an array of error strings + +#### Inherited from + +BaseTransaction.getValidationErrors + +#### Defined in + +[tx/src/baseTransaction.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L156) ___ ### hash -▸ **hash**(): `Buffer` +▸ **hash**(): `Uint8Array` Computes a sha3-256 hash of the serialized tx. @@ -509,7 +524,7 @@ Use [getMessageToSign](FeeMarketEIP1559Transaction.md#getmessagetosign) to get a #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -517,7 +532,7 @@ BaseTransaction.hash #### Defined in -[eip1559Transaction.ts:314](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L314) +[tx/src/eip1559Transaction.ts:312](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L312) ___ @@ -535,15 +550,37 @@ BaseTransaction.isSigned #### Defined in -[baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) +[tx/src/baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) + +___ + +### isValid + +▸ **isValid**(): `boolean` + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`boolean` + +true if the transaction is valid, false otherwise + +#### Inherited from + +BaseTransaction.isValid + +#### Defined in + +[tx/src/baseTransaction.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L174) ___ ### raw -▸ **raw**(): [`FeeMarketEIP1559ValuesArray`](../README.md#feemarketeip1559valuesarray) +▸ **raw**(): `FeeMarketEIP1559TxValuesArray` -Returns a Buffer Array of the raw Buffers of the EIP-1559 transaction, in order. +Returns a Uint8Array Array of the raw Bytes of the EIP-1559 transaction, in order. Format: `[chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS]` @@ -551,13 +588,13 @@ accessList, signatureYParity, signatureR, signatureS]` Use [serialize](FeeMarketEIP1559Transaction.md#serialize) to add a transaction to a block with Block.fromValuesArray. -For an unsigned tx this method uses the empty Buffer values for the +For an unsigned tx this method uses the empty Bytes values for the signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant representation for external signing use [getMessageToSign](FeeMarketEIP1559Transaction.md#getmessagetosign). #### Returns -[`FeeMarketEIP1559ValuesArray`](../README.md#feemarketeip1559valuesarray) +`FeeMarketEIP1559TxValuesArray` #### Overrides @@ -565,13 +602,13 @@ BaseTransaction.raw #### Defined in -[eip1559Transaction.ts:247](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L247) +[tx/src/eip1559Transaction.ts:246](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L246) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` Returns the serialized encoding of the EIP-1559 transaction. @@ -584,7 +621,7 @@ the RLP encoding of the values. #### Returns -`Buffer` +`Uint8Array` #### Overrides @@ -592,7 +629,7 @@ BaseTransaction.serialize #### Defined in -[eip1559Transaction.ts:274](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L274) +[tx/src/eip1559Transaction.ts:273](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L273) ___ @@ -612,7 +649,7 @@ const signedTx = tx.sign(privateKey) | Name | Type | | :------ | :------ | -| `privateKey` | `Buffer` | +| `privateKey` | `Uint8Array` | #### Returns @@ -624,7 +661,7 @@ BaseTransaction.sign #### Defined in -[baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) +[tx/src/baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) ___ @@ -644,7 +681,7 @@ This method can be useful for feature checks if the tx type is unknown (e.g. when instantiated with the tx factory). -See `Capabilites` in the `types` module for a reference +See `Capabilities` in the `types` module for a reference on all supported capabilities. #### Parameters @@ -663,7 +700,7 @@ BaseTransaction.supports #### Defined in -[baseTransaction.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L154) +[tx/src/baseTransaction.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L148) ___ @@ -683,7 +720,7 @@ BaseTransaction.toCreationAddress #### Defined in -[baseTransaction.ts:244](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L244) +[tx/src/baseTransaction.ts:245](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L245) ___ @@ -703,68 +740,7 @@ BaseTransaction.toJSON #### Defined in -[eip1559Transaction.ts:389](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L389) - -___ - -### validate - -▸ **validate**(): `boolean` - -Checks if the transaction has the minimum amount of gas required -(DataFee + TxFee + Creation Fee). - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L162) - -▸ **validate**(`stringError`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``false`` | - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L163) - -▸ **validate**(`stringError`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``true`` | - -#### Returns - -`string`[] - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L164) +[tx/src/eip1559Transaction.ts:387](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L387) ___ @@ -784,7 +760,7 @@ BaseTransaction.verifySignature #### Defined in -[baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) +[tx/src/baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) ___ @@ -801,7 +777,7 @@ accessList, signatureYParity, signatureR, signatureS])` | Name | Type | | :------ | :------ | -| `serialized` | `Buffer` | +| `serialized` | `Uint8Array` | | `opts` | [`TxOptions`](../interfaces/TxOptions.md) | #### Returns @@ -810,7 +786,7 @@ accessList, signatureYParity, signatureR, signatureS])` #### Defined in -[eip1559Transaction.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L74) +[tx/src/eip1559Transaction.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L73) ___ @@ -840,7 +816,7 @@ Notes: #### Defined in -[eip1559Transaction.ts:64](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L64) +[tx/src/eip1559Transaction.ts:63](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L63) ___ @@ -857,7 +833,7 @@ accessList, signatureYParity, signatureR, signatureS]` | Name | Type | | :------ | :------ | -| `values` | [`FeeMarketEIP1559ValuesArray`](../README.md#feemarketeip1559valuesarray) | +| `values` | `FeeMarketEIP1559TxValuesArray` | | `opts` | [`TxOptions`](../interfaces/TxOptions.md) | #### Returns @@ -866,4 +842,4 @@ accessList, signatureYParity, signatureR, signatureS]` #### Defined in -[eip1559Transaction.ts:98](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L98) +[tx/src/eip1559Transaction.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/eip1559Transaction.ts#L97) diff --git a/packages/tx/docs/classes/LegacyTransaction.md b/packages/tx/docs/classes/LegacyTransaction.md new file mode 100644 index 0000000000..b212c2f363 --- /dev/null +++ b/packages/tx/docs/classes/LegacyTransaction.md @@ -0,0 +1,786 @@ +[@ethereumjs/tx](../README.md) / LegacyTransaction + +# Class: LegacyTransaction + +An Ethereum non-typed (legacy) transaction + +## Hierarchy + +- `BaseTransaction`<[`Legacy`](../enums/TransactionType.md#legacy)\> + + ↳ **`LegacyTransaction`** + +## Table of contents + +### Constructors + +- [constructor](LegacyTransaction.md#constructor) + +### Properties + +- [common](LegacyTransaction.md#common) +- [data](LegacyTransaction.md#data) +- [gasLimit](LegacyTransaction.md#gaslimit) +- [gasPrice](LegacyTransaction.md#gasprice) +- [nonce](LegacyTransaction.md#nonce) +- [r](LegacyTransaction.md#r) +- [s](LegacyTransaction.md#s) +- [to](LegacyTransaction.md#to) +- [v](LegacyTransaction.md#v) +- [value](LegacyTransaction.md#value) + +### Accessors + +- [type](LegacyTransaction.md#type) + +### Methods + +- [errorStr](LegacyTransaction.md#errorstr) +- [getBaseFee](LegacyTransaction.md#getbasefee) +- [getDataFee](LegacyTransaction.md#getdatafee) +- [getHashedMessageToSign](LegacyTransaction.md#gethashedmessagetosign) +- [getMessageToSign](LegacyTransaction.md#getmessagetosign) +- [getMessageToVerifySignature](LegacyTransaction.md#getmessagetoverifysignature) +- [getSenderAddress](LegacyTransaction.md#getsenderaddress) +- [getSenderPublicKey](LegacyTransaction.md#getsenderpublickey) +- [getUpfrontCost](LegacyTransaction.md#getupfrontcost) +- [getValidationErrors](LegacyTransaction.md#getvalidationerrors) +- [hash](LegacyTransaction.md#hash) +- [isSigned](LegacyTransaction.md#issigned) +- [isValid](LegacyTransaction.md#isvalid) +- [raw](LegacyTransaction.md#raw) +- [serialize](LegacyTransaction.md#serialize) +- [sign](LegacyTransaction.md#sign) +- [supports](LegacyTransaction.md#supports) +- [toCreationAddress](LegacyTransaction.md#tocreationaddress) +- [toJSON](LegacyTransaction.md#tojson) +- [verifySignature](LegacyTransaction.md#verifysignature) +- [fromSerializedTx](LegacyTransaction.md#fromserializedtx) +- [fromTxData](LegacyTransaction.md#fromtxdata) +- [fromValuesArray](LegacyTransaction.md#fromvaluesarray) + +## Constructors + +### constructor + +• **new LegacyTransaction**(`txData`, `opts?`) + +This constructor takes the values, validates them, assigns them and freezes the object. + +It is not recommended to use this constructor directly. Instead use +the static factory methods to assist in creating a Transaction object from +varying data types. + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `txData` | [`LegacyTxData`](../README.md#legacytxdata) | +| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | + +#### Overrides + +BaseTransaction<TransactionType.Legacy\>.constructor + +#### Defined in + +[tx/src/legacyTransaction.ts:110](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L110) + +## Properties + +### common + +• `Readonly` **common**: `Common` + +#### Overrides + +BaseTransaction.common + +#### Defined in + +[tx/src/legacyTransaction.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L40) + +___ + +### data + +• `Readonly` **data**: `Uint8Array` + +#### Inherited from + +BaseTransaction.data + +#### Defined in + +[tx/src/baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) + +___ + +### gasLimit + +• `Readonly` **gasLimit**: `bigint` + +#### Inherited from + +BaseTransaction.gasLimit + +#### Defined in + +[tx/src/baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) + +___ + +### gasPrice + +• `Readonly` **gasPrice**: `bigint` + +#### Defined in + +[tx/src/legacyTransaction.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L38) + +___ + +### nonce + +• `Readonly` **nonce**: `bigint` + +#### Inherited from + +BaseTransaction.nonce + +#### Defined in + +[tx/src/baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) + +___ + +### r + +• `Optional` `Readonly` **r**: `bigint` + +#### Inherited from + +BaseTransaction.r + +#### Defined in + +[tx/src/baseTransaction.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L57) + +___ + +### s + +• `Optional` `Readonly` **s**: `bigint` + +#### Inherited from + +BaseTransaction.s + +#### Defined in + +[tx/src/baseTransaction.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L58) + +___ + +### to + +• `Optional` `Readonly` **to**: `Address` + +#### Inherited from + +BaseTransaction.to + +#### Defined in + +[tx/src/baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) + +___ + +### v + +• `Optional` `Readonly` **v**: `bigint` + +#### Inherited from + +BaseTransaction.v + +#### Defined in + +[tx/src/baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) + +___ + +### value + +• `Readonly` **value**: `bigint` + +#### Inherited from + +BaseTransaction.value + +#### Defined in + +[tx/src/baseTransaction.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L53) + +## Accessors + +### type + +• `get` **type**(): [`TransactionType`](../enums/TransactionType.md) + +Returns the transaction type. + +Note: legacy txs will return tx type `0`. + +#### Returns + +[`TransactionType`](../enums/TransactionType.md) + +#### Inherited from + +BaseTransaction.type + +#### Defined in + +[tx/src/baseTransaction.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L128) + +## Methods + +### errorStr + +▸ **errorStr**(): `string` + +Return a compact error string representation of the object + +#### Returns + +`string` + +#### Overrides + +BaseTransaction.errorStr + +#### Defined in + +[tx/src/legacyTransaction.ts:395](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L395) + +___ + +### getBaseFee + +▸ **getBaseFee**(): `bigint` + +The minimum amount of gas the tx must have (DataFee + TxFee + Creation Fee) + +#### Returns + +`bigint` + +#### Inherited from + +BaseTransaction.getBaseFee + +#### Defined in + +[tx/src/baseTransaction.ts:205](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L205) + +___ + +### getDataFee + +▸ **getDataFee**(): `bigint` + +The amount of gas paid for the data in this tx + +#### Returns + +`bigint` + +#### Overrides + +BaseTransaction.getDataFee + +#### Defined in + +[tx/src/legacyTransaction.ts:230](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L230) + +___ + +### getHashedMessageToSign + +▸ **getHashedMessageToSign**(): `Uint8Array` + +Returns the hashed serialized unsigned tx, which can be used +to sign the transaction (e.g. for sending to a hardware wallet). + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.getHashedMessageToSign + +#### Defined in + +[tx/src/legacyTransaction.ts:222](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L222) + +___ + +### getMessageToSign + +▸ **getMessageToSign**(): `Uint8Array`[] + +Returns the raw unsigned tx, which can be used +to sign the transaction (e.g. for sending to a hardware wallet). + +Note: the raw message message format for the legacy tx is not RLP encoded +and you might need to do yourself with: + +```javascript +import { RLP } from '@ethereumjs/rlp' +const message = tx.getMessageToSign() +const serializedMessage = RLP.encode(message)) // use this for the HW wallet input +``` + +#### Returns + +`Uint8Array`[] + +#### Overrides + +BaseTransaction.getMessageToSign + +#### Defined in + +[tx/src/legacyTransaction.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L199) + +___ + +### getMessageToVerifySignature + +▸ **getMessageToVerifySignature**(): `Uint8Array` + +Computes a sha3-256 hash which can be used to verify the signature + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.getMessageToVerifySignature + +#### Defined in + +[tx/src/legacyTransaction.ts:277](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L277) + +___ + +### getSenderAddress + +▸ **getSenderAddress**(): `Address` + +Returns the sender's address + +#### Returns + +`Address` + +#### Inherited from + +BaseTransaction.getSenderAddress + +#### Defined in + +[tx/src/baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) + +___ + +### getSenderPublicKey + +▸ **getSenderPublicKey**(): `Uint8Array` + +Returns the public key of the sender + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.getSenderPublicKey + +#### Defined in + +[tx/src/legacyTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L288) + +___ + +### getUpfrontCost + +▸ **getUpfrontCost**(): `bigint` + +The up front amount that an account must have for this transaction to be valid + +#### Returns + +`bigint` + +#### Overrides + +BaseTransaction.getUpfrontCost + +#### Defined in + +[tx/src/legacyTransaction.ts:248](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L248) + +___ + +### getValidationErrors + +▸ **getValidationErrors**(): `string`[] + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`string`[] + +an array of error strings + +#### Inherited from + +BaseTransaction.getValidationErrors + +#### Defined in + +[tx/src/baseTransaction.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L156) + +___ + +### hash + +▸ **hash**(): `Uint8Array` + +Computes a sha3-256 hash of the serialized tx. + +This method can only be used for signed txs (it throws otherwise). +Use Transaction.getMessageToSign to get a tx hash for the purpose of signing. + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.hash + +#### Defined in + +[tx/src/legacyTransaction.ts:258](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L258) + +___ + +### isSigned + +▸ **isSigned**(): `boolean` + +#### Returns + +`boolean` + +#### Inherited from + +BaseTransaction.isSigned + +#### Defined in + +[tx/src/baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) + +___ + +### isValid + +▸ **isValid**(): `boolean` + +Validates the transaction signature and minimum gas requirements. + +#### Returns + +`boolean` + +true if the transaction is valid, false otherwise + +#### Inherited from + +BaseTransaction.isValid + +#### Defined in + +[tx/src/baseTransaction.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L174) + +___ + +### raw + +▸ **raw**(): `LegacyTxValuesArray` + +Returns a Uint8Array Array of the raw Bytes of the legacy transaction, in order. + +Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]` + +For legacy txs this is also the correct format to add transactions +to a block with Block.fromValuesArray (use the `serialize()` method +for typed txs). + +For an unsigned tx this method returns the empty Bytes values +for the signature parameters `v`, `r` and `s`. For an EIP-155 compliant +representation have a look at Transaction.getMessageToSign. + +#### Returns + +`LegacyTxValuesArray` + +#### Overrides + +BaseTransaction.raw + +#### Defined in + +[tx/src/legacyTransaction.ts:159](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L159) + +___ + +### serialize + +▸ **serialize**(): `Uint8Array` + +Returns the serialized encoding of the legacy transaction. + +Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])` + +For an unsigned tx this method uses the empty Uint8Array values for the +signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant +representation for external signing use Transaction.getMessageToSign. + +#### Returns + +`Uint8Array` + +#### Overrides + +BaseTransaction.serialize + +#### Defined in + +[tx/src/legacyTransaction.ts:182](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L182) + +___ + +### sign + +▸ **sign**(`privateKey`): [`LegacyTransaction`](LegacyTransaction.md) + +Signs a transaction. + +Note that the signed tx is returned as a new object, +use as follows: +```javascript +const signedTx = tx.sign(privateKey) +``` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `privateKey` | `Uint8Array` | + +#### Returns + +[`LegacyTransaction`](LegacyTransaction.md) + +#### Inherited from + +BaseTransaction.sign + +#### Defined in + +[tx/src/baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) + +___ + +### supports + +▸ **supports**(`capability`): `boolean` + +Checks if a tx type defining capability is active +on a tx, for example the EIP-1559 fee market mechanism +or the EIP-2930 access list feature. + +Note that this is different from the tx type itself, +so EIP-2930 access lists can very well be active +on an EIP-1559 tx for example. + +This method can be useful for feature checks if the +tx type is unknown (e.g. when instantiated with +the tx factory). + +See `Capabilities` in the `types` module for a reference +on all supported capabilities. + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `capability` | [`Capability`](../enums/Capability.md) | + +#### Returns + +`boolean` + +#### Inherited from + +BaseTransaction.supports + +#### Defined in + +[tx/src/baseTransaction.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L148) + +___ + +### toCreationAddress + +▸ **toCreationAddress**(): `boolean` + +If the tx's `to` is to the creation address + +#### Returns + +`boolean` + +#### Inherited from + +BaseTransaction.toCreationAddress + +#### Defined in + +[tx/src/baseTransaction.ts:245](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L245) + +___ + +### toJSON + +▸ **toJSON**(): [`JsonTx`](../interfaces/JsonTx.md) + +Returns an object with the JSON representation of the transaction. + +#### Returns + +[`JsonTx`](../interfaces/JsonTx.md) + +#### Overrides + +BaseTransaction.toJSON + +#### Defined in + +[tx/src/legacyTransaction.ts:338](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L338) + +___ + +### verifySignature + +▸ **verifySignature**(): `boolean` + +Determines if the signature is valid + +#### Returns + +`boolean` + +#### Inherited from + +BaseTransaction.verifySignature + +#### Defined in + +[tx/src/baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) + +___ + +### fromSerializedTx + +▸ `Static` **fromSerializedTx**(`serialized`, `opts?`): [`LegacyTransaction`](LegacyTransaction.md) + +Instantiate a transaction from the serialized tx. + +Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `serialized` | `Uint8Array` | +| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | + +#### Returns + +[`LegacyTransaction`](LegacyTransaction.md) + +#### Defined in + +[tx/src/legacyTransaction.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L59) + +___ + +### fromTxData + +▸ `Static` **fromTxData**(`txData`, `opts?`): [`LegacyTransaction`](LegacyTransaction.md) + +Instantiate a transaction from a data dictionary. + +Format: { nonce, gasPrice, gasLimit, to, value, data, v, r, s } + +Notes: +- All parameters are optional and have some basic default values + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `txData` | [`LegacyTxData`](../README.md#legacytxdata) | +| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | + +#### Returns + +[`LegacyTransaction`](LegacyTransaction.md) + +#### Defined in + +[tx/src/legacyTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L50) + +___ + +### fromValuesArray + +▸ `Static` **fromValuesArray**(`values`, `opts?`): [`LegacyTransaction`](LegacyTransaction.md) + +Create a transaction from a values array. + +Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `values` | `LegacyTxValuesArray` | +| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | + +#### Returns + +[`LegacyTransaction`](LegacyTransaction.md) + +#### Defined in + +[tx/src/legacyTransaction.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L74) diff --git a/packages/tx/docs/classes/Transaction.md b/packages/tx/docs/classes/Transaction.md deleted file mode 100644 index d2a50c77c7..0000000000 --- a/packages/tx/docs/classes/Transaction.md +++ /dev/null @@ -1,807 +0,0 @@ -[@ethereumjs/tx](../README.md) / Transaction - -# Class: Transaction - -An Ethereum non-typed (legacy) transaction - -## Hierarchy - -- `BaseTransaction`<[`Transaction`](Transaction.md)\> - - ↳ **`Transaction`** - -## Table of contents - -### Constructors - -- [constructor](Transaction.md#constructor) - -### Properties - -- [common](Transaction.md#common) -- [data](Transaction.md#data) -- [gasLimit](Transaction.md#gaslimit) -- [gasPrice](Transaction.md#gasprice) -- [nonce](Transaction.md#nonce) -- [r](Transaction.md#r) -- [s](Transaction.md#s) -- [to](Transaction.md#to) -- [v](Transaction.md#v) -- [value](Transaction.md#value) - -### Accessors - -- [type](Transaction.md#type) - -### Methods - -- [errorStr](Transaction.md#errorstr) -- [getBaseFee](Transaction.md#getbasefee) -- [getDataFee](Transaction.md#getdatafee) -- [getMessageToSign](Transaction.md#getmessagetosign) -- [getMessageToVerifySignature](Transaction.md#getmessagetoverifysignature) -- [getSenderAddress](Transaction.md#getsenderaddress) -- [getSenderPublicKey](Transaction.md#getsenderpublickey) -- [getUpfrontCost](Transaction.md#getupfrontcost) -- [hash](Transaction.md#hash) -- [isSigned](Transaction.md#issigned) -- [raw](Transaction.md#raw) -- [serialize](Transaction.md#serialize) -- [sign](Transaction.md#sign) -- [supports](Transaction.md#supports) -- [toCreationAddress](Transaction.md#tocreationaddress) -- [toJSON](Transaction.md#tojson) -- [validate](Transaction.md#validate) -- [verifySignature](Transaction.md#verifysignature) -- [fromSerializedTx](Transaction.md#fromserializedtx) -- [fromTxData](Transaction.md#fromtxdata) -- [fromValuesArray](Transaction.md#fromvaluesarray) - -## Constructors - -### constructor - -• **new Transaction**(`txData`, `opts?`) - -This constructor takes the values, validates them, assigns them and freezes the object. - -It is not recommended to use this constructor directly. Instead use -the static factory methods to assist in creating a Transaction object from -varying data types. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `txData` | [`TxData`](../README.md#txdata) | -| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | - -#### Overrides - -BaseTransaction<Transaction\>.constructor - -#### Defined in - -[legacyTransaction.ts:106](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L106) - -## Properties - -### common - -• `Readonly` **common**: `Common` - -#### Overrides - -BaseTransaction.common - -#### Defined in - -[legacyTransaction.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L36) - -___ - -### data - -• `Readonly` **data**: `Buffer` - -#### Inherited from - -BaseTransaction.data - -#### Defined in - -[baseTransaction.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L52) - -___ - -### gasLimit - -• `Readonly` **gasLimit**: `bigint` - -#### Inherited from - -BaseTransaction.gasLimit - -#### Defined in - -[baseTransaction.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L49) - -___ - -### gasPrice - -• `Readonly` **gasPrice**: `bigint` - -#### Defined in - -[legacyTransaction.ts:34](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L34) - -___ - -### nonce - -• `Readonly` **nonce**: `bigint` - -#### Inherited from - -BaseTransaction.nonce - -#### Defined in - -[baseTransaction.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L48) - -___ - -### r - -• `Optional` `Readonly` **r**: `bigint` - -#### Inherited from - -BaseTransaction.r - -#### Defined in - -[baseTransaction.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L55) - -___ - -### s - -• `Optional` `Readonly` **s**: `bigint` - -#### Inherited from - -BaseTransaction.s - -#### Defined in - -[baseTransaction.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L56) - -___ - -### to - -• `Optional` `Readonly` **to**: `Address` - -#### Inherited from - -BaseTransaction.to - -#### Defined in - -[baseTransaction.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L50) - -___ - -### v - -• `Optional` `Readonly` **v**: `bigint` - -#### Inherited from - -BaseTransaction.v - -#### Defined in - -[baseTransaction.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L54) - -___ - -### value - -• `Readonly` **value**: `bigint` - -#### Inherited from - -BaseTransaction.value - -#### Defined in - -[baseTransaction.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L51) - -## Accessors - -### type - -• `get` **type**(): `number` - -Returns the transaction type. - -Note: legacy txs will return tx type `0`. - -#### Returns - -`number` - -#### Inherited from - -BaseTransaction.type - -#### Defined in - -[baseTransaction.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L134) - -## Methods - -### errorStr - -▸ **errorStr**(): `string` - -Return a compact error string representation of the object - -#### Returns - -`string` - -#### Overrides - -BaseTransaction.errorStr - -#### Defined in - -[legacyTransaction.ts:403](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L403) - -___ - -### getBaseFee - -▸ **getBaseFee**(): `bigint` - -The minimum amount of gas the tx must have (DataFee + TxFee + Creation Fee) - -#### Returns - -`bigint` - -#### Inherited from - -BaseTransaction.getBaseFee - -#### Defined in - -[baseTransaction.ts:204](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L204) - -___ - -### getDataFee - -▸ **getDataFee**(): `bigint` - -The amount of gas paid for the data in this tx - -#### Returns - -`bigint` - -#### Overrides - -BaseTransaction.getDataFee - -#### Defined in - -[legacyTransaction.ts:231](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L231) - -___ - -### getMessageToSign - -▸ **getMessageToSign**(`hashMessage`): `Buffer`[] - -Returns the unsigned tx (hashed or raw), which can be used -to sign the transaction (e.g. for sending to a hardware wallet). - -Note: the raw message message format for the legacy tx is not RLP encoded -and you might need to do yourself with: - -```javascript -import { bufArrToArr } from '@ethereumjs/util' -import { RLP } from '@ethereumjs/rlp' -const message = tx.getMessageToSign() -const serializedMessage = Buffer.from(RLP.encode(bufArrToArr(message))) // use this for the HW wallet input -``` - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `hashMessage` | ``false`` | Return hashed message if set to true (default: true) | - -#### Returns - -`Buffer`[] - -#### Overrides - -BaseTransaction.getMessageToSign - -#### Defined in - -[legacyTransaction.ts:217](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L217) - -▸ **getMessageToSign**(`hashMessage?`): `Buffer` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `hashMessage?` | ``true`` | - -#### Returns - -`Buffer` - -#### Overrides - -BaseTransaction.getMessageToSign - -#### Defined in - -[legacyTransaction.ts:218](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L218) - -___ - -### getMessageToVerifySignature - -▸ **getMessageToVerifySignature**(): `Buffer` - -Computes a sha3-256 hash which can be used to verify the signature - -#### Returns - -`Buffer` - -#### Overrides - -BaseTransaction.getMessageToVerifySignature - -#### Defined in - -[legacyTransaction.ts:278](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L278) - -___ - -### getSenderAddress - -▸ **getSenderAddress**(): `Address` - -Returns the sender's address - -#### Returns - -`Address` - -#### Inherited from - -BaseTransaction.getSenderAddress - -#### Defined in - -[baseTransaction.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L301) - -___ - -### getSenderPublicKey - -▸ **getSenderPublicKey**(): `Buffer` - -Returns the public key of the sender - -#### Returns - -`Buffer` - -#### Overrides - -BaseTransaction.getSenderPublicKey - -#### Defined in - -[legacyTransaction.ts:290](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L290) - -___ - -### getUpfrontCost - -▸ **getUpfrontCost**(): `bigint` - -The up front amount that an account must have for this transaction to be valid - -#### Returns - -`bigint` - -#### Overrides - -BaseTransaction.getUpfrontCost - -#### Defined in - -[legacyTransaction.ts:249](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L249) - -___ - -### hash - -▸ **hash**(): `Buffer` - -Computes a sha3-256 hash of the serialized tx. - -This method can only be used for signed txs (it throws otherwise). -Use [getMessageToSign](Transaction.md#getmessagetosign) to get a tx hash for the purpose of signing. - -#### Returns - -`Buffer` - -#### Overrides - -BaseTransaction.hash - -#### Defined in - -[legacyTransaction.ts:259](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L259) - -___ - -### isSigned - -▸ **isSigned**(): `boolean` - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.isSigned - -#### Defined in - -[baseTransaction.ts:276](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L276) - -___ - -### raw - -▸ **raw**(): [`TxValuesArray`](../README.md#txvaluesarray) - -Returns a Buffer Array of the raw Buffers of the legacy transaction, in order. - -Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]` - -For legacy txs this is also the correct format to add transactions -to a block with Block.fromValuesArray (use the `serialize()` method -for typed txs). - -For an unsigned tx this method returns the empty Buffer values -for the signature parameters `v`, `r` and `s`. For an EIP-155 compliant -representation have a look at [getMessageToSign](Transaction.md#getmessagetosign). - -#### Returns - -[`TxValuesArray`](../README.md#txvaluesarray) - -#### Overrides - -BaseTransaction.raw - -#### Defined in - -[legacyTransaction.ts:155](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L155) - -___ - -### serialize - -▸ **serialize**(): `Buffer` - -Returns the serialized encoding of the legacy transaction. - -Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])` - -For an unsigned tx this method uses the empty Buffer values for the -signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant -representation for external signing use [getMessageToSign](Transaction.md#getmessagetosign). - -#### Returns - -`Buffer` - -#### Overrides - -BaseTransaction.serialize - -#### Defined in - -[legacyTransaction.ts:178](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L178) - -___ - -### sign - -▸ **sign**(`privateKey`): [`Transaction`](Transaction.md) - -Signs a transaction. - -Note that the signed tx is returned as a new object, -use as follows: -```javascript -const signedTx = tx.sign(privateKey) -``` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `privateKey` | `Buffer` | - -#### Returns - -[`Transaction`](Transaction.md) - -#### Inherited from - -BaseTransaction.sign - -#### Defined in - -[baseTransaction.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L319) - -___ - -### supports - -▸ **supports**(`capability`): `boolean` - -Checks if a tx type defining capability is active -on a tx, for example the EIP-1559 fee market mechanism -or the EIP-2930 access list feature. - -Note that this is different from the tx type itself, -so EIP-2930 access lists can very well be active -on an EIP-1559 tx for example. - -This method can be useful for feature checks if the -tx type is unknown (e.g. when instantiated with -the tx factory). - -See `Capabilites` in the `types` module for a reference -on all supported capabilities. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `capability` | [`Capability`](../enums/Capability.md) | - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.supports - -#### Defined in - -[baseTransaction.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L154) - -___ - -### toCreationAddress - -▸ **toCreationAddress**(): `boolean` - -If the tx's `to` is to the creation address - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.toCreationAddress - -#### Defined in - -[baseTransaction.ts:244](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L244) - -___ - -### toJSON - -▸ **toJSON**(): [`JsonTx`](../interfaces/JsonTx.md) - -Returns an object with the JSON representation of the transaction. - -#### Returns - -[`JsonTx`](../interfaces/JsonTx.md) - -#### Overrides - -BaseTransaction.toJSON - -#### Defined in - -[legacyTransaction.ts:340](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L340) - -___ - -### validate - -▸ **validate**(): `boolean` - -Checks if the transaction has the minimum amount of gas required -(DataFee + TxFee + Creation Fee). - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L162) - -▸ **validate**(`stringError`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``false`` | - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L163) - -▸ **validate**(`stringError`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``true`` | - -#### Returns - -`string`[] - -#### Inherited from - -BaseTransaction.validate - -#### Defined in - -[baseTransaction.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L164) - -___ - -### verifySignature - -▸ **verifySignature**(): `boolean` - -Determines if the signature is valid - -#### Returns - -`boolean` - -#### Inherited from - -BaseTransaction.verifySignature - -#### Defined in - -[baseTransaction.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/baseTransaction.ts#L288) - -___ - -### fromSerializedTx - -▸ `Static` **fromSerializedTx**(`serialized`, `opts?`): [`Transaction`](Transaction.md) - -Instantiate a transaction from the serialized tx. - -Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `serialized` | `Buffer` | -| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | - -#### Returns - -[`Transaction`](Transaction.md) - -#### Defined in - -[legacyTransaction.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L55) - -___ - -### fromTxData - -▸ `Static` **fromTxData**(`txData`, `opts?`): [`Transaction`](Transaction.md) - -Instantiate a transaction from a data dictionary. - -Format: { nonce, gasPrice, gasLimit, to, value, data, v, r, s } - -Notes: -- All parameters are optional and have some basic default values - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `txData` | [`TxData`](../README.md#txdata) | -| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | - -#### Returns - -[`Transaction`](Transaction.md) - -#### Defined in - -[legacyTransaction.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L46) - -___ - -### fromValuesArray - -▸ `Static` **fromValuesArray**(`values`, `opts?`): [`Transaction`](Transaction.md) - -Create a transaction from a values array. - -Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `values` | [`TxValuesArray`](../README.md#txvaluesarray) | -| `opts` | [`TxOptions`](../interfaces/TxOptions.md) | - -#### Returns - -[`Transaction`](Transaction.md) - -#### Defined in - -[legacyTransaction.ts:70](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/legacyTransaction.ts#L70) diff --git a/packages/tx/docs/classes/TransactionFactory.md b/packages/tx/docs/classes/TransactionFactory.md index 3246cc81fd..6c3d1bc6a4 100644 --- a/packages/tx/docs/classes/TransactionFactory.md +++ b/packages/tx/docs/classes/TransactionFactory.md @@ -7,8 +7,8 @@ ### Methods - [fromBlockBodyData](TransactionFactory.md#fromblockbodydata) -- [fromEthersProvider](TransactionFactory.md#fromethersprovider) -- [fromRPCTx](TransactionFactory.md#fromrpctx) +- [fromJsonRpcProvider](TransactionFactory.md#fromjsonrpcprovider) +- [fromRPC](TransactionFactory.md#fromrpc) - [fromSerializedData](TransactionFactory.md#fromserializeddata) - [fromTxData](TransactionFactory.md#fromtxdata) @@ -16,33 +16,33 @@ ### fromBlockBodyData -▸ `Static` **fromBlockBodyData**(`data`, `txOptions?`): [`TypedTransaction`](../README.md#typedtransaction) +▸ `Static` **fromBlockBodyData**(`data`, `txOptions?`): [`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md) \| [`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md) \| [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) \| [`LegacyTransaction`](LegacyTransaction.md) When decoding a BlockBody, in the transactions field, a field is either: -A Buffer (a TypedTransaction - encoded as TransactionType || rlp(TransactionPayload)) -A Buffer[] (Legacy Transaction) +A Uint8Array (a TypedTransaction - encoded as TransactionType || rlp(TransactionPayload)) +A Uint8Array[] (Legacy Transaction) This method returns the right transaction. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `data` | `Buffer` \| `Buffer`[] | A Buffer or Buffer[] | +| `data` | `Uint8Array` \| `Uint8Array`[] | A Uint8Array or Uint8Array[] | | `txOptions` | [`TxOptions`](../interfaces/TxOptions.md) | The transaction options | #### Returns -[`TypedTransaction`](../README.md#typedtransaction) +[`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md) \| [`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md) \| [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) \| [`LegacyTransaction`](LegacyTransaction.md) #### Defined in -[transactionFactory.ts:84](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L84) +[tx/src/transactionFactory.ts:87](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L87) ___ -### fromEthersProvider +### fromJsonRpcProvider -▸ `Static` **fromEthersProvider**(`provider`, `txHash`, `txOptions?`): `Promise`<[`TypedTransaction`](../README.md#typedtransaction)\> +▸ `Static` **fromJsonRpcProvider**(`provider`, `txHash`, `txOptions?`): `Promise`<[`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md) \| [`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md) \| [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) \| [`LegacyTransaction`](LegacyTransaction.md)\> Method to retrieve a transaction from the provider @@ -50,86 +50,104 @@ Method to retrieve a transaction from the provider | Name | Type | Description | | :------ | :------ | :------ | -| `provider` | `any` | An Ethers JsonRPCProvider | +| `provider` | `string` \| `EthersProvider` | a url string for a JSON-RPC provider or an Ethers JsonRPCProvider object | | `txHash` | `string` | Transaction hash | | `txOptions?` | [`TxOptions`](../interfaces/TxOptions.md) | The transaction options | #### Returns -`Promise`<[`TypedTransaction`](../README.md#typedtransaction)\> +`Promise`<[`FeeMarketEIP1559Transaction`](FeeMarketEIP1559Transaction.md) \| [`AccessListEIP2930Transaction`](AccessListEIP2930Transaction.md) \| [`BlobEIP4844Transaction`](BlobEIP4844Transaction.md) \| [`LegacyTransaction`](LegacyTransaction.md)\> the transaction specified by `txHash` #### Defined in -[transactionFactory.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L102) +[tx/src/transactionFactory.ts:105](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L105) ___ -### fromRPCTx +### fromRPC -▸ `Static` **fromRPCTx**(`txData`, `txOptions?`): `Promise`<[`TypedTransaction`](../README.md#typedtransaction)\> +▸ `Static` **fromRPC**<`T`\>(`txData`, `txOptions?`): `Promise`<[`Transaction`](../interfaces/Transaction.md)[`T`]\> Method to decode data retrieved from RPC, such as `eth_getTransactionByHash` Note that this normalizes some of the parameters +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | extends [`TransactionType`](../enums/TransactionType.md) | + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `txData` | [`BlobEIP4844TxData`](../interfaces/BlobEIP4844TxData.md) \| [`FeeMarketEIP1559TxData`](../interfaces/FeeMarketEIP1559TxData.md) \| [`AccessListEIP2930TxData`](../interfaces/AccessListEIP2930TxData.md) \| [`TxData`](../README.md#txdata) | The RPC-encoded data | +| `txData` | [`TxData`](../interfaces/TxData.md)[`T`] | The RPC-encoded data | | `txOptions` | [`TxOptions`](../interfaces/TxOptions.md) | The transaction options | #### Returns -`Promise`<[`TypedTransaction`](../README.md#typedtransaction)\> +`Promise`<[`Transaction`](../interfaces/Transaction.md)[`T`]\> #### Defined in -[transactionFactory.ts:125](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L125) +[tx/src/transactionFactory.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L128) ___ ### fromSerializedData -▸ `Static` **fromSerializedData**(`data`, `txOptions?`): [`TypedTransaction`](../README.md#typedtransaction) +▸ `Static` **fromSerializedData**<`T`\>(`data`, `txOptions?`): [`Transaction`](../interfaces/Transaction.md)[`T`] This method tries to decode serialized data. +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | extends [`TransactionType`](../enums/TransactionType.md) | + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `data` | `Buffer` | The data Buffer | +| `data` | `Uint8Array` | The data Uint8Array | | `txOptions` | [`TxOptions`](../interfaces/TxOptions.md) | The transaction options | #### Returns -[`TypedTransaction`](../README.md#typedtransaction) +[`Transaction`](../interfaces/Transaction.md)[`T`] #### Defined in -[transactionFactory.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L57) +[tx/src/transactionFactory.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L57) ___ ### fromTxData -▸ `Static` **fromTxData**(`txData`, `txOptions?`): [`TypedTransaction`](../README.md#typedtransaction) +▸ `Static` **fromTxData**<`T`\>(`txData`, `txOptions?`): [`Transaction`](../interfaces/Transaction.md)[`T`] Create a transaction from a `txData` object +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | extends [`TransactionType`](../enums/TransactionType.md) | + #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `txData` | [`BlobEIP4844TxData`](../interfaces/BlobEIP4844TxData.md) \| [`FeeMarketEIP1559TxData`](../interfaces/FeeMarketEIP1559TxData.md) \| [`AccessListEIP2930TxData`](../interfaces/AccessListEIP2930TxData.md) \| [`TxData`](../README.md#txdata) | The transaction data. The `type` field will determine which transaction type is returned (if undefined, creates a legacy transaction) | +| `txData` | [`TypedTxData`](../README.md#typedtxdata) | The transaction data. The `type` field will determine which transaction type is returned (if undefined, creates a legacy transaction) | | `txOptions` | [`TxOptions`](../interfaces/TxOptions.md) | Options to pass on to the constructor of the transaction | #### Returns -[`TypedTransaction`](../README.md#typedtransaction) +[`Transaction`](../interfaces/Transaction.md)[`T`] #### Defined in -[transactionFactory.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L28) +[tx/src/transactionFactory.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L29) diff --git a/packages/tx/docs/enums/Capability.md b/packages/tx/docs/enums/Capability.md index 41c4ef61e1..95dffe3392 100644 --- a/packages/tx/docs/enums/Capability.md +++ b/packages/tx/docs/enums/Capability.md @@ -2,7 +2,7 @@ # Enumeration: Capability -Can be used in conjunction with [supports](../classes/Transaction.md#supports) +Can be used in conjunction with Transaction.supports to query on tx capabilities ## Table of contents @@ -25,7 +25,7 @@ See: [1559](https://eips.ethereum.org/EIPS/eip-1559) Fee Market EIP #### Defined in -[types.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L51) +[tx/src/types.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L31) ___ @@ -38,7 +38,7 @@ See: [155](https://eips.ethereum.org/EIPS/eip-155) Replay Attack Protection EIP #### Defined in -[types.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L45) +[tx/src/types.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L25) ___ @@ -51,7 +51,7 @@ See: [2718](https://eips.ethereum.org/EIPS/eip-2718) Transaction Type EIP #### Defined in -[types.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L57) +[tx/src/types.ts:37](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L37) ___ @@ -64,4 +64,4 @@ See: [2930](https://eips.ethereum.org/EIPS/eip-2930) Access Lists EIP #### Defined in -[types.ts:63](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L63) +[tx/src/types.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L43) diff --git a/packages/tx/docs/enums/TransactionType.md b/packages/tx/docs/enums/TransactionType.md new file mode 100644 index 0000000000..6075da19db --- /dev/null +++ b/packages/tx/docs/enums/TransactionType.md @@ -0,0 +1,54 @@ +[@ethereumjs/tx](../README.md) / TransactionType + +# Enumeration: TransactionType + +Encompassing type for all transaction types. + +## Table of contents + +### Enumeration Members + +- [AccessListEIP2930](TransactionType.md#accesslisteip2930) +- [BlobEIP4844](TransactionType.md#blobeip4844) +- [FeeMarketEIP1559](TransactionType.md#feemarketeip1559) +- [Legacy](TransactionType.md#legacy) + +## Enumeration Members + +### AccessListEIP2930 + +• **AccessListEIP2930** = ``1`` + +#### Defined in + +[tx/src/types.ts:101](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L101) + +___ + +### BlobEIP4844 + +• **BlobEIP4844** = ``3`` + +#### Defined in + +[tx/src/types.ts:103](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L103) + +___ + +### FeeMarketEIP1559 + +• **FeeMarketEIP1559** = ``2`` + +#### Defined in + +[tx/src/types.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L102) + +___ + +### Legacy + +• **Legacy** = ``0`` + +#### Defined in + +[tx/src/types.ts:100](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L100) diff --git a/packages/tx/docs/interfaces/AccessListEIP2930TxData.md b/packages/tx/docs/interfaces/AccessListEIP2930TxData.md index 4766b583ef..871977f14c 100644 --- a/packages/tx/docs/interfaces/AccessListEIP2930TxData.md +++ b/packages/tx/docs/interfaces/AccessListEIP2930TxData.md @@ -6,7 +6,7 @@ ## Hierarchy -- [`TxData`](../README.md#txdata) +- [`LegacyTxData`](../README.md#legacytxdata) ↳ **`AccessListEIP2930TxData`** @@ -33,13 +33,13 @@ ### accessList -• `Optional` **accessList**: ``null`` \| [`AccessListBuffer`](../README.md#accesslistbuffer) \| [`AccessList`](../README.md#accesslist) +• `Optional` **accessList**: ``null`` \| [`AccessListBytes`](../README.md#accesslistbytes) \| [`AccessList`](../README.md#accesslist) The access list which contains the addresses/storage slots which the transaction wishes to access #### Defined in -[types.ts:214](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L214) +[tx/src/types.ts:252](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L252) ___ @@ -51,23 +51,23 @@ The transaction's chain ID #### Defined in -[types.ts:209](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L209) +[tx/src/types.ts:247](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L247) ___ ### data -• `Optional` **data**: `BufferLike` +• `Optional` **data**: `BytesLike` This will contain the data of the message or the init of a contract. #### Inherited from -TxData.data +LegacyTxData.data #### Defined in -[types.ts:178](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L178) +[tx/src/types.ts:216](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L216) ___ @@ -79,11 +79,11 @@ The transaction's gas limit. #### Inherited from -TxData.gasLimit +LegacyTxData.gasLimit #### Defined in -[types.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L163) +[tx/src/types.ts:201](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L201) ___ @@ -95,11 +95,11 @@ The transaction's gas price. #### Inherited from -TxData.gasPrice +LegacyTxData.gasPrice #### Defined in -[types.ts:158](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L158) +[tx/src/types.ts:196](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L196) ___ @@ -111,11 +111,11 @@ The transaction's nonce. #### Inherited from -TxData.nonce +LegacyTxData.nonce #### Defined in -[types.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L153) +[tx/src/types.ts:191](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L191) ___ @@ -127,11 +127,11 @@ EC signature parameter. #### Inherited from -TxData.r +LegacyTxData.r #### Defined in -[types.ts:188](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L188) +[tx/src/types.ts:226](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L226) ___ @@ -143,11 +143,11 @@ EC signature parameter. #### Inherited from -TxData.s +LegacyTxData.s #### Defined in -[types.ts:193](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L193) +[tx/src/types.ts:231](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L231) ___ @@ -159,11 +159,11 @@ The transaction's the address is sent to. #### Inherited from -TxData.to +LegacyTxData.to #### Defined in -[types.ts:168](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L168) +[tx/src/types.ts:206](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L206) ___ @@ -175,11 +175,11 @@ The transaction type #### Inherited from -TxData.type +LegacyTxData.type #### Defined in -[types.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L199) +[tx/src/types.ts:237](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L237) ___ @@ -191,11 +191,11 @@ EC recovery ID. #### Inherited from -TxData.v +LegacyTxData.v #### Defined in -[types.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L183) +[tx/src/types.ts:221](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L221) ___ @@ -207,8 +207,8 @@ The amount of Ether sent. #### Inherited from -TxData.value +LegacyTxData.value #### Defined in -[types.ts:173](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L173) +[tx/src/types.ts:211](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L211) diff --git a/packages/tx/docs/interfaces/BlobEIP4844TxData.md b/packages/tx/docs/interfaces/BlobEIP4844TxData.md index 3c93e7007f..234c5817ee 100644 --- a/packages/tx/docs/interfaces/BlobEIP4844TxData.md +++ b/packages/tx/docs/interfaces/BlobEIP4844TxData.md @@ -16,12 +16,13 @@ - [accessList](BlobEIP4844TxData.md#accesslist) - [blobs](BlobEIP4844TxData.md#blobs) +- [blobsData](BlobEIP4844TxData.md#blobsdata) - [chainId](BlobEIP4844TxData.md#chainid) - [data](BlobEIP4844TxData.md#data) - [gasLimit](BlobEIP4844TxData.md#gaslimit) - [gasPrice](BlobEIP4844TxData.md#gasprice) - [kzgCommitments](BlobEIP4844TxData.md#kzgcommitments) -- [kzgProof](BlobEIP4844TxData.md#kzgproof) +- [kzgProofs](BlobEIP4844TxData.md#kzgproofs) - [maxFeePerDataGas](BlobEIP4844TxData.md#maxfeeperdatagas) - [maxFeePerGas](BlobEIP4844TxData.md#maxfeepergas) - [maxPriorityFeePerGas](BlobEIP4844TxData.md#maxpriorityfeepergas) @@ -38,7 +39,7 @@ ### accessList -• `Optional` **accessList**: ``null`` \| [`AccessListBuffer`](../README.md#accesslistbuffer) \| [`AccessList`](../README.md#accesslist) +• `Optional` **accessList**: ``null`` \| [`AccessListBytes`](../README.md#accesslistbytes) \| [`AccessList`](../README.md#accesslist) The access list which contains the addresses/storage slots which the transaction wishes to access @@ -48,19 +49,31 @@ The access list which contains the addresses/storage slots which the transaction #### Defined in -[types.ts:214](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L214) +[tx/src/types.ts:252](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L252) ___ ### blobs -• `Optional` **blobs**: `BufferLike`[] +• `Optional` **blobs**: `BytesLike`[] The blobs associated with a transaction #### Defined in -[types.ts:251](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L251) +[tx/src/types.ts:289](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L289) + +___ + +### blobsData + +• `Optional` **blobsData**: `string`[] + +An array of arbitrary strings that blobs are to be constructed from + +#### Defined in + +[tx/src/types.ts:301](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L301) ___ @@ -76,13 +89,13 @@ The transaction's chain ID #### Defined in -[types.ts:209](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L209) +[tx/src/types.ts:247](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L247) ___ ### data -• `Optional` **data**: `BufferLike` +• `Optional` **data**: `BytesLike` This will contain the data of the message or the init of a contract. @@ -92,7 +105,7 @@ This will contain the data of the message or the init of a contract. #### Defined in -[types.ts:178](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L178) +[tx/src/types.ts:216](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L216) ___ @@ -108,7 +121,7 @@ The transaction's gas limit. #### Defined in -[types.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L163) +[tx/src/types.ts:201](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L201) ___ @@ -116,7 +129,7 @@ ___ • `Optional` **gasPrice**: ``null`` -The transaction's gas price, inherited from [Transaction](../classes/Transaction.md). This property is not used for EIP1559 +The transaction's gas price, inherited from [Transaction](Transaction.md). This property is not used for EIP1559 transactions and should always be undefined for this specific transaction type. #### Inherited from @@ -125,31 +138,31 @@ transactions and should always be undefined for this specific transaction type. #### Defined in -[types.ts:225](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L225) +[tx/src/types.ts:263](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L263) ___ ### kzgCommitments -• `Optional` **kzgCommitments**: `BufferLike`[] +• `Optional` **kzgCommitments**: `BytesLike`[] The KZG commitments corresponding to the versioned hashes for each blob #### Defined in -[types.ts:255](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L255) +[tx/src/types.ts:293](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L293) ___ -### kzgProof +### kzgProofs -• `Optional` **kzgProof**: `BufferLike` +• `Optional` **kzgProofs**: `BytesLike`[] -The aggregate KZG proof associated with the transaction +The KZG proofs associated with the transaction #### Defined in -[types.ts:259](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L259) +[tx/src/types.ts:297](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L297) ___ @@ -161,7 +174,7 @@ The maximum fee per data gas paid for the transaction #### Defined in -[types.ts:247](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L247) +[tx/src/types.ts:285](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L285) ___ @@ -177,7 +190,7 @@ The maximum total fee #### Defined in -[types.ts:233](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L233) +[tx/src/types.ts:271](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L271) ___ @@ -193,7 +206,7 @@ The maximum inclusion fee per gas (this fee is given to the miner) #### Defined in -[types.ts:229](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L229) +[tx/src/types.ts:267](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L267) ___ @@ -209,7 +222,7 @@ The transaction's nonce. #### Defined in -[types.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L153) +[tx/src/types.ts:191](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L191) ___ @@ -225,7 +238,7 @@ EC signature parameter. #### Defined in -[types.ts:188](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L188) +[tx/src/types.ts:226](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L226) ___ @@ -241,7 +254,7 @@ EC signature parameter. #### Defined in -[types.ts:193](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L193) +[tx/src/types.ts:231](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L231) ___ @@ -257,7 +270,7 @@ The transaction's the address is sent to. #### Defined in -[types.ts:168](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L168) +[tx/src/types.ts:206](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L206) ___ @@ -273,7 +286,7 @@ The transaction type #### Defined in -[types.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L199) +[tx/src/types.ts:237](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L237) ___ @@ -289,7 +302,7 @@ EC recovery ID. #### Defined in -[types.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L183) +[tx/src/types.ts:221](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L221) ___ @@ -305,16 +318,16 @@ The amount of Ether sent. #### Defined in -[types.ts:173](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L173) +[tx/src/types.ts:211](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L211) ___ ### versionedHashes -• `Optional` **versionedHashes**: `BufferLike`[] +• `Optional` **versionedHashes**: `BytesLike`[] The versioned hashes used to validate the blobs attached to a transaction #### Defined in -[types.ts:243](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L243) +[tx/src/types.ts:281](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L281) diff --git a/packages/tx/docs/interfaces/FeeMarketEIP1559TxData.md b/packages/tx/docs/interfaces/FeeMarketEIP1559TxData.md index f6635fae2e..23cf4fba05 100644 --- a/packages/tx/docs/interfaces/FeeMarketEIP1559TxData.md +++ b/packages/tx/docs/interfaces/FeeMarketEIP1559TxData.md @@ -35,7 +35,7 @@ ### accessList -• `Optional` **accessList**: ``null`` \| [`AccessListBuffer`](../README.md#accesslistbuffer) \| [`AccessList`](../README.md#accesslist) +• `Optional` **accessList**: ``null`` \| [`AccessListBytes`](../README.md#accesslistbytes) \| [`AccessList`](../README.md#accesslist) The access list which contains the addresses/storage slots which the transaction wishes to access @@ -45,7 +45,7 @@ The access list which contains the addresses/storage slots which the transaction #### Defined in -[types.ts:214](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L214) +[tx/src/types.ts:252](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L252) ___ @@ -61,13 +61,13 @@ The transaction's chain ID #### Defined in -[types.ts:209](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L209) +[tx/src/types.ts:247](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L247) ___ ### data -• `Optional` **data**: `BufferLike` +• `Optional` **data**: `BytesLike` This will contain the data of the message or the init of a contract. @@ -77,7 +77,7 @@ This will contain the data of the message or the init of a contract. #### Defined in -[types.ts:178](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L178) +[tx/src/types.ts:216](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L216) ___ @@ -93,7 +93,7 @@ The transaction's gas limit. #### Defined in -[types.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L163) +[tx/src/types.ts:201](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L201) ___ @@ -101,7 +101,7 @@ ___ • `Optional` **gasPrice**: ``null`` -The transaction's gas price, inherited from [Transaction](../classes/Transaction.md). This property is not used for EIP1559 +The transaction's gas price, inherited from [Transaction](Transaction.md). This property is not used for EIP1559 transactions and should always be undefined for this specific transaction type. #### Overrides @@ -110,7 +110,7 @@ transactions and should always be undefined for this specific transaction type. #### Defined in -[types.ts:225](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L225) +[tx/src/types.ts:263](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L263) ___ @@ -122,7 +122,7 @@ The maximum total fee #### Defined in -[types.ts:233](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L233) +[tx/src/types.ts:271](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L271) ___ @@ -134,7 +134,7 @@ The maximum inclusion fee per gas (this fee is given to the miner) #### Defined in -[types.ts:229](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L229) +[tx/src/types.ts:267](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L267) ___ @@ -150,7 +150,7 @@ The transaction's nonce. #### Defined in -[types.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L153) +[tx/src/types.ts:191](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L191) ___ @@ -166,7 +166,7 @@ EC signature parameter. #### Defined in -[types.ts:188](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L188) +[tx/src/types.ts:226](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L226) ___ @@ -182,7 +182,7 @@ EC signature parameter. #### Defined in -[types.ts:193](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L193) +[tx/src/types.ts:231](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L231) ___ @@ -198,7 +198,7 @@ The transaction's the address is sent to. #### Defined in -[types.ts:168](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L168) +[tx/src/types.ts:206](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L206) ___ @@ -214,7 +214,7 @@ The transaction type #### Defined in -[types.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L199) +[tx/src/types.ts:237](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L237) ___ @@ -230,7 +230,7 @@ EC recovery ID. #### Defined in -[types.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L183) +[tx/src/types.ts:221](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L221) ___ @@ -246,4 +246,4 @@ The amount of Ether sent. #### Defined in -[types.ts:173](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L173) +[tx/src/types.ts:211](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L211) diff --git a/packages/tx/docs/interfaces/JsonRpcTx.md b/packages/tx/docs/interfaces/JsonRpcTx.md index fa8ac8a35f..8338ddba78 100644 --- a/packages/tx/docs/interfaces/JsonRpcTx.md +++ b/packages/tx/docs/interfaces/JsonRpcTx.md @@ -36,7 +36,7 @@ #### Defined in -[types.ts:343](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L343) +[tx/src/types.ts:419](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L419) ___ @@ -46,7 +46,7 @@ ___ #### Defined in -[types.ts:335](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L335) +[tx/src/types.ts:411](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L411) ___ @@ -56,7 +56,7 @@ ___ #### Defined in -[types.ts:336](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L336) +[tx/src/types.ts:412](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L412) ___ @@ -66,7 +66,7 @@ ___ #### Defined in -[types.ts:344](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L344) +[tx/src/types.ts:420](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L420) ___ @@ -76,7 +76,7 @@ ___ #### Defined in -[types.ts:337](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L337) +[tx/src/types.ts:413](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L413) ___ @@ -86,7 +86,7 @@ ___ #### Defined in -[types.ts:338](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L338) +[tx/src/types.ts:414](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L414) ___ @@ -96,7 +96,7 @@ ___ #### Defined in -[types.ts:339](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L339) +[tx/src/types.ts:415](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L415) ___ @@ -106,7 +106,7 @@ ___ #### Defined in -[types.ts:345](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L345) +[tx/src/types.ts:421](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L421) ___ @@ -116,7 +116,7 @@ ___ #### Defined in -[types.ts:346](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L346) +[tx/src/types.ts:422](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L422) ___ @@ -126,7 +126,7 @@ ___ #### Defined in -[types.ts:354](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L354) +[tx/src/types.ts:430](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L430) ___ @@ -136,7 +136,7 @@ ___ #### Defined in -[types.ts:340](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L340) +[tx/src/types.ts:416](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L416) ___ @@ -146,7 +146,7 @@ ___ #### Defined in -[types.ts:341](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L341) +[tx/src/types.ts:417](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L417) ___ @@ -156,7 +156,7 @@ ___ #### Defined in -[types.ts:347](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L347) +[tx/src/types.ts:423](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L423) ___ @@ -166,7 +166,7 @@ ___ #### Defined in -[types.ts:352](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L352) +[tx/src/types.ts:428](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L428) ___ @@ -176,7 +176,7 @@ ___ #### Defined in -[types.ts:353](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L353) +[tx/src/types.ts:429](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L429) ___ @@ -186,7 +186,7 @@ ___ #### Defined in -[types.ts:348](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L348) +[tx/src/types.ts:424](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L424) ___ @@ -196,7 +196,7 @@ ___ #### Defined in -[types.ts:349](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L349) +[tx/src/types.ts:425](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L425) ___ @@ -206,7 +206,7 @@ ___ #### Defined in -[types.ts:342](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L342) +[tx/src/types.ts:418](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L418) ___ @@ -216,7 +216,7 @@ ___ #### Defined in -[types.ts:351](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L351) +[tx/src/types.ts:427](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L427) ___ @@ -226,7 +226,7 @@ ___ #### Defined in -[types.ts:350](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L350) +[tx/src/types.ts:426](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L426) ___ @@ -236,4 +236,4 @@ ___ #### Defined in -[types.ts:355](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L355) +[tx/src/types.ts:431](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L431) diff --git a/packages/tx/docs/interfaces/JsonTx.md b/packages/tx/docs/interfaces/JsonTx.md index b4234b09c5..90689feb6e 100644 --- a/packages/tx/docs/interfaces/JsonTx.md +++ b/packages/tx/docs/interfaces/JsonTx.md @@ -38,7 +38,7 @@ and not all the values are present on all tx types #### Defined in -[types.ts:323](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L323) +[tx/src/types.ts:399](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L399) ___ @@ -48,7 +48,7 @@ ___ #### Defined in -[types.ts:322](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L322) +[tx/src/types.ts:398](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L398) ___ @@ -58,7 +58,7 @@ ___ #### Defined in -[types.ts:317](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L317) +[tx/src/types.ts:393](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L393) ___ @@ -68,7 +68,7 @@ ___ #### Defined in -[types.ts:315](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L315) +[tx/src/types.ts:391](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L391) ___ @@ -78,7 +78,7 @@ ___ #### Defined in -[types.ts:314](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L314) +[tx/src/types.ts:390](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L390) ___ @@ -88,7 +88,7 @@ ___ #### Defined in -[types.ts:327](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L327) +[tx/src/types.ts:403](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L403) ___ @@ -98,7 +98,7 @@ ___ #### Defined in -[types.ts:326](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L326) +[tx/src/types.ts:402](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L402) ___ @@ -108,7 +108,7 @@ ___ #### Defined in -[types.ts:325](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L325) +[tx/src/types.ts:401](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L401) ___ @@ -118,7 +118,7 @@ ___ #### Defined in -[types.ts:313](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L313) +[tx/src/types.ts:389](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L389) ___ @@ -128,7 +128,7 @@ ___ #### Defined in -[types.ts:319](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L319) +[tx/src/types.ts:395](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L395) ___ @@ -138,7 +138,7 @@ ___ #### Defined in -[types.ts:320](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L320) +[tx/src/types.ts:396](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L396) ___ @@ -148,7 +148,7 @@ ___ #### Defined in -[types.ts:316](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L316) +[tx/src/types.ts:392](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L392) ___ @@ -158,7 +158,7 @@ ___ #### Defined in -[types.ts:324](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L324) +[tx/src/types.ts:400](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L400) ___ @@ -168,7 +168,7 @@ ___ #### Defined in -[types.ts:318](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L318) +[tx/src/types.ts:394](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L394) ___ @@ -178,7 +178,7 @@ ___ #### Defined in -[types.ts:321](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L321) +[tx/src/types.ts:397](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L397) ___ @@ -188,4 +188,4 @@ ___ #### Defined in -[types.ts:328](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L328) +[tx/src/types.ts:404](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L404) diff --git a/packages/tx/docs/interfaces/Transaction.md b/packages/tx/docs/interfaces/Transaction.md new file mode 100644 index 0000000000..4de1d9a8b0 --- /dev/null +++ b/packages/tx/docs/interfaces/Transaction.md @@ -0,0 +1,52 @@ +[@ethereumjs/tx](../README.md) / Transaction + +# Interface: Transaction + +## Table of contents + +### Properties + +- [0](Transaction.md#0) +- [1](Transaction.md#1) +- [2](Transaction.md#2) +- [3](Transaction.md#3) + +## Properties + +### 0 + +• **0**: [`LegacyTransaction`](../classes/LegacyTransaction.md) + +#### Defined in + +[tx/src/types.ts:107](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L107) + +___ + +### 1 + +• **1**: [`AccessListEIP2930Transaction`](../classes/AccessListEIP2930Transaction.md) + +#### Defined in + +[tx/src/types.ts:109](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L109) + +___ + +### 2 + +• **2**: [`FeeMarketEIP1559Transaction`](../classes/FeeMarketEIP1559Transaction.md) + +#### Defined in + +[tx/src/types.ts:108](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L108) + +___ + +### 3 + +• **3**: [`BlobEIP4844Transaction`](../classes/BlobEIP4844Transaction.md) + +#### Defined in + +[tx/src/types.ts:110](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L110) diff --git a/packages/tx/docs/interfaces/TransactionInterface.md b/packages/tx/docs/interfaces/TransactionInterface.md new file mode 100644 index 0000000000..1991069e1b --- /dev/null +++ b/packages/tx/docs/interfaces/TransactionInterface.md @@ -0,0 +1,340 @@ +[@ethereumjs/tx](../README.md) / TransactionInterface + +# Interface: TransactionInterface + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | extends [`TransactionType`](../enums/TransactionType.md) | + +## Table of contents + +### Properties + +- [type](TransactionInterface.md#type) + +### Methods + +- [errorStr](TransactionInterface.md#errorstr) +- [getBaseFee](TransactionInterface.md#getbasefee) +- [getDataFee](TransactionInterface.md#getdatafee) +- [getHashedMessageToSign](TransactionInterface.md#gethashedmessagetosign) +- [getMessageToSign](TransactionInterface.md#getmessagetosign) +- [getMessageToVerifySignature](TransactionInterface.md#getmessagetoverifysignature) +- [getSenderAddress](TransactionInterface.md#getsenderaddress) +- [getSenderPublicKey](TransactionInterface.md#getsenderpublickey) +- [getUpfrontCost](TransactionInterface.md#getupfrontcost) +- [getValidationErrors](TransactionInterface.md#getvalidationerrors) +- [hash](TransactionInterface.md#hash) +- [isSigned](TransactionInterface.md#issigned) +- [isValid](TransactionInterface.md#isvalid) +- [raw](TransactionInterface.md#raw) +- [serialize](TransactionInterface.md#serialize) +- [sign](TransactionInterface.md#sign) +- [supports](TransactionInterface.md#supports) +- [toCreationAddress](TransactionInterface.md#tocreationaddress) +- [toJSON](TransactionInterface.md#tojson) +- [verifySignature](TransactionInterface.md#verifysignature) + +## Properties + +### type + +• **type**: `number` + +#### Defined in + +[tx/src/types.ts:133](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L133) + +## Methods + +### errorStr + +▸ **errorStr**(): `string` + +#### Returns + +`string` + +#### Defined in + +[tx/src/types.ts:152](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L152) + +___ + +### getBaseFee + +▸ **getBaseFee**(): `bigint` + +#### Returns + +`bigint` + +#### Defined in + +[tx/src/types.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L134) + +___ + +### getDataFee + +▸ **getDataFee**(): `bigint` + +#### Returns + +`bigint` + +#### Defined in + +[tx/src/types.ts:135](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L135) + +___ + +### getHashedMessageToSign + +▸ **getHashedMessageToSign**(): `Uint8Array` + +#### Returns + +`Uint8Array` + +#### Defined in + +[tx/src/types.ts:141](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L141) + +___ + +### getMessageToSign + +▸ **getMessageToSign**(): `Uint8Array` \| `Uint8Array`[] + +#### Returns + +`Uint8Array` \| `Uint8Array`[] + +#### Defined in + +[tx/src/types.ts:140](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L140) + +___ + +### getMessageToVerifySignature + +▸ **getMessageToVerifySignature**(): `Uint8Array` + +#### Returns + +`Uint8Array` + +#### Defined in + +[tx/src/types.ts:143](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L143) + +___ + +### getSenderAddress + +▸ **getSenderAddress**(): `Address` + +#### Returns + +`Address` + +#### Defined in + +[tx/src/types.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L148) + +___ + +### getSenderPublicKey + +▸ **getSenderPublicKey**(): `Uint8Array` + +#### Returns + +`Uint8Array` + +#### Defined in + +[tx/src/types.ts:149](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L149) + +___ + +### getUpfrontCost + +▸ **getUpfrontCost**(): `bigint` + +#### Returns + +`bigint` + +#### Defined in + +[tx/src/types.ts:136](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L136) + +___ + +### getValidationErrors + +▸ **getValidationErrors**(): `string`[] + +#### Returns + +`string`[] + +#### Defined in + +[tx/src/types.ts:144](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L144) + +___ + +### hash + +▸ **hash**(): `Uint8Array` + +#### Returns + +`Uint8Array` + +#### Defined in + +[tx/src/types.ts:142](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L142) + +___ + +### isSigned + +▸ **isSigned**(): `boolean` + +#### Returns + +`boolean` + +#### Defined in + +[tx/src/types.ts:145](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L145) + +___ + +### isValid + +▸ **isValid**(): `boolean` + +#### Returns + +`boolean` + +#### Defined in + +[tx/src/types.ts:146](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L146) + +___ + +### raw + +▸ **raw**(): [`TxValuesArray`](TxValuesArray.md)[`T`] + +#### Returns + +[`TxValuesArray`](TxValuesArray.md)[`T`] + +#### Defined in + +[tx/src/types.ts:138](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L138) + +___ + +### serialize + +▸ **serialize**(): `Uint8Array` + +#### Returns + +`Uint8Array` + +#### Defined in + +[tx/src/types.ts:139](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L139) + +___ + +### sign + +▸ **sign**(`privateKey`): [`Transaction`](Transaction.md)[`T`] + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `privateKey` | `Uint8Array` | + +#### Returns + +[`Transaction`](Transaction.md)[`T`] + +#### Defined in + +[tx/src/types.ts:150](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L150) + +___ + +### supports + +▸ **supports**(`capability`): `boolean` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `capability` | [`Capability`](../enums/Capability.md) | + +#### Returns + +`boolean` + +#### Defined in + +[tx/src/types.ts:132](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L132) + +___ + +### toCreationAddress + +▸ **toCreationAddress**(): `boolean` + +#### Returns + +`boolean` + +#### Defined in + +[tx/src/types.ts:137](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L137) + +___ + +### toJSON + +▸ **toJSON**(): [`JsonTx`](JsonTx.md) + +#### Returns + +[`JsonTx`](JsonTx.md) + +#### Defined in + +[tx/src/types.ts:151](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L151) + +___ + +### verifySignature + +▸ **verifySignature**(): `boolean` + +#### Returns + +`boolean` + +#### Defined in + +[tx/src/types.ts:147](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L147) diff --git a/packages/tx/docs/interfaces/TxData.md b/packages/tx/docs/interfaces/TxData.md new file mode 100644 index 0000000000..62335de250 --- /dev/null +++ b/packages/tx/docs/interfaces/TxData.md @@ -0,0 +1,52 @@ +[@ethereumjs/tx](../README.md) / TxData + +# Interface: TxData + +## Table of contents + +### Properties + +- [0](TxData.md#0) +- [1](TxData.md#1) +- [2](TxData.md#2) +- [3](TxData.md#3) + +## Properties + +### 0 + +• **0**: [`LegacyTxData`](../README.md#legacytxdata) + +#### Defined in + +[tx/src/types.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L156) + +___ + +### 1 + +• **1**: [`AccessListEIP2930TxData`](AccessListEIP2930TxData.md) + +#### Defined in + +[tx/src/types.ts:157](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L157) + +___ + +### 2 + +• **2**: [`FeeMarketEIP1559TxData`](FeeMarketEIP1559TxData.md) + +#### Defined in + +[tx/src/types.ts:158](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L158) + +___ + +### 3 + +• **3**: [`BlobEIP4844TxData`](BlobEIP4844TxData.md) + +#### Defined in + +[tx/src/types.ts:159](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L159) diff --git a/packages/tx/docs/interfaces/TxOptions.md b/packages/tx/docs/interfaces/TxOptions.md index 4ebc220223..867ea5beaa 100644 --- a/packages/tx/docs/interfaces/TxOptions.md +++ b/packages/tx/docs/interfaces/TxOptions.md @@ -2,7 +2,7 @@ # Interface: TxOptions -The options for initializing a [Transaction](../classes/Transaction.md). +The options for initializing a [Transaction](Transaction.md). ## Table of contents @@ -23,7 +23,7 @@ Gas cost for initcode size analysis will still be charged. Use with caution. #### Defined in -[types.ts:98](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L98) +[tx/src/types.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L78) ___ @@ -42,7 +42,7 @@ Current default hardfork: `istanbul` #### Defined in -[types.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L80) +[tx/src/types.ts:60](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L60) ___ @@ -62,4 +62,4 @@ Default: true #### Defined in -[types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L92) +[tx/src/types.ts:72](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L72) diff --git a/packages/tx/docs/interfaces/TxValuesArray.md b/packages/tx/docs/interfaces/TxValuesArray.md new file mode 100644 index 0000000000..f7cefd4179 --- /dev/null +++ b/packages/tx/docs/interfaces/TxValuesArray.md @@ -0,0 +1,52 @@ +[@ethereumjs/tx](../README.md) / TxValuesArray + +# Interface: TxValuesArray + +## Table of contents + +### Properties + +- [0](TxValuesArray.md#0) +- [1](TxValuesArray.md#1) +- [2](TxValuesArray.md#2) +- [3](TxValuesArray.md#3) + +## Properties + +### 0 + +• **0**: `LegacyTxValuesArray` + +#### Defined in + +[tx/src/types.ts:305](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L305) + +___ + +### 1 + +• **1**: `AccessListEIP2930TxValuesArray` + +#### Defined in + +[tx/src/types.ts:306](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L306) + +___ + +### 2 + +• **2**: `FeeMarketEIP1559TxValuesArray` + +#### Defined in + +[tx/src/types.ts:307](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L307) + +___ + +### 3 + +• **3**: `BlobEIP4844TxValuesArray` + +#### Defined in + +[tx/src/types.ts:308](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/types.ts#L308) From f8ba908b5356e8eecc0adcc19b23432baa8bdf22 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 11:58:55 +0200 Subject: [PATCH 16/38] Version bump, update upstream dependency versions, update README (Tx) --- packages/block/package.json | 2 +- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/devp2p/package.json | 2 +- packages/evm/package.json | 2 +- packages/tx/README.md | 66 ++++++++++--------- packages/tx/package.json | 4 +- packages/vm/package.json | 2 +- 9 files changed, 43 insertions(+), 41 deletions(-) diff --git a/packages/block/package.json b/packages/block/package.json index ce1284f4ac..750c8d5e88 100644 --- a/packages/block/package.json +++ b/packages/block/package.json @@ -48,7 +48,7 @@ "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", - "@ethereumjs/tx": "^4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "ethereum-cryptography": "^2.1.2" }, diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index 191b265820..c2f00f3f4e 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -50,7 +50,7 @@ "@ethereumjs/ethash": "^2.0.5", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", - "@ethereumjs/tx": "^4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 8764e07160..43495d9e37 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -66,7 +66,7 @@ "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "6.0.0-rc.1", - "@ethereumjs/tx": "4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "@ethereumjs/vm": "6.4.2", "abstract-level": "^1.0.3", diff --git a/packages/client/package.json b/packages/client/package.json index 5ad502e386..25c5862395 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -67,7 +67,7 @@ "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "6.0.0-rc.1", - "@ethereumjs/tx": "4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "@ethereumjs/vm": "6.4.2", "abstract-level": "^1.0.3", diff --git a/packages/devp2p/package.json b/packages/devp2p/package.json index 26fe95ce55..c4be768ace 100644 --- a/packages/devp2p/package.json +++ b/packages/devp2p/package.json @@ -69,7 +69,7 @@ }, "devDependencies": { "@ethereumjs/block": "^4.2.2", - "@ethereumjs/tx": "^4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@types/chalk": "^2.2.0", "@types/debug": "^4.1.4", "@types/k-bucket": "^5.0.0", diff --git a/packages/evm/package.json b/packages/evm/package.json index 150e77dc9e..3156f645a1 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -52,7 +52,7 @@ }, "dependencies": { "@ethereumjs/common": "4.0.0-rc.1", - "@ethereumjs/tx": "^4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", diff --git a/packages/tx/README.md b/packages/tx/README.md index a12aee5984..4eb2ab3045 100644 --- a/packages/tx/README.md +++ b/packages/tx/README.md @@ -41,6 +41,8 @@ The following two manual installation steps for a KZG library and the trusted se Global initialization can then be done like this (using the `c-kzg` module for our KZG dependency): ```typescript +import { initKZG } from '@ethereumjs/util' + // Make the kzg library available globally import * as kzg from 'c-kzg' @@ -55,8 +57,8 @@ initKZG(kzg, 'path/to/my/trusted_setup.txt') To instantiate a tx it is not recommended to use the constructor directly. Instead each tx type comes with the following set of static constructor methods which helps on instantiation depending on the input data format: - `public static fromTxData(txData: TxData, opts: TxOptions = {})`: instantiate from a data dictionary -- `public static fromSerializedTx(serialized: Buffer, opts: TxOptions = {})`: instantiate from a serialized tx -- `public static fromValuesArray(values: Buffer[], opts: TxOptions = {})`: instantiate from a values array +- `public static fromSerializedTx(serialized: Uint8Array, opts: TxOptions = {})`: instantiate from a serialized tx +- `public static fromValuesArray(values: Uint8Array[], opts: TxOptions = {})`: instantiate from a values array See one of the code examples on the tx types below on how to use. @@ -66,9 +68,7 @@ All types of transaction objects are frozen with `Object.freeze()` which gives y The `LegacyTransaction` constructor receives a parameter of an [`@ethereumjs/common`](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common) object that lets you specify the chain and hardfork to be used. If there is no `Common` provided the chain ID provided as a parameter on typed tx or the chain ID derived from the `v` value on signed EIP-155 conforming legacy txs will be taken (introduced in `v3.2.1`). In other cases the chain defaults to `mainnet`. -Base default HF (determined by `Common`): `merge` - -Starting with `v3.2.1` the tx library now deviates from the default HF for typed tx using the following rule: "The default HF is the default HF from `Common` if the tx type is active on that HF. Otherwise it is set to the first greater HF where the tx is active." +Base default HF (determined by `Common`): `Hardfork.Shanghai` Hardforks adding features and/or tx types: @@ -79,16 +79,7 @@ Hardforks adding features and/or tx types: | `muirGlacier` |  `v2.1.2` |  - | | `berlin` | `v3.1.0` |  `EIP-2718` Typed Transactions, Optional Access Lists Tx Type `EIP-2930` | | `london` | `v3.2.0` | `EIP-1559` Transactions | - -### Standalone EIPs - -The following "standalone" EIPs are supported by the library can be manually activated using a respectively initialized `Common` instance, e.g.: - -```typescript -const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.London, eips: [3860] }) -``` - -- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3855): Limit and meter initcode (`experimental`) +| `cancun` | `v5.0.0` | `EIP-4844` Transactions | ### Transaction Types @@ -97,15 +88,18 @@ This library supports the following transaction types ([EIP-2718](https://eips.e - `BlobEIP4844Transaction` ([EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), proto-danksharding) - `FeeMarketEIP1559Transaction` ([EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), gas fee market) - `AccessListEIP2930Transaction` ([EIP-2930](https://eips.ethereum.org/EIPS/eip-2930), optional access lists) -- `Transaction`, the Ethereum standard tx up to `berlin`, now referred to as legacy txs with the introduction of tx types +- `BlobEIP4844Transaction` ([EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), blob transactions) +- `LegacyTransaction`, the Ethereum standard tx up to `berlin`, now referred to as legacy txs with the introduction of tx types #### Blob Transactions (EIP-4844) - Class: `BlobEIP4844Transaction` -- Activation: `sharding` -- Type: `5` +- Activation: `cancun` +- Type: `3` -This library supports an experimental version of the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [01d3209](https://github.com/ethereum/EIPs/commit/01d320998d1d53d95f347b5f43feaf606f230703) EIP version from February 8, 2023 and deployed along `eip4844-devnet-4` (January 2023), see PR [#2349](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2349). +This library supports the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [b9a5a11](https://github.com/ethereum/EIPs/commit/b9a5a117ab7e1dc18f937841d00598b527c306e7) EIP version from July 2023 deployed along [4844-devnet-7](https://github.com/ethpandaops/4844-testnet) (July 2023), see PR [#2349](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2349) and following. + +**Note:** 4844 support is not yet completely stable and there will still be (4844-)breaking changes along all types of library releases. **Note:** This functionality needs a manual KZG library installation and global initialization, see [KZG Setup](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/tx/README.md#kzg-setup) for instructions. @@ -115,7 +109,8 @@ See the following code snipped for an example on how to instantiate (using the ` ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' -import { BlobEIP4844Transaction, initKZG } from '@ethereumjs/tx' +import { BlobEIP4844Transaction } from '@ethereumjs/tx' +import { initKZG } from '@ethereumjs/util' import * as kzg from 'c-kzg' initKZG(kzg, 'path/to/my/trusted_setup.txt') @@ -285,8 +280,8 @@ The correct tx type class for instantiation will then be chosen on runtime based `TransactionFactory` supports the following static constructor methods: - `public static fromTxData(txData: TxData | AccessListEIP2930TxData, txOptions: TxOptions = {}): TypedTransaction` -- `public static fromSerializedData(data: Buffer, txOptions: TxOptions = {}): TypedTransaction` -- `public static fromBlockBodyData(data: Buffer | Buffer[], txOptions: TxOptions = {})` +- `public static fromSerializedData(data: Uint8Array, txOptions: TxOptions = {}): TypedTransaction` +- `public static fromBlockBodyData(data: Uint8Array | Uint8Array[], txOptions: TxOptions = {})` - `public static async fromJsonRpcProvider(provider: string | EthersProvider, txHash: string, txOptions?: TxOptions)` ### Sending a Transaction @@ -296,8 +291,9 @@ The correct tx type class for instantiation will then be chosen on runtime based This library has been tested to work with various L2 networks (`v3.3.0`+). All predefined supported custom chains introduced with `Common` `v2.4.0` or higher are supported, the following is a simple example to send a tx to the xDai chain: ```typescript -import { LegacyTransaction } from '@ethereumjs/tx' import { Common } from '@ethereumjs/common' +import { LegacyTransaction } from '@ethereumjs/tx' +import { hexToBytes } from '@ethereumjs/util' const from = 'PUBLIC_KEY' const PRIV_KEY = process.argv[2] @@ -315,7 +311,7 @@ const txData = { } const tx = LegacyTransaction.fromTxData(txData, { common }) -const signedTx = tx.sign(Buffer.from(PRIV_KEY, 'hex')) +const signedTx = tx.sign(hexToBytes(PRIV_KEY)) ``` The following L2 networks have been tested to work with `@ethereumjs/tx`, see usage examples as well as some notes on peculiarities in the issues linked below: @@ -338,6 +334,12 @@ For a non-predefined custom chain it is also possible to just provide a chain ID const common = Common.custom({ chainId: 1234 }) ``` +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + ## Special Topics ### Signing with a hardware or external wallet @@ -349,9 +351,9 @@ A legacy transaction will return a Buffer list of the values, and a Typed Transa Here is an example of signing txs with `@ledgerhq/hw-app-eth` as of `v6.5.0`: ```typescript -import { LegacyTransaction, FeeMarketEIP1559Transaction } from '@ethereumjs/tx' import { Chain, Common } from '@ethereumjs/common' -import { bufArrToArr } from '@ethereumjs/util' +import { LegacyTransaction, FeeMarketEIP1559Transaction } from '@ethereumjs/tx' +import { bytesToHex } from '@ethereumjs/util' import { RLP } from '@ethereumjs/rlp' import Eth from '@ledgerhq/hw-app-eth' @@ -360,7 +362,7 @@ const common = new Common({ chain: Chain.Sepolia }) let txData: any = { value: 1 } let tx: Transaction | FeeMarketEIP1559Transaction -let unsignedTx: Buffer[] | Buffer +let unsignedTx: Uint8Array[] | Uint8Array let signedTx: typeof tx const bip32Path = "44'/60'/0'/0/0" @@ -368,12 +370,12 @@ const run = async () => { // Signing a legacy tx tx = LegacyTransaction.fromTxData(txData, { common }) unsignedTx = tx.getMessageToSign() - unsignedTx = Buffer.from(RLP.encode(bufArrToArr(unsignedTx))) // ledger signTransaction API expects it to be serialized + unsignedTx = RLP.encode(unsignedTx) // ledger signTransaction API expects it to be serialized let { v, r, s } = await eth.signTransaction(bip32Path, unsignedTx) txData = { ...txData, v, r, s } signedTx = LegacyTransaction.fromTxData(txData, { common }) - let from = signedTx.getSenderAddress().toString() - console.log(`signedTx: 0x${signedTx.serialize().toString('hex')}\nfrom: ${from}`) + let from = bytesToHex(signedTx.getSenderAddress()) + console.log(`signedTx: ${bytesToHex(signedTx.serialize())}\nfrom: ${from}`) // Signing a 1559 tx txData = { value: 1 } @@ -382,8 +384,8 @@ const run = async () => { ;({ v, r, s } = await eth.signTransaction(bip32Path, unsignedTx)) // this syntax is: object destructuring - assignment without declaration txData = { ...txData, v, r, s } signedTx = FeeMarketEIP1559Transaction.fromTxData(txData, { common }) - from = signedTx.getSenderAddress().toString() - console.log(`signedTx: ${signedTx.serialize().toString('hex')}\nfrom: ${from}`) + from = bytesToHex(signedTx.getSenderAddress()) + console.log(`signedTx: ${bytesToHex(signedTx.serialize())}\nfrom: ${from}`) } run() diff --git a/packages/tx/package.json b/packages/tx/package.json index b8ce2936c1..e09bc67f3e 100644 --- a/packages/tx/package.json +++ b/packages/tx/package.json @@ -1,7 +1,7 @@ { "name": "@ethereumjs/tx", - "version": "4.1.2", - "description": "A simple module for creating, manipulating and signing Ethereum transactions", + "version": "5.0.0-rc.1", + "description": "Implementation of the various Ethereum Transaction Types", "keywords": [ "ethereum", "transactions" diff --git a/packages/vm/package.json b/packages/vm/package.json index aa97595a46..5d2d5e3809 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -69,7 +69,7 @@ "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "^1.0.5", "@ethereumjs/trie": "6.0.0-rc.1", - "@ethereumjs/tx": "^4.1.2", + "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2" From ef5c1c3fedc540285b54435d074fe9d4d21727d2 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 12:41:17 +0200 Subject: [PATCH 17/38] Version bump, update upstream dependency versions, update README (Block) --- packages/block/README.md | 33 ++++++++++--------- packages/block/package.json | 2 +- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/devp2p/package.json | 2 +- packages/ethash/package.json | 2 +- packages/statemanager/package.json | 2 +- packages/vm/package.json | 2 +- 9 files changed, 25 insertions(+), 24 deletions(-) diff --git a/packages/block/README.md b/packages/block/README.md index 1e9d6571d2..a7f934a07e 100644 --- a/packages/block/README.md +++ b/packages/block/README.md @@ -30,8 +30,8 @@ npm install @ethereumjs/block There are five static factories to instantiate a `Block`: - `Block.fromBlockData(blockData: BlockData = {}, opts?: BlockOptions)` -- `Block.fromRLPSerializedBlock(serialized: Buffer, opts?: BlockOptions)` -- `Block.fromValuesArray(values: BlockBuffer, opts?: BlockOptions)` +- `Block.fromRLPSerializedBlock(serialized: Uint8Array, opts?: BlockOptions)` +- `Block.fromValuesArray(values: BlockBytes, opts?: BlockOptions)` - `Block.fromRPC(blockData: JsonRpcBlock, uncles?: any[], opts?: BlockOptions)` - `Block.fromJsonRpcProvider(provider: string | EthersProvider, blockTag: string | bigint, opts: BlockOptions)` @@ -106,31 +106,30 @@ const blockWithMatchingBaseFee = Block.fromBlockData( EIP-1559 blocks have an extra `baseFeePerGas` field (default: `BigInt(7)`) and can encompass `FeeMarketEIP1559Transaction` txs (type `2`) (supported by `@ethereumjs/tx` `v3.2.0` or higher) as well as `LegacyTransaction` legacy txs (internal type `0`) and `AccessListEIP2930Transaction` txs (type `1`). -### EIP-4895 Beacon Chain Withdrawals Blocks (experimental) +### EIP-4895 Beacon Chain Withdrawals Blocks -Starting with the `v4.1.0` release there is (experimental) support for [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) beacon chain withdrawals. Withdrawals support can be activated by initializing a respective `Common` object and then use the `withdrawals` data option to pass in system-level withdrawal operations together with a matching `withdrawalsRoot` (mandatory when `EIP-4895` is activated) along Block creation, see the following example: +Starting with the `v4.1.0` release there is support for [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) beacon chain withdrawals. Withdrawals support can be activated by initializing a `Common` object with a hardfork set to `shanghai` (default) or higher and then use the `withdrawals` data option to pass in system-level withdrawal operations together with a matching `withdrawalsRoot` (mandatory when `EIP-4895` is activated) along Block creation, see the following example: ```typescript import { Block } from '@ethereumjs/block' import { Common, Chain } from '@ethereumjs/common' -import { Address } from '@ethereumjs/util' +import { Address, hexToBytes } from '@ethereumjs/util' import type { WithdrawalData } from '@ethereumjs/util' -const common = new Common({ chain: Chain.Mainnet, eips: [4895] }) +const common = new Common({ chain: Chain.Mainnet }) const withdrawal = { index: BigInt(0), validatorIndex: BigInt(0), - address: new Address(Buffer.from('20'.repeat(20), 'hex')), + address: new Address(hexToBytes(`0x${'20'.repeat(20)}`)), amount: BigInt(1000), } const block = Block.fromBlockData( { header: { - withdrawalsRoot: Buffer.from( - '69f28913c562b0d38f8dc81e72eb0d99052444d301bf8158dc1f3f94a4526357', - 'hex' + withdrawalsRoot: hexToBytes( + '0x69f28913c562b0d38f8dc81e72eb0d99052444d301bf8158dc1f3f94a4526357' ), }, withdrawals: [withdrawal], @@ -141,11 +140,13 @@ const block = Block.fromBlockData( ) ``` -Validation of the withdrawals trie can be manually triggered with the newly introduced async `Block.validateWithdrawalsTrie()` method. +Validation of the withdrawals trie can be manually triggered with the newly introduced async `Block.withdrawalsTrieIsValid()` method. + +### EIP-4844 Shard Blob Transaction Blocks -### EIP-4844 Shard Blob Transaction Blocks (experimental) +This library supports the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [b9a5a11](https://github.com/ethereum/EIPs/commit/b9a5a117ab7e1dc18f937841d00598b527c306e7) EIP version from July 2023 deployed along [4844-devnet-7](https://github.com/ethpandaops/4844-testnet) (July 2023), see PR [#2349](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2349) and following. -This library supports an experimental version of the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [01d3209](https://github.com/ethereum/EIPs/commit/01d320998d1d53d95f347b5f43feaf606f230703) EIP version from February 8, 2023 and deployed along `eip4844-devnet-4` (January 2023) starting with `v4.2.0`. +**Note:** 4844 support is not yet completely stable and there will still be (4844-)breaking changes along all types of library releases. #### Initialization @@ -206,8 +207,8 @@ Additionally there are the following utility methods for Clique/PoA related func - `BlockHeader.cliqueSigHash()` - `BlockHeader.cliqueIsEpochTransition(): boolean` -- `BlockHeader.cliqueExtraVanity(): Buffer` -- `BlockHeader.cliqueExtraSeal(): Buffer` +- `BlockHeader.cliqueExtraVanity(): Uint8Array` +- `BlockHeader.cliqueExtraSeal(): Uint8Array` - `BlockHeader.cliqueEpochTransitionSigners(): Address[]` - `BlockHeader.cliqueVerifySignature(signerList: Address[]): boolean` - `BlockHeader.cliqueSigner(): Address` @@ -223,7 +224,7 @@ You can instantiate a Merge/PoS block like this: ```typescript import { Block } from '@ethereumjs/block' import { Chain, Common, Hardfork } from '@ethereumjs/common' -const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge }) +const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) const block = Block.fromBlockData( { // Provide your block data here or use default values diff --git a/packages/block/package.json b/packages/block/package.json index 750c8d5e88..f517347514 100644 --- a/packages/block/package.json +++ b/packages/block/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/block", - "version": "4.2.2", + "version": "5.0.0-rc.1", "description": "Provides Block serialization and help functions", "keywords": [ "ethereum", diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index c2f00f3f4e..b26d514274 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -45,7 +45,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/block": "^4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/ethash": "^2.0.5", "@ethereumjs/rlp": "5.0.0-rc.1", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 43495d9e37..607ea9f760 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -57,7 +57,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/block": "4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/blockchain": "6.2.2", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", diff --git a/packages/client/package.json b/packages/client/package.json index 25c5862395..81f3e46121 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -57,7 +57,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/block": "4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/blockchain": "6.2.2", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", diff --git a/packages/devp2p/package.json b/packages/devp2p/package.json index c4be768ace..ada3828dca 100644 --- a/packages/devp2p/package.json +++ b/packages/devp2p/package.json @@ -68,7 +68,7 @@ "snappyjs": "^0.6.1" }, "devDependencies": { - "@ethereumjs/block": "^4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", "@types/chalk": "^2.2.0", "@types/debug": "^4.1.4", diff --git a/packages/ethash/package.json b/packages/ethash/package.json index 3d5d0f0512..6625e74165 100644 --- a/packages/ethash/package.json +++ b/packages/ethash/package.json @@ -44,7 +44,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/block": "^4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "bigint-crypto-utils": "^3.2.2", diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index feb501447f..82f338e11e 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -57,7 +57,7 @@ "lru-cache": "^10.0.0" }, "devDependencies": { - "@ethereumjs/block": "^4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/genesis": "^0.0.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", diff --git a/packages/vm/package.json b/packages/vm/package.json index 5d2d5e3809..95a9d61719 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -62,7 +62,7 @@ "tsc": "../../config/cli/ts-compile.sh" }, "dependencies": { - "@ethereumjs/block": "^4.2.2", + "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/blockchain": "^6.2.2", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/evm": "^1.3.2", From 56db8edada946444566fd7e4814a8443a83f034f Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 12:41:44 +0200 Subject: [PATCH 18/38] Rebuild docs (Block) --- packages/block/docs/README.md | 103 ++++-- packages/block/docs/classes/Block.md | 322 ++++++++++-------- packages/block/docs/classes/BlockHeader.md | 229 ++++++++----- packages/block/docs/interfaces/BlockData.md | 10 +- .../block/docs/interfaces/BlockOptions.md | 46 +-- packages/block/docs/interfaces/HeaderData.md | 78 +++-- packages/block/docs/interfaces/JsonBlock.md | 8 +- packages/block/docs/interfaces/JsonHeader.md | 58 +++- .../block/docs/interfaces/JsonRpcBlock.md | 59 ++-- 9 files changed, 537 insertions(+), 376 deletions(-) diff --git a/packages/block/docs/README.md b/packages/block/docs/README.md index 9e7d90f474..a134cca7da 100644 --- a/packages/block/docs/README.md +++ b/packages/block/docs/README.md @@ -20,71 +20,124 @@ ### Type Aliases -- [BlockBodyBuffer](README.md#blockbodybuffer) -- [BlockBuffer](README.md#blockbuffer) -- [BlockHeaderBuffer](README.md#blockheaderbuffer) -- [TransactionsBuffer](README.md#transactionsbuffer) -- [UncleHeadersBuffer](README.md#uncleheadersbuffer) -- [WithdrawalsBuffer](README.md#withdrawalsbuffer) +- [BlockBodyBytes](README.md#blockbodybytes) +- [BlockBytes](README.md#blockbytes) +- [BlockHeaderBytes](README.md#blockheaderbytes) +- [ExecutionPayload](README.md#executionpayload) +- [TransactionsBytes](README.md#transactionsbytes) +- [UncleHeadersBytes](README.md#uncleheadersbytes) +- [WithdrawalV1](README.md#withdrawalv1) +- [WithdrawalsBytes](README.md#withdrawalsbytes) ## Type Aliases -### BlockBodyBuffer +### BlockBodyBytes -Ƭ **BlockBodyBuffer**: [[`TransactionsBuffer`](README.md#transactionsbuffer), [`UncleHeadersBuffer`](README.md#uncleheadersbuffer), WithdrawalsBuffer?] +Ƭ **BlockBodyBytes**: [[`TransactionsBytes`](README.md#transactionsbytes), [`UncleHeadersBytes`](README.md#uncleheadersbytes), WithdrawalsBytes?] #### Defined in -[types.ts:129](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L129) +[types.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L119) ___ -### BlockBuffer +### BlockBytes -Ƭ **BlockBuffer**: [[`BlockHeaderBuffer`](README.md#blockheaderbuffer), [`TransactionsBuffer`](README.md#transactionsbuffer), [`UncleHeadersBuffer`](README.md#uncleheadersbuffer)] \| [[`BlockHeaderBuffer`](README.md#blockheaderbuffer), [`TransactionsBuffer`](README.md#transactionsbuffer), [`UncleHeadersBuffer`](README.md#uncleheadersbuffer), [`WithdrawalsBuffer`](README.md#withdrawalsbuffer)] +Ƭ **BlockBytes**: [[`BlockHeaderBytes`](README.md#blockheaderbytes), [`TransactionsBytes`](README.md#transactionsbytes), [`UncleHeadersBytes`](README.md#uncleheadersbytes)] \| [[`BlockHeaderBytes`](README.md#blockheaderbytes), [`TransactionsBytes`](README.md#transactionsbytes), [`UncleHeadersBytes`](README.md#uncleheadersbytes), [`WithdrawalsBytes`](README.md#withdrawalsbytes)] #### Defined in -[types.ts:125](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L125) +[types.ts:115](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L115) ___ -### BlockHeaderBuffer +### BlockHeaderBytes -Ƭ **BlockHeaderBuffer**: `Buffer`[] +Ƭ **BlockHeaderBytes**: `Uint8Array`[] #### Defined in -[types.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L128) +[types.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L118) ___ -### TransactionsBuffer +### ExecutionPayload + +Ƭ **ExecutionPayload**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `baseFeePerGas` | `PrefixedHexString` | +| `blockHash` | `PrefixedHexString` | +| `blockNumber` | `PrefixedHexString` | +| `dataGasUsed?` | `PrefixedHexString` | +| `excessDataGas?` | `PrefixedHexString` | +| `extraData` | `PrefixedHexString` | +| `feeRecipient` | `PrefixedHexString` | +| `gasLimit` | `PrefixedHexString` | +| `gasUsed` | `PrefixedHexString` | +| `logsBloom` | `PrefixedHexString` | +| `parentHash` | `PrefixedHexString` | +| `prevRandao` | `PrefixedHexString` | +| `receiptsRoot` | `PrefixedHexString` | +| `stateRoot` | `PrefixedHexString` | +| `timestamp` | `PrefixedHexString` | +| `transactions` | `PrefixedHexString`[] | +| `withdrawals?` | [`WithdrawalV1`](README.md#withdrawalv1)[] | -Ƭ **TransactionsBuffer**: `Buffer`[][] \| `Buffer`[] +#### Defined in + +[types.ts:205](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L205) + +___ + +### TransactionsBytes -TransactionsBuffer can be an array of serialized txs for Typed Transactions or an array of Buffer Arrays for legacy transactions. +Ƭ **TransactionsBytes**: `Uint8Array`[][] \| `Uint8Array`[] + +TransactionsBytes can be an array of serialized txs for Typed Transactions or an array of Uint8Array Arrays for legacy transactions. #### Defined in -[types.ts:133](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L133) +[types.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L123) ___ -### UncleHeadersBuffer +### UncleHeadersBytes -Ƭ **UncleHeadersBuffer**: `Buffer`[][] +Ƭ **UncleHeadersBytes**: `Uint8Array`[][] #### Defined in -[types.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L134) +[types.ts:124](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L124) ___ -### WithdrawalsBuffer +### WithdrawalV1 + +Ƭ **WithdrawalV1**: `Object` + +#### Type declaration -Ƭ **WithdrawalsBuffer**: `WithdrawalBuffer`[] +| Name | Type | +| :------ | :------ | +| `address` | `PrefixedHexString` | +| `amount` | `PrefixedHexString` | +| `index` | `PrefixedHexString` | +| `validatorIndex` | `PrefixedHexString` | #### Defined in -[types.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L123) +[types.ts:197](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L197) + +___ + +### WithdrawalsBytes + +Ƭ **WithdrawalsBytes**: `WithdrawalBytes`[] + +#### Defined in + +[types.ts:113](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L113) diff --git a/packages/block/docs/classes/Block.md b/packages/block/docs/classes/Block.md index c6fcf9b9d2..601461ac9a 100644 --- a/packages/block/docs/classes/Block.md +++ b/packages/block/docs/classes/Block.md @@ -12,7 +12,7 @@ An object that represents the block. ### Properties -- [\_common](Block.md#_common) +- [common](Block.md#common) - [header](Block.md#header) - [transactions](Block.md#transactions) - [txTrie](Block.md#txtrie) @@ -24,33 +24,35 @@ An object that represents the block. - [errorStr](Block.md#errorstr) - [ethashCanonicalDifficulty](Block.md#ethashcanonicaldifficulty) - [genTxTrie](Block.md#gentxtrie) +- [getTransactionsValidationErrors](Block.md#gettransactionsvalidationerrors) - [hash](Block.md#hash) - [isGenesis](Block.md#isgenesis) - [raw](Block.md#raw) - [serialize](Block.md#serialize) - [toJSON](Block.md#tojson) +- [transactionsAreValid](Block.md#transactionsarevalid) +- [transactionsTrieIsValid](Block.md#transactionstrieisvalid) +- [uncleHashIsValid](Block.md#unclehashisvalid) - [validateBlobTransactions](Block.md#validateblobtransactions) - [validateData](Block.md#validatedata) - [validateGasLimit](Block.md#validategaslimit) -- [validateTransactions](Block.md#validatetransactions) -- [validateTransactionsTrie](Block.md#validatetransactionstrie) - [validateUncles](Block.md#validateuncles) -- [validateUnclesHash](Block.md#validateuncleshash) -- [validateWithdrawalsTrie](Block.md#validatewithdrawalstrie) +- [withdrawalsTrieIsValid](Block.md#withdrawalstrieisvalid) +- [fromBeaconPayloadJson](Block.md#frombeaconpayloadjson) - [fromBlockData](Block.md#fromblockdata) -- [fromEthersProvider](Block.md#fromethersprovider) +- [fromExecutionPayload](Block.md#fromexecutionpayload) +- [fromJsonRpcProvider](Block.md#fromjsonrpcprovider) - [fromRLPSerializedBlock](Block.md#fromrlpserializedblock) - [fromRPC](Block.md#fromrpc) - [fromValuesArray](Block.md#fromvaluesarray) - [genTransactionsTrieRoot](Block.md#gentransactionstrieroot) - [genWithdrawalsTrieRoot](Block.md#genwithdrawalstrieroot) -- [generateWithdrawalsSSZRoot](Block.md#generatewithdrawalssszroot) ## Constructors ### constructor -• **new Block**(`header?`, `transactions?`, `uncleHeaders?`, `opts?`, `withdrawals?`) +• **new Block**(`header?`, `transactions?`, `uncleHeaders?`, `withdrawals?`, `opts?`) This constructor takes the values, validates them, assigns them and freezes the object. Use the static factory methods to assist in creating a Block object from varying data types and options. @@ -62,22 +64,22 @@ Use the static factory methods to assist in creating a Block object from varying | `header?` | [`BlockHeader`](BlockHeader.md) | `undefined` | | `transactions` | `TypedTransaction`[] | `[]` | | `uncleHeaders` | [`BlockHeader`](BlockHeader.md)[] | `[]` | -| `opts` | [`BlockOptions`](../interfaces/BlockOptions.md) | `{}` | | `withdrawals?` | `Withdrawal`[] | `undefined` | +| `opts` | [`BlockOptions`](../interfaces/BlockOptions.md) | `{}` | #### Defined in -[block.ts:289](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L289) +[block.ts:360](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L360) ## Properties -### \_common +### common -• `Readonly` **\_common**: `Common` +• `Readonly` **common**: `Common` #### Defined in -[block.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L43) +[block.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L51) ___ @@ -87,7 +89,7 @@ ___ #### Defined in -[block.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L38) +[block.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L46) ___ @@ -97,7 +99,7 @@ ___ #### Defined in -[block.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L39) +[block.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L47) ___ @@ -107,7 +109,7 @@ ___ #### Defined in -[block.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L42) +[block.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L50) ___ @@ -117,7 +119,7 @@ ___ #### Defined in -[block.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L40) +[block.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L48) ___ @@ -127,7 +129,7 @@ ___ #### Defined in -[block.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L41) +[block.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L49) ## Methods @@ -143,7 +145,7 @@ Return a compact error string representation of the object #### Defined in -[block.ts:586](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L586) +[block.ts:698](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L698) ___ @@ -165,7 +167,7 @@ Returns the canonical difficulty for this block. #### Defined in -[block.ts:552](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L552) +[block.ts:664](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L664) ___ @@ -181,23 +183,41 @@ Generates transaction trie for validation. #### Defined in -[block.ts:370](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L370) +[block.ts:441](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L441) + +___ + +### getTransactionsValidationErrors + +▸ **getTransactionsValidationErrors**(): `string`[] + +Validates transaction signatures and minimum gas requirements. + +#### Returns + +`string`[] + +an array of error strings + +#### Defined in + +[block.ts:469](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L469) ___ ### hash -▸ **hash**(): `Buffer` +▸ **hash**(): `Uint8Array` Returns the hash of the block. #### Returns -`Buffer` +`Uint8Array` #### Defined in -[block.ts:349](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L349) +[block.ts:420](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L420) ___ @@ -213,39 +233,39 @@ Determines if this block is the genesis block. #### Defined in -[block.ts:356](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L356) +[block.ts:427](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L427) ___ ### raw -▸ **raw**(): [`BlockBuffer`](../README.md#blockbuffer) +▸ **raw**(): [`BlockBytes`](../README.md#blockbytes) -Returns a Buffer Array of the raw Buffers of this block, in order. +Returns a Array of the raw Bytes Arays of this block, in order. #### Returns -[`BlockBuffer`](../README.md#blockbuffer) +[`BlockBytes`](../README.md#blockbytes) #### Defined in -[block.ts:331](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L331) +[block.ts:402](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L402) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` Returns the rlp encoding of the block. #### Returns -`Buffer` +`Uint8Array` #### Defined in -[block.ts:363](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L363) +[block.ts:434](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L434) ___ @@ -261,7 +281,62 @@ Returns the block in JSON format. #### Defined in -[block.ts:569](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L569) +[block.ts:681](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L681) + +___ + +### transactionsAreValid + +▸ **transactionsAreValid**(): `boolean` + +Validates transaction signatures and minimum gas requirements. + +#### Returns + +`boolean` + +True if all transactions are valid, false otherwise + +#### Defined in + +[block.ts:519](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L519) + +___ + +### transactionsTrieIsValid + +▸ **transactionsTrieIsValid**(): `Promise`<`boolean`\> + +Validates the transaction trie by generating a trie +and do a check on the root hash. + +#### Returns + +`Promise`<`boolean`\> + +True if the transaction trie is valid, false otherwise + +#### Defined in + +[block.ts:451](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L451) + +___ + +### uncleHashIsValid + +▸ **uncleHashIsValid**(): `boolean` + +Validates the uncle's hash. + +#### Returns + +`boolean` + +true if the uncle's hash is valid, false otherwise. + +#### Defined in + +[block.ts:613](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L613) ___ @@ -285,7 +360,7 @@ data gas per block #### Defined in -[block.ts:484](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L484) +[block.ts:567](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L567) ___ @@ -312,7 +387,7 @@ It checks: #### Defined in -[block.ts:450](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L450) +[block.ts:534](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L534) ___ @@ -335,163 +410,134 @@ Throws if invalid #### Defined in -[block.ts:562](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L562) +[block.ts:674](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L674) ___ -### validateTransactions - -▸ **validateTransactions**(): `boolean` - -Validates transaction signatures and minimum gas requirements. - -#### Returns - -`boolean` - -#### Defined in - -[block.ts:398](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L398) - -▸ **validateTransactions**(`stringError`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stringError` | ``false`` | - -#### Returns - -`boolean` - -#### Defined in +### validateUncles -[block.ts:399](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L399) +▸ **validateUncles**(): `void` -▸ **validateTransactions**(`stringError`): `string`[] +Consistency checks for uncles included in the block, if any. -#### Parameters +Throws if invalid. -| Name | Type | -| :------ | :------ | -| `stringError` | ``true`` | +The rules for uncles checked are the following: +Header has at most 2 uncles. +Header does not count an uncle twice. #### Returns -`string`[] +`void` #### Defined in -[block.ts:400](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L400) +[block.ts:640](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L640) ___ -### validateTransactionsTrie +### withdrawalsTrieIsValid -▸ **validateTransactionsTrie**(): `Promise`<`boolean`\> +▸ **withdrawalsTrieIsValid**(): `Promise`<`boolean`\> -Validates the transaction trie by generating a trie -and do a check on the root hash. +Validates the withdrawal root #### Returns `Promise`<`boolean`\> +true if the withdrawals trie root is valid, false otherwise + #### Defined in -[block.ts:379](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L379) +[block.ts:623](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L623) ___ -### validateUncles +### fromBeaconPayloadJson -▸ **validateUncles**(): `void` +▸ `Static` **fromBeaconPayloadJson**(`payload`, `options?`): `Promise`<[`Block`](Block.md)\> -Consistency checks for uncles included in the block, if any. +Method to retrieve a block from a beacon payload json -Throws if invalid. +#### Parameters -The rules for uncles checked are the following: -Header has at most 2 uncles. -Header does not count an uncle twice. +| Name | Type | Description | +| :------ | :------ | :------ | +| `payload` | `BeaconPayloadJson` | json of a beacon beacon fetched from beacon apis | +| `options?` | [`BlockOptions`](../interfaces/BlockOptions.md) | - | #### Returns -`void` +`Promise`<[`Block`](Block.md)\> + +the block constructed block #### Defined in -[block.ts:528](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L528) +[block.ts:348](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L348) ___ -### validateUnclesHash - -▸ **validateUnclesHash**(): `boolean` - -Validates the uncle's hash. - -#### Returns - -`boolean` - -#### Defined in - -[block.ts:502](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L502) +### fromBlockData -___ +▸ `Static` **fromBlockData**(`blockData?`, `opts?`): [`Block`](Block.md) -### validateWithdrawalsTrie +Static constructor to create a block from a block data dictionary -▸ **validateWithdrawalsTrie**(): `Promise`<`boolean`\> +#### Parameters -Validates the withdrawal root +| Name | Type | +| :------ | :------ | +| `blockData` | [`BlockData`](../interfaces/BlockData.md) | +| `opts?` | [`BlockOptions`](../interfaces/BlockOptions.md) | #### Returns -`Promise`<`boolean`\> +[`Block`](Block.md) #### Defined in -[block.ts:511](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L511) +[block.ts:85](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L85) ___ -### fromBlockData +### fromExecutionPayload -▸ `Static` **fromBlockData**(`blockData?`, `opts?`): [`Block`](Block.md) +▸ `Static` **fromExecutionPayload**(`payload`, `options?`): `Promise`<[`Block`](Block.md)\> -Static constructor to create a block from a block data dictionary +Method to retrieve a block from an execution payload #### Parameters | Name | Type | | :------ | :------ | -| `blockData` | [`BlockData`](../interfaces/BlockData.md) | -| `opts?` | [`BlockOptions`](../interfaces/BlockOptions.md) | +| `payload` | [`ExecutionPayload`](../README.md#executionpayload) | +| `options?` | [`BlockOptions`](../interfaces/BlockOptions.md) | #### Returns -[`Block`](Block.md) +`Promise`<[`Block`](Block.md)\> + +the block constructed block #### Defined in -[block.ts:85](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L85) +[block.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L288) ___ -### fromEthersProvider +### fromJsonRpcProvider -▸ `Static` **fromEthersProvider**(`provider`, `blockTag`, `opts`): `Promise`<[`Block`](Block.md)\> +▸ `Static` **fromJsonRpcProvider**(`provider`, `blockTag`, `opts`): `Promise`<[`Block`](Block.md)\> -Method to retrieve a block from the provider and format as a [Block](Block.md) +Method to retrieve a block from a JSON-RPC provider and format as a [Block](Block.md) #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `provider` | `any` | an Ethers JsonRPCProvider | +| `provider` | `string` \| `EthersProvider` | either a url for a remote provider or an Ethers JsonRpcProvider object | | `blockTag` | `string` \| `bigint` | block hash or block number to be run | | `opts` | [`BlockOptions`](../interfaces/BlockOptions.md) | [BlockOptions](../interfaces/BlockOptions.md) | @@ -503,7 +549,7 @@ the block specified by `blockTag` #### Defined in -[block.ts:233](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L233) +[block.ts:228](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L228) ___ @@ -517,7 +563,7 @@ Static constructor to create a block from a RLP-serialized block | Name | Type | | :------ | :------ | -| `serialized` | `Buffer` | +| `serialized` | `Uint8Array` | | `opts?` | [`BlockOptions`](../interfaces/BlockOptions.md) | #### Returns @@ -526,7 +572,7 @@ Static constructor to create a block from a RLP-serialized block #### Defined in -[block.ts:137](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L137) +[block.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L134) ___ @@ -550,7 +596,7 @@ Creates a new block object from Ethereum JSON RPC. #### Defined in -[block.ts:222](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L222) +[block.ts:217](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L217) ___ @@ -558,13 +604,13 @@ ___ ▸ `Static` **fromValuesArray**(`values`, `opts?`): [`Block`](Block.md) -Static constructor to create a block from an array of Buffer values +Static constructor to create a block from an array of Bytes values #### Parameters | Name | Type | | :------ | :------ | -| `values` | [`BlockBuffer`](../README.md#blockbuffer) | +| `values` | [`BlockBytes`](../README.md#blockbytes) | | `opts?` | [`BlockOptions`](../interfaces/BlockOptions.md) | #### Returns @@ -573,13 +619,13 @@ Static constructor to create a block from an array of Buffer values #### Defined in -[block.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L153) +[block.ts:150](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L150) ___ ### genTransactionsTrieRoot -▸ `Static` **genTransactionsTrieRoot**(`txs`, `emptyTrie?`): `Promise`<`Buffer`\> +▸ `Static` **genTransactionsTrieRoot**(`txs`, `emptyTrie?`): `Promise`<`Uint8Array`\> Returns the txs trie root for array of TypedTransaction @@ -592,7 +638,7 @@ Returns the txs trie root for array of TypedTransaction #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> #### Defined in @@ -602,7 +648,7 @@ ___ ### genWithdrawalsTrieRoot -▸ `Static` **genWithdrawalsTrieRoot**(`wts`, `emptyTrie?`): `Promise`<`Buffer`\> +▸ `Static` **genWithdrawalsTrieRoot**(`wts`, `emptyTrie?`): `Promise`<`Uint8Array`\> Returns the withdrawals trie root for array of Withdrawal. @@ -615,30 +661,8 @@ Returns the withdrawals trie root for array of Withdrawal. #### Returns -`Promise`<`Buffer`\> - -#### Defined in - -[block.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L50) - -___ - -### generateWithdrawalsSSZRoot - -▸ `Static` **generateWithdrawalsSSZRoot**(`withdrawals`): `Promise`<`void`\> - -Returns the ssz root for array of withdrawal transactions. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `withdrawals` | `Withdrawal`[] | - -#### Returns - -`Promise`<`void`\> +`Promise`<`Uint8Array`\> #### Defined in -[block.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L62) +[block.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/block.ts#L58) diff --git a/packages/block/docs/classes/BlockHeader.md b/packages/block/docs/classes/BlockHeader.md index b5a101eaed..6d5caa6faa 100644 --- a/packages/block/docs/classes/BlockHeader.md +++ b/packages/block/docs/classes/BlockHeader.md @@ -12,9 +12,10 @@ An object that represents the block header. ### Properties -- [\_common](BlockHeader.md#_common) - [baseFeePerGas](BlockHeader.md#basefeepergas) - [coinbase](BlockHeader.md#coinbase) +- [common](BlockHeader.md#common) +- [dataGasUsed](BlockHeader.md#datagasused) - [difficulty](BlockHeader.md#difficulty) - [excessDataGas](BlockHeader.md#excessdatagas) - [extraData](BlockHeader.md#extradata) @@ -24,6 +25,7 @@ An object that represents the block header. - [mixHash](BlockHeader.md#mixhash) - [nonce](BlockHeader.md#nonce) - [number](BlockHeader.md#number) +- [parentBeaconBlockRoot](BlockHeader.md#parentbeaconblockroot) - [parentHash](BlockHeader.md#parenthash) - [receiptTrie](BlockHeader.md#receipttrie) - [stateRoot](BlockHeader.md#stateroot) @@ -38,9 +40,9 @@ An object that represents the block header. ### Methods -- [\_consensusFormatValidation](BlockHeader.md#_consensusformatvalidation) -- [\_genericFormatValidation](BlockHeader.md#_genericformatvalidation) +- [calcDataFee](BlockHeader.md#calcdatafee) - [calcNextBaseFee](BlockHeader.md#calcnextbasefee) +- [calcNextExcessDataGas](BlockHeader.md#calcnextexcessdatagas) - [cliqueEpochTransitionSigners](BlockHeader.md#cliqueepochtransitionsigners) - [cliqueExtraSeal](BlockHeader.md#cliqueextraseal) - [cliqueExtraVanity](BlockHeader.md#cliqueextravanity) @@ -50,6 +52,7 @@ An object that represents the block header. - [cliqueVerifySignature](BlockHeader.md#cliqueverifysignature) - [errorStr](BlockHeader.md#errorstr) - [ethashCanonicalDifficulty](BlockHeader.md#ethashcanonicaldifficulty) +- [getDataGasPrice](BlockHeader.md#getdatagasprice) - [hash](BlockHeader.md#hash) - [isGenesis](BlockHeader.md#isgenesis) - [raw](BlockHeader.md#raw) @@ -82,37 +85,47 @@ varying data types. For a default empty header, use [fromHeaderData](BlockHeader #### Defined in -[header.ts:126](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L126) +[header.ts:142](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L142) ## Properties -### \_common +### baseFeePerGas -• `Readonly` **\_common**: `Common` +• `Optional` `Readonly` **baseFeePerGas**: `bigint` #### Defined in -[header.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L57) +[header.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L55) ___ -### baseFeePerGas +### coinbase -• `Optional` `Readonly` **baseFeePerGas**: `bigint` +• `Readonly` **coinbase**: `Address` #### Defined in -[header.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L53) +[header.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L42) ___ -### coinbase +### common -• `Readonly` **coinbase**: `Address` +• `Readonly` **common**: `Common` #### Defined in -[header.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L40) +[header.ts:61](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L61) + +___ + +### dataGasUsed + +• `Optional` `Readonly` **dataGasUsed**: `bigint` + +#### Defined in + +[header.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L57) ___ @@ -122,7 +135,7 @@ ___ #### Defined in -[header.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L45) +[header.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L47) ___ @@ -132,17 +145,17 @@ ___ #### Defined in -[header.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L55) +[header.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L58) ___ ### extraData -• `Readonly` **extraData**: `Buffer` +• `Readonly` **extraData**: `Uint8Array` #### Defined in -[header.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L50) +[header.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L52) ___ @@ -152,7 +165,7 @@ ___ #### Defined in -[header.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L47) +[header.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L49) ___ @@ -162,37 +175,37 @@ ___ #### Defined in -[header.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L48) +[header.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L50) ___ ### logsBloom -• `Readonly` **logsBloom**: `Buffer` +• `Readonly` **logsBloom**: `Uint8Array` #### Defined in -[header.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L44) +[header.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L46) ___ ### mixHash -• `Readonly` **mixHash**: `Buffer` +• `Readonly` **mixHash**: `Uint8Array` #### Defined in -[header.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L51) +[header.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L53) ___ ### nonce -• `Readonly` **nonce**: `Buffer` +• `Readonly` **nonce**: `Uint8Array` #### Defined in -[header.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L52) +[header.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L54) ___ @@ -202,37 +215,47 @@ ___ #### Defined in -[header.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L46) +[header.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L48) + +___ + +### parentBeaconBlockRoot + +• `Optional` `Readonly` **parentBeaconBlockRoot**: `Uint8Array` + +#### Defined in + +[header.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L59) ___ ### parentHash -• `Readonly` **parentHash**: `Buffer` +• `Readonly` **parentHash**: `Uint8Array` #### Defined in -[header.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L38) +[header.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L40) ___ ### receiptTrie -• `Readonly` **receiptTrie**: `Buffer` +• `Readonly` **receiptTrie**: `Uint8Array` #### Defined in -[header.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L43) +[header.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L45) ___ ### stateRoot -• `Readonly` **stateRoot**: `Buffer` +• `Readonly` **stateRoot**: `Uint8Array` #### Defined in -[header.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L41) +[header.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L43) ___ @@ -242,97 +265,101 @@ ___ #### Defined in -[header.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L49) +[header.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L51) ___ ### transactionsTrie -• `Readonly` **transactionsTrie**: `Buffer` +• `Readonly` **transactionsTrie**: `Uint8Array` #### Defined in -[header.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L42) +[header.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L44) ___ ### uncleHash -• `Readonly` **uncleHash**: `Buffer` +• `Readonly` **uncleHash**: `Uint8Array` #### Defined in -[header.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L39) +[header.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L41) ___ ### withdrawalsRoot -• `Optional` `Readonly` **withdrawalsRoot**: `Buffer` +• `Optional` `Readonly` **withdrawalsRoot**: `Uint8Array` #### Defined in -[header.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L54) +[header.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L56) ## Accessors ### prevRandao -• `get` **prevRandao**(): `Buffer` +• `get` **prevRandao**(): `Uint8Array` EIP-4399: After merge to PoS, `mixHash` supplanted as `prevRandao` #### Returns -`Buffer` +`Uint8Array` #### Defined in -[header.ts:66](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L66) +[header.ts:70](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L70) ## Methods -### \_consensusFormatValidation +### calcDataFee -▸ **_consensusFormatValidation**(): `void` +▸ **calcDataFee**(`numBlobs`): `bigint` -Checks static parameters related to consensus algorithm +Returns the total fee for data gas spent for including blobs in block. -**`Throws`** +#### Parameters -if any check fails +| Name | Type | Description | +| :------ | :------ | :------ | +| `numBlobs` | `number` | number of blobs in the transaction/block | #### Returns -`void` +`bigint` + +the total data gas fee for numBlobs blobs #### Defined in -[header.ts:349](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L349) +[header.ts:599](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L599) ___ -### \_genericFormatValidation +### calcNextBaseFee -▸ **_genericFormatValidation**(): `void` +▸ **calcNextBaseFee**(): `bigint` -Validates correct buffer lengths, throws if invalid. +Calculates the base fee for a potential next block #### Returns -`void` +`bigint` #### Defined in -[header.ts:272](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L272) +[header.ts:537](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L537) ___ -### calcNextBaseFee +### calcNextExcessDataGas -▸ **calcNextBaseFee**(): `bigint` +▸ **calcNextExcessDataGas**(): `bigint` -Calculates the base fee for a potential next block +Calculates the excess data gas for next (hopefully) post EIP 4844 block. #### Returns @@ -340,7 +367,7 @@ Calculates the base fee for a potential next block #### Defined in -[header.ts:481](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L481) +[header.ts:610](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L610) ___ @@ -361,41 +388,41 @@ in conjunction with [cliqueIsEpochTransition](BlockHeader.md#cliqueisepochtransi #### Defined in -[header.ts:731](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L731) +[header.ts:835](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L835) ___ ### cliqueExtraSeal -▸ **cliqueExtraSeal**(): `Buffer` +▸ **cliqueExtraSeal**(): `Uint8Array` Returns extra seal data (only clique PoA, throws otherwise) #### Returns -`Buffer` +`Uint8Array` #### Defined in -[header.ts:698](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L698) +[header.ts:799](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L799) ___ ### cliqueExtraVanity -▸ **cliqueExtraVanity**(): `Buffer` +▸ **cliqueExtraVanity**(): `Uint8Array` Returns extra vanity data (only clique PoA, throws otherwise) #### Returns -`Buffer` +`Uint8Array` #### Defined in -[header.ts:689](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L689) +[header.ts:790](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L790) ___ @@ -412,23 +439,23 @@ header (only clique PoA, throws otherwise) #### Defined in -[header.ts:677](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L677) +[header.ts:778](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L778) ___ ### cliqueSigHash -▸ **cliqueSigHash**(): `Buffer` +▸ **cliqueSigHash**(): `Uint8Array` PoA clique signature hash without the seal. #### Returns -`Buffer` +`Uint8Array` #### Defined in -[header.ts:666](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L666) +[header.ts:767](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L767) ___ @@ -444,7 +471,7 @@ Returns the signer address #### Defined in -[header.ts:768](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L768) +[header.ts:872](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L872) ___ @@ -469,7 +496,7 @@ Verifies the signature of the block (last 65 bytes of extraData field) #### Defined in -[header.ts:756](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L756) +[header.ts:860](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L860) ___ @@ -485,7 +512,7 @@ Return a compact error string representation of the object #### Defined in -[header.ts:847](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L847) +[header.ts:955](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L955) ___ @@ -507,23 +534,41 @@ Returns the canonical difficulty for this block. #### Defined in -[header.ts:593](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L593) +[header.ts:694](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L694) + +___ + +### getDataGasPrice + +▸ **getDataGasPrice**(): `bigint` + +Returns the price per unit of data gas for a blob transaction in the current/pending block + +#### Returns + +`bigint` + +the price in gwei per unit of data gas spent + +#### Defined in + +[header.ts:582](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L582) ___ ### hash -▸ **hash**(): `Buffer` +▸ **hash**(): `Uint8Array` Returns the hash of the block header. #### Returns -`Buffer` +`Uint8Array` #### Defined in -[header.ts:561](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L561) +[header.ts:662](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L662) ___ @@ -539,39 +584,39 @@ Checks if the block header is a genesis header. #### Defined in -[header.ts:575](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L575) +[header.ts:676](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L676) ___ ### raw -▸ **raw**(): [`BlockHeaderBuffer`](../README.md#blockheaderbuffer) +▸ **raw**(): [`BlockHeaderBytes`](../README.md#blockheaderbytes) -Returns a Buffer Array of the raw Buffers in this header, in order. +Returns a Uint8Array Array of the raw Bytes in this header, in order. #### Returns -[`BlockHeaderBuffer`](../README.md#blockheaderbuffer) +[`BlockHeaderBytes`](../README.md#blockheaderbytes) #### Defined in -[header.ts:525](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L525) +[header.ts:625](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L625) ___ ### serialize -▸ **serialize**(): `Buffer` +▸ **serialize**(): `Uint8Array` Returns the rlp encoding of the block header. #### Returns -`Buffer` +`Uint8Array` #### Defined in -[header.ts:785](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L785) +[header.ts:889](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L889) ___ @@ -587,7 +632,7 @@ Returns the block header in JSON format. #### Defined in -[header.ts:792](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L792) +[header.ts:896](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L896) ___ @@ -610,7 +655,7 @@ Throws if out of bounds. #### Defined in -[header.ts:439](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L439) +[header.ts:495](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L495) ___ @@ -633,7 +678,7 @@ Static constructor to create a block header from a header data dictionary #### Defined in -[header.ts:82](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L82) +[header.ts:86](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L86) ___ @@ -647,7 +692,7 @@ Static constructor to create a block header from a RLP-serialized header | Name | Type | | :------ | :------ | -| `serializedHeaderData` | `Buffer` | +| `serializedHeaderData` | `Uint8Array` | | `opts` | [`BlockOptions`](../interfaces/BlockOptions.md) | #### Returns @@ -656,7 +701,7 @@ Static constructor to create a block header from a RLP-serialized header #### Defined in -[header.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L92) +[header.ts:96](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L96) ___ @@ -664,13 +709,13 @@ ___ ▸ `Static` **fromValuesArray**(`values`, `opts?`): [`BlockHeader`](BlockHeader.md) -Static constructor to create a block header from an array of Buffer values +Static constructor to create a block header from an array of Bytes values #### Parameters | Name | Type | | :------ | :------ | -| `values` | [`BlockHeaderBuffer`](../README.md#blockheaderbuffer) | +| `values` | [`BlockHeaderBytes`](../README.md#blockheaderbytes) | | `opts` | [`BlockOptions`](../interfaces/BlockOptions.md) | #### Returns @@ -679,4 +724,4 @@ Static constructor to create a block header from an array of Buffer values #### Defined in -[header.ts:106](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L106) +[header.ts:110](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L110) diff --git a/packages/block/docs/interfaces/BlockData.md b/packages/block/docs/interfaces/BlockData.md index 8dcaf44d7b..07ae48e1b3 100644 --- a/packages/block/docs/interfaces/BlockData.md +++ b/packages/block/docs/interfaces/BlockData.md @@ -23,17 +23,17 @@ Header data for the block #### Defined in -[types.ts:117](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L117) +[types.ts:107](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L107) ___ ### transactions -• `Optional` **transactions**: (`AccessListEIP2930TxData` \| `FeeMarketEIP1559TxData` \| `TxData`)[] +• `Optional` **transactions**: (`AccessListEIP2930TxData` \| `BlobEIP4844TxData` \| `FeeMarketEIP1559TxData` \| `LegacyTxData`)[] #### Defined in -[types.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L118) +[types.ts:108](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L108) ___ @@ -43,7 +43,7 @@ ___ #### Defined in -[types.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L119) +[types.ts:109](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L109) ___ @@ -53,4 +53,4 @@ ___ #### Defined in -[types.ts:120](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L120) +[types.ts:110](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L110) diff --git a/packages/block/docs/interfaces/BlockOptions.md b/packages/block/docs/interfaces/BlockOptions.md index dd41fef6e8..fd2c13b88c 100644 --- a/packages/block/docs/interfaces/BlockOptions.md +++ b/packages/block/docs/interfaces/BlockOptions.md @@ -14,8 +14,7 @@ hardfork. - [cliqueSigner](BlockOptions.md#cliquesigner) - [common](BlockOptions.md#common) - [freeze](BlockOptions.md#freeze) -- [hardforkByBlockNumber](BlockOptions.md#hardforkbyblocknumber) -- [hardforkByTTD](BlockOptions.md#hardforkbyttd) +- [setHardfork](BlockOptions.md#sethardfork) - [skipConsensusFormatValidation](BlockOptions.md#skipconsensusformatvalidation) ## Properties @@ -33,20 +32,20 @@ Note that this option has no effect on networks other than PoW/Ethash networks #### Defined in -[types.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L62) +[types.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L50) ___ ### cliqueSigner -• `Optional` **cliqueSigner**: `Buffer` +• `Optional` **cliqueSigner**: `Uint8Array` Provide a clique signer's privateKey to seal this block. Will throw if provided on a non-PoA chain. #### Defined in -[types.ts:79](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L79) +[types.ts:67](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L67) ___ @@ -66,7 +65,7 @@ Current default hardfork: `merge` #### Defined in -[types.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L36) +[types.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L31) ___ @@ -86,40 +85,25 @@ Default: true #### Defined in -[types.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L74) - -___ - -### hardforkByBlockNumber - -• `Optional` **hardforkByBlockNumber**: `boolean` - -Determine the HF by the block number - -Default: `false` (HF is set to whatever default HF is set by the Common instance) - -#### Defined in - -[types.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L42) +[types.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L62) ___ -### hardforkByTTD +### setHardfork -• `Optional` **hardforkByTTD**: `BigIntLike` +• `Optional` **setHardfork**: `boolean` \| `BigIntLike` -Determine the HF by total difficulty (Merge HF) +Set the hardfork either by timestamp (for HFs from Shanghai onwards) or by block number +for older Hfs. -This option is a superset of `hardforkByBlockNumber` (so only use one of both options) -and determines the HF by both the block number and the TD. +Additionally it is possible to pass in a specific TD value to support live-Merge-HF +transitions. Note that this should only be needed in very rare and specific scenarios. -Since the TTD is only a threshold the block number will in doubt take precedence (imagine -e.g. both Merge and Shanghai HF blocks set and the block number from the block provided -pointing to a Shanghai block: this will lead to set the HF as Shanghai and not the Merge). +Default: `false` (HF is set to whatever default HF is set by the Common instance) #### Defined in -[types.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L53) +[types.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L41) ___ @@ -131,4 +115,4 @@ Skip consensus format validation checks on header if set. Defaults to false. #### Defined in -[types.ts:83](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L83) +[types.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L71) diff --git a/packages/block/docs/interfaces/HeaderData.md b/packages/block/docs/interfaces/HeaderData.md index e50f98e3ce..875e03b20a 100644 --- a/packages/block/docs/interfaces/HeaderData.md +++ b/packages/block/docs/interfaces/HeaderData.md @@ -10,6 +10,7 @@ A block header's data. - [baseFeePerGas](HeaderData.md#basefeepergas) - [coinbase](HeaderData.md#coinbase) +- [dataGasUsed](HeaderData.md#datagasused) - [difficulty](HeaderData.md#difficulty) - [excessDataGas](HeaderData.md#excessdatagas) - [extraData](HeaderData.md#extradata) @@ -19,6 +20,7 @@ A block header's data. - [mixHash](HeaderData.md#mixhash) - [nonce](HeaderData.md#nonce) - [number](HeaderData.md#number) +- [parentBeaconBlockRoot](HeaderData.md#parentbeaconblockroot) - [parentHash](HeaderData.md#parenthash) - [receiptTrie](HeaderData.md#receipttrie) - [stateRoot](HeaderData.md#stateroot) @@ -35,7 +37,7 @@ A block header's data. #### Defined in -[types.ts:105](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L105) +[types.ts:93](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L93) ___ @@ -45,7 +47,17 @@ ___ #### Defined in -[types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L92) +[types.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L80) + +___ + +### dataGasUsed + +• `Optional` **dataGasUsed**: `BigIntLike` + +#### Defined in + +[types.ts:95](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L95) ___ @@ -55,7 +67,7 @@ ___ #### Defined in -[types.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L97) +[types.ts:85](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L85) ___ @@ -65,17 +77,17 @@ ___ #### Defined in -[types.ts:107](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L107) +[types.ts:96](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L96) ___ ### extraData -• `Optional` **extraData**: `BufferLike` +• `Optional` **extraData**: `BytesLike` #### Defined in -[types.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L102) +[types.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L90) ___ @@ -85,7 +97,7 @@ ___ #### Defined in -[types.ts:99](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L99) +[types.ts:87](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L87) ___ @@ -95,37 +107,37 @@ ___ #### Defined in -[types.ts:100](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L100) +[types.ts:88](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L88) ___ ### logsBloom -• `Optional` **logsBloom**: `BufferLike` +• `Optional` **logsBloom**: `BytesLike` #### Defined in -[types.ts:96](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L96) +[types.ts:84](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L84) ___ ### mixHash -• `Optional` **mixHash**: `BufferLike` +• `Optional` **mixHash**: `BytesLike` #### Defined in -[types.ts:103](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L103) +[types.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L91) ___ ### nonce -• `Optional` **nonce**: `BufferLike` +• `Optional` **nonce**: `BytesLike` #### Defined in -[types.ts:104](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L104) +[types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L92) ___ @@ -135,37 +147,47 @@ ___ #### Defined in -[types.ts:98](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L98) +[types.ts:86](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L86) + +___ + +### parentBeaconBlockRoot + +• `Optional` **parentBeaconBlockRoot**: `BytesLike` + +#### Defined in + +[types.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L97) ___ ### parentHash -• `Optional` **parentHash**: `BufferLike` +• `Optional` **parentHash**: `BytesLike` #### Defined in -[types.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L90) +[types.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L78) ___ ### receiptTrie -• `Optional` **receiptTrie**: `BufferLike` +• `Optional` **receiptTrie**: `BytesLike` #### Defined in -[types.ts:95](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L95) +[types.ts:83](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L83) ___ ### stateRoot -• `Optional` **stateRoot**: `BufferLike` +• `Optional` **stateRoot**: `BytesLike` #### Defined in -[types.ts:93](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L93) +[types.ts:81](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L81) ___ @@ -175,34 +197,34 @@ ___ #### Defined in -[types.ts:101](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L101) +[types.ts:89](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L89) ___ ### transactionsTrie -• `Optional` **transactionsTrie**: `BufferLike` +• `Optional` **transactionsTrie**: `BytesLike` #### Defined in -[types.ts:94](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L94) +[types.ts:82](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L82) ___ ### uncleHash -• `Optional` **uncleHash**: `BufferLike` +• `Optional` **uncleHash**: `BytesLike` #### Defined in -[types.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L91) +[types.ts:79](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L79) ___ ### withdrawalsRoot -• `Optional` **withdrawalsRoot**: `BufferLike` +• `Optional` **withdrawalsRoot**: `BytesLike` #### Defined in -[types.ts:106](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L106) +[types.ts:94](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L94) diff --git a/packages/block/docs/interfaces/JsonBlock.md b/packages/block/docs/interfaces/JsonBlock.md index e94b9862fd..618991edab 100644 --- a/packages/block/docs/interfaces/JsonBlock.md +++ b/packages/block/docs/interfaces/JsonBlock.md @@ -23,7 +23,7 @@ Header data for the block #### Defined in -[types.ts:143](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L143) +[types.ts:133](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L133) ___ @@ -33,7 +33,7 @@ ___ #### Defined in -[types.ts:144](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L144) +[types.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L134) ___ @@ -43,7 +43,7 @@ ___ #### Defined in -[types.ts:145](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L145) +[types.ts:135](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L135) ___ @@ -53,4 +53,4 @@ ___ #### Defined in -[types.ts:146](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L146) +[types.ts:136](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L136) diff --git a/packages/block/docs/interfaces/JsonHeader.md b/packages/block/docs/interfaces/JsonHeader.md index 58ea6eaa6e..f450c9b18e 100644 --- a/packages/block/docs/interfaces/JsonHeader.md +++ b/packages/block/docs/interfaces/JsonHeader.md @@ -10,6 +10,7 @@ An object with the block header's data represented as strings. - [baseFeePerGas](JsonHeader.md#basefeepergas) - [coinbase](JsonHeader.md#coinbase) +- [dataGasUsed](JsonHeader.md#datagasused) - [difficulty](JsonHeader.md#difficulty) - [excessDataGas](JsonHeader.md#excessdatagas) - [extraData](JsonHeader.md#extradata) @@ -19,6 +20,7 @@ An object with the block header's data represented as strings. - [mixHash](JsonHeader.md#mixhash) - [nonce](JsonHeader.md#nonce) - [number](JsonHeader.md#number) +- [parentBeaconBlockRoot](JsonHeader.md#parentbeaconblockroot) - [parentHash](JsonHeader.md#parenthash) - [receiptTrie](JsonHeader.md#receipttrie) - [stateRoot](JsonHeader.md#stateroot) @@ -35,7 +37,7 @@ An object with the block header's data represented as strings. #### Defined in -[types.ts:168](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L168) +[types.ts:158](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L158) ___ @@ -45,7 +47,17 @@ ___ #### Defined in -[types.ts:155](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L155) +[types.ts:145](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L145) + +___ + +### dataGasUsed + +• `Optional` **dataGasUsed**: `string` + +#### Defined in + +[types.ts:160](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L160) ___ @@ -55,7 +67,7 @@ ___ #### Defined in -[types.ts:160](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L160) +[types.ts:150](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L150) ___ @@ -65,7 +77,7 @@ ___ #### Defined in -[types.ts:170](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L170) +[types.ts:161](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L161) ___ @@ -75,7 +87,7 @@ ___ #### Defined in -[types.ts:165](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L165) +[types.ts:155](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L155) ___ @@ -85,7 +97,7 @@ ___ #### Defined in -[types.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L162) +[types.ts:152](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L152) ___ @@ -95,7 +107,7 @@ ___ #### Defined in -[types.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L163) +[types.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L153) ___ @@ -105,7 +117,7 @@ ___ #### Defined in -[types.ts:159](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L159) +[types.ts:149](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L149) ___ @@ -115,7 +127,7 @@ ___ #### Defined in -[types.ts:166](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L166) +[types.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L156) ___ @@ -125,7 +137,7 @@ ___ #### Defined in -[types.ts:167](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L167) +[types.ts:157](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L157) ___ @@ -135,7 +147,17 @@ ___ #### Defined in -[types.ts:161](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L161) +[types.ts:151](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L151) + +___ + +### parentBeaconBlockRoot + +• `Optional` **parentBeaconBlockRoot**: `string` + +#### Defined in + +[types.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L162) ___ @@ -145,7 +167,7 @@ ___ #### Defined in -[types.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L153) +[types.ts:143](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L143) ___ @@ -155,7 +177,7 @@ ___ #### Defined in -[types.ts:158](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L158) +[types.ts:148](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L148) ___ @@ -165,7 +187,7 @@ ___ #### Defined in -[types.ts:156](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L156) +[types.ts:146](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L146) ___ @@ -175,7 +197,7 @@ ___ #### Defined in -[types.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L164) +[types.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L154) ___ @@ -185,7 +207,7 @@ ___ #### Defined in -[types.ts:157](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L157) +[types.ts:147](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L147) ___ @@ -195,7 +217,7 @@ ___ #### Defined in -[types.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L154) +[types.ts:144](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L144) ___ @@ -205,4 +227,4 @@ ___ #### Defined in -[types.ts:169](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L169) +[types.ts:159](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L159) diff --git a/packages/block/docs/interfaces/JsonRpcBlock.md b/packages/block/docs/interfaces/JsonRpcBlock.md index f18bce10bb..72648b9f52 100644 --- a/packages/block/docs/interfaces/JsonRpcBlock.md +++ b/packages/block/docs/interfaces/JsonRpcBlock.md @@ -7,6 +7,7 @@ ### Properties - [baseFeePerGas](JsonRpcBlock.md#basefeepergas) +- [dataGasUsed](JsonRpcBlock.md#datagasused) - [difficulty](JsonRpcBlock.md#difficulty) - [excessDataGas](JsonRpcBlock.md#excessdatagas) - [extraData](JsonRpcBlock.md#extradata) @@ -39,7 +40,17 @@ #### Defined in -[types.ts:197](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L197) +[types.ts:189](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L189) + +___ + +### dataGasUsed + +• `Optional` **dataGasUsed**: `string` + +#### Defined in + +[types.ts:192](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L192) ___ @@ -49,7 +60,7 @@ ___ #### Defined in -[types.ts:188](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L188) +[types.ts:180](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L180) ___ @@ -59,7 +70,7 @@ ___ #### Defined in -[types.ts:200](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L200) +[types.ts:193](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L193) ___ @@ -69,7 +80,7 @@ ___ #### Defined in -[types.ts:190](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L190) +[types.ts:182](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L182) ___ @@ -79,7 +90,7 @@ ___ #### Defined in -[types.ts:192](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L192) +[types.ts:184](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L184) ___ @@ -89,7 +100,7 @@ ___ #### Defined in -[types.ts:193](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L193) +[types.ts:185](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L185) ___ @@ -99,7 +110,7 @@ ___ #### Defined in -[types.ts:178](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L178) +[types.ts:170](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L170) ___ @@ -109,7 +120,7 @@ ___ #### Defined in -[types.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L183) +[types.ts:175](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L175) ___ @@ -119,7 +130,7 @@ ___ #### Defined in -[types.ts:187](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L187) +[types.ts:179](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L179) ___ @@ -129,7 +140,7 @@ ___ #### Defined in -[types.ts:180](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L180) +[types.ts:172](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L172) ___ @@ -139,7 +150,7 @@ ___ #### Defined in -[types.ts:181](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L181) +[types.ts:173](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L173) ___ @@ -149,7 +160,7 @@ ___ #### Defined in -[types.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L177) +[types.ts:169](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L169) ___ @@ -159,7 +170,7 @@ ___ #### Defined in -[types.ts:179](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L179) +[types.ts:171](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L171) ___ @@ -169,7 +180,7 @@ ___ #### Defined in -[types.ts:186](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L186) +[types.ts:178](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L178) ___ @@ -179,7 +190,7 @@ ___ #### Defined in -[types.ts:182](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L182) +[types.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L174) ___ @@ -189,7 +200,7 @@ ___ #### Defined in -[types.ts:191](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L191) +[types.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L183) ___ @@ -199,7 +210,7 @@ ___ #### Defined in -[types.ts:185](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L185) +[types.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L177) ___ @@ -209,7 +220,7 @@ ___ #### Defined in -[types.ts:194](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L194) +[types.ts:186](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L186) ___ @@ -219,7 +230,7 @@ ___ #### Defined in -[types.ts:189](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L189) +[types.ts:181](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L181) ___ @@ -229,7 +240,7 @@ ___ #### Defined in -[types.ts:195](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L195) +[types.ts:187](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L187) ___ @@ -239,7 +250,7 @@ ___ #### Defined in -[types.ts:184](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L184) +[types.ts:176](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L176) ___ @@ -249,7 +260,7 @@ ___ #### Defined in -[types.ts:196](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L196) +[types.ts:188](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L188) ___ @@ -259,7 +270,7 @@ ___ #### Defined in -[types.ts:198](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L198) +[types.ts:190](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L190) ___ @@ -269,4 +280,4 @@ ___ #### Defined in -[types.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L199) +[types.ts:191](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L191) From e81412f009c1984c79b4b6fa08de1e21ed382b4f Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 13:28:20 +0200 Subject: [PATCH 19/38] Version bump, update upstream dependency versions, update README (Blockchain) --- packages/block/README.md | 6 ++ packages/blockchain/README.md | 60 +++++++++++++------ packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/vm/package.json | 2 +- 6 files changed, 53 insertions(+), 21 deletions(-) diff --git a/packages/block/README.md b/packages/block/README.md index a7f934a07e..e5898fb21b 100644 --- a/packages/block/README.md +++ b/packages/block/README.md @@ -233,6 +233,12 @@ const block = Block.fromBlockData( ) ``` +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + ## API ### Docs diff --git a/packages/blockchain/README.md b/packages/blockchain/README.md index af6f75c830..406c7ee125 100644 --- a/packages/blockchain/README.md +++ b/packages/blockchain/README.md @@ -35,31 +35,33 @@ The library also supports reorg scenarios e.g. by allowing to add a new block wi ## Example -The following is an example to iterate through an existing Geth DB (needs `level` to be installed separately). - -This module performs write operations. Making a backup of your data before trying it is recommended. Otherwise, you can end up with a compromised DB state. +The following is an example to instantiate a simple Blockchain object, put blocks into the blockchain and then iterate through the blocks added: ```typescript import { Blockchain } from '@ethereumjs/blockchain' -import { Chain, Common } from '@ethereumjs/common' - -const { Level } = require('level') - -const gethDbPath = './chaindata' // Add your own path here. It will get modified, see remarks. +import { bytesToHex } from '@ethereumjs/util' -const common = new Common({ chain: Chain.Mainnet }) -const db = new Level(gethDbPath) // Use the safe static constructor which awaits the init method const blockchain = Blockchain.create({ common, db }) +// See @ethereumjs/block on how to create a block +await blockchain.putBlock(block1) +await blockchain.putBlock(block2) + blockchain.iterator('i', (block) => { const blockNumber = block.header.number.toString() - const blockHash = block.hash().toString('hex') + const blockHash = bytesToHex(block.hash()) console.log(`Block ${blockNumber}: ${blockHash}`) }) ``` -**WARNING**: Since `@ethereumjs/blockchain` is also doing write operations on the DB for safety reasons only run this on a copy of your database, otherwise this might lead to a compromised DB state. +### Database Abstraction / Removed LevelDB Dependency + +With the v7 release the Blockchain library database has gotten an additional abstraction layer which allows to switch the backend to whatever is fitting the best for a use case, see PR [#2669](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2669) and PR [#2673](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2673). The database just needs to conform to the new [DB](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/db.ts) interface provided in the `@ethereumjs/util` package (since this is used in other places as well). + +By default the blockchain package is now using a [MapDB](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/mapDB.ts) non-persistent data storage which is also generically provided in the `@ethereumjs/util` package. + +If you need a persistent data store for your use case you can consider using the wrapper we have written within our [client](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/client/src/execution/level.ts) library. ### Consensus @@ -79,7 +81,21 @@ Note, if you construct a blockchain with a custom consensus implementation, tran ## Custom Genesis State -Starting with v6 responsibility for setting up a custom genesis state moved from the [Common](../common/) library to the `Blockchain` package, see PR [#1924](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1924) for some work context. +### Genesis in v7 (removed genesis dependency) + +Genesis state was huge and had previously been bundled with the `Blockchain` package with the burden going over to the VM, since `Blockchain` is a dependency. + +Starting with the v7 release genesis state has been removed from `blockchain` and moved into its own auxiliary package [@ethereumjs/genesis](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/genesis), from which it can be included if needed (for most - especially VM - use cases it is not necessary), see PR [#2844](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2844). + +This goes along with some changes in Blockchain and VM API: + +- Blockchain: There is a new constructor option `genesisStateRoot` beside `genesisBlock` and `genesisState` for an alternative condensed way to provide the genesis state root directly +- Blockchain: `genesisState(): GenesisState` method has been replaced by the async `getGenesisStateRoot(chainId: Chain): Promise` method +- VM: `activateGenesisState?: boolean` constructor option has been replaced with a `genesisState?: GenesisState` option + +### Genesis in v6 + +For the v6 release responsibility for setting up a custom genesis state moved from the [Common](../common/) library to the `Blockchain` package, see PR [#1924](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1924) for some work context. A genesis state can be set along `Blockchain` creation by passing in a custom `genesisBlock` and `genesisState`. For `mainnet` and the official test networks like `sepolia` or `goerli` genesis is already provided with the block data coming from `@ethereumjs/common`. The genesis state is being integrated in the `Blockchain` library (see `genesisStates` folder). @@ -104,16 +120,26 @@ common.setForkHashes(genesisBlockHash) The genesis block from the initialized `Blockchain` can be retrieved via the `Blockchain.genesisBlock` getter. For creating a genesis block from the params in `@ethereumjs/common`, the `createGenesisBlock(stateRoot: Buffer): Block` method can be used. -## EIP-1559 Support +## Supported Blocks and Tx Types + +### EIP-1559 Support This library supports the handling of `EIP-1559` blocks and transactions starting with the `v5.3.0` release. -### EIP-4844 Shard Blob Transactions Support (experimental) +### EIP-4844 Shard Blob Transactions Support -This library supports an experimental version of the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [01d3209](https://github.com/ethereum/EIPs/commit/01d320998d1d53d95f347b5f43feaf606f230703) EIP version from February 8, 2023 and deployed along `eip4844-devnet-4` (January 2023) starting with `v6.2.0`. +This library supports the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [b9a5a11](https://github.com/ethereum/EIPs/commit/b9a5a117ab7e1dc18f937841d00598b527c306e7) EIP version from July 2023 deployed along [4844-devnet-7](https://github.com/ethpandaops/4844-testnet) (July 2023), see PR [#2349](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2349) and following. + +**Note:** 4844 support is not yet completely stable and there will still be (4844-)breaking changes along all types of library releases. The blockchain library now allows for blob transactions to be validated and included in a chain where EIP-4844 activated either by hardfork or standalone EIP (see latest tx library release for additional details). +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + ## API ### Docs @@ -165,7 +191,7 @@ The following is an example for a logger run: Run with the clique logger: ```shell -DEBUG=blockchain:clique ts-node test.ts +DEBUG=ethjs,blockchain:clique ts-node test.ts ``` ## EthereumJS diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index b26d514274..7206be795d 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/blockchain", - "version": "6.2.2", + "version": "7.0.0-rc.1", "description": "A module to store and interact with blocks", "keywords": [ "ethereum", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 607ea9f760..415b75d57e 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -58,7 +58,7 @@ }, "dependencies": { "@ethereumjs/block": "5.0.0-rc.1", - "@ethereumjs/blockchain": "6.2.2", + "@ethereumjs/blockchain": "7.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "2.0.5", diff --git a/packages/client/package.json b/packages/client/package.json index 81f3e46121..d66f568e46 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -58,7 +58,7 @@ }, "dependencies": { "@ethereumjs/block": "5.0.0-rc.1", - "@ethereumjs/blockchain": "6.2.2", + "@ethereumjs/blockchain": "7.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "2.0.5", diff --git a/packages/vm/package.json b/packages/vm/package.json index 95a9d61719..e88860b6e9 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -63,7 +63,7 @@ }, "dependencies": { "@ethereumjs/block": "5.0.0-rc.1", - "@ethereumjs/blockchain": "^6.2.2", + "@ethereumjs/blockchain": "7.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/evm": "^1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", From 5861f9425307a36354c1bc8d28cc631b2cbfc09b Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 13:28:49 +0200 Subject: [PATCH 20/38] Rebuild docs (Blockchain) --- packages/blockchain/docs/README.md | 31 +-- .../blockchain/docs/classes/Blockchain.md | 213 +++++++----------- .../docs/classes/CliqueConsensus.md | 43 ++-- .../docs/classes/EthashConsensus.md | 20 +- .../blockchain/docs/interfaces/Consensus.md | 14 +- .../docs/interfaces/ConsensusOptions.md | 21 ++ .../docs/interfaces/GenesisOptions.md | 78 +++++++ .../docs/interfaces/blockchaininterface.md | 107 +++++---- .../docs/interfaces/blockchainoptions.md | 56 +++-- 9 files changed, 341 insertions(+), 242 deletions(-) create mode 100644 packages/blockchain/docs/interfaces/ConsensusOptions.md create mode 100644 packages/blockchain/docs/interfaces/GenesisOptions.md diff --git a/packages/blockchain/docs/README.md b/packages/blockchain/docs/README.md index 6c40156c62..29ced28fcc 100644 --- a/packages/blockchain/docs/README.md +++ b/packages/blockchain/docs/README.md @@ -16,29 +16,34 @@ - [BlockchainInterface](interfaces/BlockchainInterface.md) - [BlockchainOptions](interfaces/BlockchainOptions.md) - [Consensus](interfaces/Consensus.md) +- [ConsensusOptions](interfaces/ConsensusOptions.md) +- [GenesisOptions](interfaces/GenesisOptions.md) -### Functions +### Type Aliases -- [parseGethGenesisState](README.md#parsegethgenesisstate) +- [OnBlock](README.md#onblock) -## Functions +## Type Aliases -### parseGethGenesisState +### OnBlock -▸ **parseGethGenesisState**(`json`): `GenesisState` +Ƭ **OnBlock**: (`block`: `Block`, `reorg`: `boolean`) => `Promise`<`void`\> \| `void` -Parses the geth genesis state into Blockchain GenesisState +#### Type declaration -#### Parameters +▸ (`block`, `reorg`): `Promise`<`void`\> \| `void` -| Name | Type | Description | -| :------ | :------ | :------ | -| `json` | `any` | representing the `alloc` key in a Geth genesis file | +##### Parameters -#### Returns +| Name | Type | +| :------ | :------ | +| `block` | `Block` | +| `reorg` | `boolean` | -`GenesisState` +##### Returns + +`Promise`<`void`\> \| `void` #### Defined in -[utils.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/utils.ts#L9) +[types.ts:6](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L6) diff --git a/packages/blockchain/docs/classes/Blockchain.md b/packages/blockchain/docs/classes/Blockchain.md index 69a58a0ee4..f6afb57954 100644 --- a/packages/blockchain/docs/classes/Blockchain.md +++ b/packages/blockchain/docs/classes/Blockchain.md @@ -12,7 +12,7 @@ This class stores and interacts with blocks. ### Properties -- [\_common](Blockchain.md#_common) +- [common](Blockchain.md#common) - [consensus](Blockchain.md#consensus) - [db](Blockchain.md#db) - [dbManager](Blockchain.md#dbmanager) @@ -24,16 +24,13 @@ This class stores and interacts with blocks. ### Methods - [checkAndTransitionHardForkByNumber](Blockchain.md#checkandtransitionhardforkbynumber) -- [copy](Blockchain.md#copy) - [createGenesisBlock](Blockchain.md#creategenesisblock) - [delBlock](Blockchain.md#delblock) -- [genesisState](Blockchain.md#genesisstate) - [getBlock](Blockchain.md#getblock) - [getBlocks](Blockchain.md#getblocks) - [getCanonicalHeadBlock](Blockchain.md#getcanonicalheadblock) - [getCanonicalHeadHeader](Blockchain.md#getcanonicalheadheader) - [getCanonicalHeader](Blockchain.md#getcanonicalheader) -- [getHead](Blockchain.md#gethead) - [getIteratorHead](Blockchain.md#getiteratorhead) - [getParentTD](Blockchain.md#getparenttd) - [getTotalDifficulty](Blockchain.md#gettotaldifficulty) @@ -46,6 +43,7 @@ This class stores and interacts with blocks. - [safeNumberToHash](Blockchain.md#safenumbertohash) - [selectNeededHashes](Blockchain.md#selectneededhashes) - [setIteratorHead](Blockchain.md#setiteratorhead) +- [shallowCopy](Blockchain.md#shallowcopy) - [validateBlock](Blockchain.md#validateblock) - [validateHeader](Blockchain.md#validateheader) - [create](Blockchain.md#create) @@ -53,13 +51,13 @@ This class stores and interacts with blocks. ## Properties -### \_common +### common -• **\_common**: `Common` +• `Readonly` **common**: `Common` #### Defined in -[blockchain.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L53) +[blockchain.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L75) ___ @@ -73,17 +71,17 @@ ___ #### Defined in -[blockchain.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L25) +[blockchain.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L47) ___ ### db -• **db**: `AbstractLevel`<`string` \| `Uint8Array` \| `Buffer`, `string` \| `Buffer`, `string` \| `Buffer`\> +• **db**: `DB`<`string` \| `Uint8Array`, `string` \| `Uint8Array` \| `DBObject`\> #### Defined in -[blockchain.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L26) +[blockchain.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L48) ___ @@ -93,7 +91,7 @@ ___ #### Defined in -[blockchain.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L27) +[blockchain.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L49) ## Accessors @@ -109,7 +107,7 @@ The genesis Block for the blockchain. #### Defined in -[blockchain.ts:1299](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1299) +[blockchain.ts:1318](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1318) ## Methods @@ -121,7 +119,7 @@ The genesis Block for the blockchain. | Name | Type | | :------ | :------ | -| `number` | `bigint` | +| `number` | `BigIntLike` | | `td?` | `BigIntLike` | | `timestamp?` | `BigIntLike` | @@ -131,35 +129,7 @@ The genesis Block for the blockchain. #### Defined in -[blockchain.ts:1236](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1236) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`Blockchain`](Blockchain.md) - -Returns a deep copy of this [Blockchain](Blockchain.md) instance. - -Note: this does not make a copy of the underlying db -since it is unknown if the source is on disk or in memory. -This should not be a significant issue in most usage since -the queries will only reflect the instance's known data. -If you would like this copied blockchain to use another db -set the [db](Blockchain.md#db) of this returned instance to a copy of -the original. - -#### Returns - -[`Blockchain`](Blockchain.md) - -#### Implementation of - -[BlockchainInterface](../interfaces/BlockchainInterface.md).[copy](../interfaces/BlockchainInterface.md#copy) - -#### Defined in - -[blockchain.ts:173](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L173) +[blockchain.ts:1255](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1255) ___ @@ -173,7 +143,7 @@ Creates a genesis Block for the blockchain with params from Common.genesis | Name | Type | Description | | :------ | :------ | :------ | -| `stateRoot` | `Buffer` | The genesis stateRoot | +| `stateRoot` | `Uint8Array` | The genesis stateRoot | #### Returns @@ -181,7 +151,7 @@ Creates a genesis Block for the blockchain with params from Common.genesis #### Defined in -[blockchain.ts:1308](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1308) +[blockchain.ts:1327](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1327) ___ @@ -202,7 +172,7 @@ we can be sure it is correct). | Name | Type | Description | | :------ | :------ | :------ | -| `blockHash` | `Buffer` | The hash of the block to be deleted | +| `blockHash` | `Uint8Array` | The hash of the block to be deleted | #### Returns @@ -214,28 +184,7 @@ we can be sure it is correct). #### Defined in -[blockchain.ts:867](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L867) - -___ - -### genesisState - -▸ **genesisState**(): `GenesisState` - -Returns the genesis state of the blockchain. -All values are provided as hex-prefixed strings. - -#### Returns - -`GenesisState` - -#### Implementation of - -[BlockchainInterface](../interfaces/BlockchainInterface.md).[genesisState](../interfaces/BlockchainInterface.md#genesisstate) - -#### Defined in - -[blockchain.ts:1342](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1342) +[blockchain.ts:856](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L856) ___ @@ -250,7 +199,7 @@ block will be the canonical block at that number in the chain | Name | Type | Description | | :------ | :------ | :------ | -| `blockId` | `number` \| `bigint` \| `Buffer` | The block's hash or number. If a hash is provided, then this will be immediately looked up, otherwise it will wait until we have unlocked the DB | +| `blockId` | `number` \| `bigint` \| `Uint8Array` | The block's hash or number. If a hash is provided, then this will be immediately looked up, otherwise it will wait until we have unlocked the DB | #### Returns @@ -262,7 +211,7 @@ block will be the canonical block at that number in the chain #### Defined in -[blockchain.ts:737](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L737) +[blockchain.ts:724](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L724) ___ @@ -277,7 +226,7 @@ Looks up many blocks relative to blockId Note: due to `GetBlockHeaders | Name | Type | Description | | :------ | :------ | :------ | -| `blockId` | `number` \| `bigint` \| `Buffer` | The block's hash or number | +| `blockId` | `number` \| `bigint` \| `Uint8Array` | The block's hash or number | | `maxBlocks` | `number` | Max number of blocks to return | | `skip` | `number` | Number of blocks to skip apart | | `reverse` | `boolean` | Fetch blocks in reverse | @@ -288,7 +237,7 @@ Looks up many blocks relative to blockId Note: due to `GetBlockHeaders #### Defined in -[blockchain.ts:785](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L785) +[blockchain.ts:773](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L773) ___ @@ -308,7 +257,7 @@ Returns the latest full block in the canonical chain. #### Defined in -[blockchain.ts:356](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L356) +[blockchain.ts:333](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L333) ___ @@ -324,7 +273,7 @@ Returns the latest header in the canonical chain. #### Defined in -[blockchain.ts:345](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L345) +[blockchain.ts:322](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L322) ___ @@ -346,37 +295,7 @@ Gets a header by number. Header must be in the canonical chain #### Defined in -[blockchain.ts:1273](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1273) - -___ - -### getHead - -▸ **getHead**(`name?`): `Promise`<`Block`\> - -Returns the specified iterator head. - -**`Deprecated`** - -use [getIteratorHead](Blockchain.md#getiteratorhead) instead. -Note that [getIteratorHead](Blockchain.md#getiteratorhead) doesn't return -the `headHeader` but the genesis hash as an initial iterator -head value (now matching the behavior of [iterator](Blockchain.md#iterator) -on a first run) - -#### Parameters - -| Name | Type | Default value | Description | -| :------ | :------ | :------ | :------ | -| `name` | `string` | `'vm'` | Optional name of the iterator head (default: 'vm') | - -#### Returns - -`Promise`<`Block`\> - -#### Defined in - -[blockchain.ts:332](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L332) +[blockchain.ts:1296](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1296) ___ @@ -386,7 +305,7 @@ ___ Returns the specified iterator head. -This function replaces the old [getHead](Blockchain.md#gethead) method. Note that +This function replaces the old Blockchain.getHead() method. Note that the function deviates from the old behavior and returns the genesis hash instead of the current head block if an iterator has not been run. This matches the behavior of [iterator](Blockchain.md#iterator). @@ -407,7 +326,7 @@ has not been run. This matches the behavior of [iterator](Blockchain.md#iterator #### Defined in -[blockchain.ts:312](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L312) +[blockchain.ts:310](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L310) ___ @@ -429,7 +348,7 @@ Gets total difficulty for a header's parent, helpful for determining terminal bl #### Defined in -[blockchain.ts:771](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L771) +[blockchain.ts:759](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L759) ___ @@ -443,7 +362,7 @@ Gets total difficulty for a block specified by hash and number | Name | Type | | :------ | :------ | -| `hash` | `Buffer` | +| `hash` | `Uint8Array` | | `number?` | `bigint` | #### Returns @@ -456,7 +375,7 @@ Gets total difficulty for a block specified by hash and number #### Defined in -[blockchain.ts:760](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L760) +[blockchain.ts:745](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L745) ___ @@ -473,7 +392,7 @@ head can be retrieved using [getIteratorHead](Blockchain.md#getiteratorhead). | Name | Type | Description | | :------ | :------ | :------ | | `name` | `string` | Name of the state root head | -| `onBlock` | `OnBlock` | Function called on each block with params (block, reorg) | +| `onBlock` | [`OnBlock`](../README.md#onblock) | Function called on each block with params (block, reorg) | | `maxBlocks?` | `number` | How many blocks to run. By default, run all unprocessed blocks in the canonical chain. | | `releaseLockOnCallback?` | `boolean` | Do not lock the blockchain for running the callback (default: `false`) | @@ -489,7 +408,7 @@ number of blocks actually iterated #### Defined in -[blockchain.ts:965](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L965) +[blockchain.ts:957](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L957) ___ @@ -519,7 +438,7 @@ heads/hashes are overwritten. #### Defined in -[blockchain.ts:386](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L386) +[blockchain.ts:363](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L363) ___ @@ -546,7 +465,7 @@ chain is rebuilt and any stale heads/hashes are overwritten. #### Defined in -[blockchain.ts:372](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L372) +[blockchain.ts:349](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L349) ___ @@ -572,7 +491,7 @@ heads/hashes are overwritten. #### Defined in -[blockchain.ts:413](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L413) +[blockchain.ts:390](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L390) ___ @@ -599,7 +518,7 @@ chain is rebuilt and any stale heads/hashes are overwritten. #### Defined in -[blockchain.ts:399](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L399) +[blockchain.ts:376](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L376) ___ @@ -624,16 +543,16 @@ canonicalHead and cleans up canonical references greater than canonicalHead #### Defined in -[blockchain.ts:425](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L425) +[blockchain.ts:402](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L402) ___ ### safeNumberToHash -▸ **safeNumberToHash**(`number`): `Promise`<``false`` \| `Buffer`\> +▸ **safeNumberToHash**(`number`): `Promise`<``false`` \| `Uint8Array`\> -This method either returns a Buffer if there exists one in the DB or if it -does not exist (DB throws a `NotFoundError`) then return false If DB throws +This method either returns a Uint8Array if there exists one in the DB or if it +does not exist then return false If DB throws any other error, this function throws. #### Parameters @@ -644,17 +563,17 @@ any other error, this function throws. #### Returns -`Promise`<``false`` \| `Buffer`\> +`Promise`<``false`` \| `Uint8Array`\> #### Defined in -[blockchain.ts:1284](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1284) +[blockchain.ts:1310](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1310) ___ ### selectNeededHashes -▸ **selectNeededHashes**(`hashes`): `Promise`<`Buffer`[]\> +▸ **selectNeededHashes**(`hashes`): `Promise`<`Uint8Array`[]\> Given an ordered array, returns an array of hashes that are not in the blockchain yet. Uses binary search to find out what hashes are missing. @@ -664,15 +583,15 @@ Therefore, the array needs to be ordered upon number. | Name | Type | Description | | :------ | :------ | :------ | -| `hashes` | `Buffer`[] | Ordered array of hashes (ordered on `number`). | +| `hashes` | `Uint8Array`[] | Ordered array of hashes (ordered on `number`). | #### Returns -`Promise`<`Buffer`[]\> +`Promise`<`Uint8Array`[]\> #### Defined in -[blockchain.ts:827](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L827) +[blockchain.ts:815](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L815) ___ @@ -688,15 +607,47 @@ When calling the iterator, the iterator will start running the first child block | Name | Type | Description | | :------ | :------ | :------ | | `tag` | `string` | The tag to save the headHash to | -| `headHash` | `Buffer` | The head hash to save | +| `headHash` | `Uint8Array` | The head hash to save | #### Returns `Promise`<`void`\> +#### Implementation of + +[BlockchainInterface](../interfaces/BlockchainInterface.md).[setIteratorHead](../interfaces/BlockchainInterface.md#setiteratorhead) + +#### Defined in + +[blockchain.ts:1040](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1040) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`Blockchain`](Blockchain.md) + +Returns a deep copy of this [Blockchain](Blockchain.md) instance. + +Note: this does not make a copy of the underlying db +since it is unknown if the source is on disk or in memory. +This should not be a significant issue in most usage since +the queries will only reflect the instance's known data. +If you would like this copied blockchain to use another db +set the [db](Blockchain.md#db) of this returned instance to a copy of +the original. + +#### Returns + +[`Blockchain`](Blockchain.md) + +#### Implementation of + +[BlockchainInterface](../interfaces/BlockchainInterface.md).[shallowCopy](../interfaces/BlockchainInterface.md#shallowcopy) + #### Defined in -[blockchain.ts:1028](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L1028) +[blockchain.ts:197](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L197) ___ @@ -719,7 +670,7 @@ whether the block is internally consistent #### Defined in -[blockchain.ts:640](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L640) +[blockchain.ts:627](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L627) ___ @@ -757,7 +708,7 @@ It verifies the current block against the `parentHash`: #### Defined in -[blockchain.ts:580](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L580) +[blockchain.ts:560](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L560) ___ @@ -780,7 +731,7 @@ encouraged method to use when creating a blockchain object. #### Defined in -[blockchain.ts:65](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L65) +[blockchain.ts:87](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L87) ___ @@ -804,4 +755,4 @@ objects must be readable by Block.fromBlockData #### Defined in -[blockchain.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L78) +[blockchain.ts:101](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/blockchain.ts#L101) diff --git a/packages/blockchain/docs/classes/CliqueConsensus.md b/packages/blockchain/docs/classes/CliqueConsensus.md index 09894fd39c..684a2213fc 100644 --- a/packages/blockchain/docs/classes/CliqueConsensus.md +++ b/packages/blockchain/docs/classes/CliqueConsensus.md @@ -3,6 +3,10 @@ # Class: CliqueConsensus This class encapsulates Clique-related consensus functionality when used with the Blockchain class. +Note: reorgs which happen between epoch transitions, which change the internal voting state over the reorg +will result in failure and is currently not supported. +The hotfix for this could be: re-load the latest epoch block (this has the clique state in the extraData of the header) +Now replay all blocks on top of it. This should validate the chain up to the new/reorged tip which previously threw. ## Implements @@ -40,7 +44,7 @@ This class encapsulates Clique-related consensus functionality when used with th #### Defined in -[consensus/clique.ts:101](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L101) +[consensus/clique.ts:109](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L109) ## Properties @@ -56,7 +60,7 @@ On reorgs elements from the array are removed until BLOCK_NUMBER > REORG_BLOCK. #### Defined in -[consensus/clique.ts:99](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L99) +[consensus/clique.ts:107](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L107) ___ @@ -77,7 +81,7 @@ Always keep at least one item on the stack. #### Defined in -[consensus/clique.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L74) +[consensus/clique.ts:82](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L82) ___ @@ -100,7 +104,7 @@ On reorgs elements from the array are removed until BLOCK_NUMBER > REORG_BLOCK. #### Defined in -[consensus/clique.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L90) +[consensus/clique.ts:98](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L98) ___ @@ -114,7 +118,7 @@ ___ #### Defined in -[consensus/clique.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L52) +[consensus/clique.ts:60](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L60) ___ @@ -124,29 +128,35 @@ ___ #### Defined in -[consensus/clique.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L51) +[consensus/clique.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L59) ## Methods ### cliqueActiveSigners -▸ **cliqueActiveSigners**(): `Address`[] +▸ **cliqueActiveSigners**(`blockNum`): `Address`[] Returns a list with the current block signers +#### Parameters + +| Name | Type | +| :------ | :------ | +| `blockNum` | `bigint` | + #### Returns `Address`[] #### Defined in -[consensus/clique.ts:404](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L404) +[consensus/clique.ts:426](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L426) ___ ### cliqueSignerInTurn -▸ **cliqueSignerInTurn**(`signer`): `Promise`<`boolean`\> +▸ **cliqueSignerInTurn**(`signer`, `blockNum`): `Promise`<`boolean`\> Helper to determine if a signer is in or out of turn for the next block. @@ -155,6 +165,7 @@ Helper to determine if a signer is in or out of turn for the next block. | Name | Type | Description | | :------ | :------ | :------ | | `signer` | `Address` | The signer address | +| `blockNum` | `bigint` | - | #### Returns @@ -162,7 +173,7 @@ Helper to determine if a signer is in or out of turn for the next block. #### Defined in -[consensus/clique.ts:599](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L599) +[consensus/clique.ts:598](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L598) ___ @@ -188,7 +199,7 @@ Initialize genesis for consensus mechanism #### Defined in -[consensus/clique.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L118) +[consensus/clique.ts:127](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L127) ___ @@ -215,7 +226,7 @@ Update consensus on new block #### Defined in -[consensus/clique.ts:182](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L182) +[consensus/clique.ts:191](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L191) ___ @@ -227,7 +238,7 @@ ___ | Name | Type | Description | | :------ | :------ | :------ | -| `param` | `ConsensusOptions` | dictionary containin a [Blockchain](Blockchain.md) object Note: this method must be called before consensus checks are used or type errors will occur | +| `param` | [`ConsensusOptions`](../interfaces/ConsensusOptions.md) | dictionary containin a [Blockchain](Blockchain.md) object Note: this method must be called before consensus checks are used or type errors will occur | #### Returns @@ -239,7 +250,7 @@ ___ #### Defined in -[consensus/clique.ts:111](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L111) +[consensus/clique.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L119) ___ @@ -265,7 +276,7 @@ Validate block consensus parameters #### Defined in -[consensus/clique.ts:122](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L122) +[consensus/clique.ts:131](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L131) ___ @@ -289,4 +300,4 @@ ___ #### Defined in -[consensus/clique.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L153) +[consensus/clique.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/clique.ts#L162) diff --git a/packages/blockchain/docs/classes/EthashConsensus.md b/packages/blockchain/docs/classes/EthashConsensus.md index 7afb71a069..20a2dc750c 100644 --- a/packages/blockchain/docs/classes/EthashConsensus.md +++ b/packages/blockchain/docs/classes/EthashConsensus.md @@ -36,7 +36,7 @@ This class encapsulates Ethash-related consensus functionality when used with th #### Defined in -[consensus/ethash.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L17) +[consensus/ethash.ts:16](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L16) ## Properties @@ -46,7 +46,7 @@ This class encapsulates Ethash-related consensus functionality when used with th #### Defined in -[consensus/ethash.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L15) +[consensus/ethash.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L14) ___ @@ -60,7 +60,7 @@ ___ #### Defined in -[consensus/ethash.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L14) +[consensus/ethash.ts:13](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L13) ___ @@ -70,7 +70,7 @@ ___ #### Defined in -[consensus/ethash.ts:13](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L13) +[consensus/ethash.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L12) ## Methods @@ -90,7 +90,7 @@ Initialize genesis for consensus mechanism #### Defined in -[consensus/ethash.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L45) +[consensus/ethash.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L44) ___ @@ -110,7 +110,7 @@ Update consensus on new block #### Defined in -[consensus/ethash.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L50) +[consensus/ethash.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L49) ___ @@ -124,7 +124,7 @@ Set up consensus mechanism | Name | Type | | :------ | :------ | -| `__namedParameters` | `ConsensusOptions` | +| `__namedParameters` | [`ConsensusOptions`](../interfaces/ConsensusOptions.md) | #### Returns @@ -136,7 +136,7 @@ Set up consensus mechanism #### Defined in -[consensus/ethash.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L46) +[consensus/ethash.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L45) ___ @@ -162,7 +162,7 @@ Validate block consensus parameters #### Defined in -[consensus/ethash.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L21) +[consensus/ethash.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L20) ___ @@ -188,4 +188,4 @@ Checks that the block's `difficulty` matches the canonical difficulty of the par #### Defined in -[consensus/ethash.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L35) +[consensus/ethash.ts:34](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/ethash.ts#L34) diff --git a/packages/blockchain/docs/interfaces/Consensus.md b/packages/blockchain/docs/interfaces/Consensus.md index 0ab0390500..b6b6e3987b 100644 --- a/packages/blockchain/docs/interfaces/Consensus.md +++ b/packages/blockchain/docs/interfaces/Consensus.md @@ -32,7 +32,7 @@ Interface that a consensus class needs to implement. #### Defined in -[consensus/interface.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/interface.ts#L9) +[types.ts:184](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L184) ## Methods @@ -54,7 +54,7 @@ Initialize genesis for consensus mechanism #### Defined in -[consensus/interface.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/interface.ts#L14) +[types.ts:189](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L189) ___ @@ -78,7 +78,7 @@ Update consensus on new block #### Defined in -[consensus/interface.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/interface.ts#L35) +[types.ts:210](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L210) ___ @@ -92,7 +92,7 @@ Set up consensus mechanism | Name | Type | | :------ | :------ | -| `__namedParameters` | `ConsensusOptions` | +| `__namedParameters` | [`ConsensusOptions`](ConsensusOptions.md) | #### Returns @@ -100,7 +100,7 @@ Set up consensus mechanism #### Defined in -[consensus/interface.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/interface.ts#L19) +[types.ts:194](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L194) ___ @@ -122,7 +122,7 @@ Validate block consensus parameters #### Defined in -[consensus/interface.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/interface.ts#L25) +[types.ts:200](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L200) ___ @@ -142,4 +142,4 @@ ___ #### Defined in -[consensus/interface.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/consensus/interface.ts#L27) +[types.ts:202](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L202) diff --git a/packages/blockchain/docs/interfaces/ConsensusOptions.md b/packages/blockchain/docs/interfaces/ConsensusOptions.md new file mode 100644 index 0000000000..8cce93cdd4 --- /dev/null +++ b/packages/blockchain/docs/interfaces/ConsensusOptions.md @@ -0,0 +1,21 @@ +[@ethereumjs/blockchain](../README.md) / ConsensusOptions + +# Interface: ConsensusOptions + +Options when initializing a class that implements the Consensus interface. + +## Table of contents + +### Properties + +- [blockchain](ConsensusOptions.md#blockchain) + +## Properties + +### blockchain + +• **blockchain**: [`Blockchain`](../classes/Blockchain.md) + +#### Defined in + +[types.ts:221](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L221) diff --git a/packages/blockchain/docs/interfaces/GenesisOptions.md b/packages/blockchain/docs/interfaces/GenesisOptions.md new file mode 100644 index 0000000000..1f07fd815c --- /dev/null +++ b/packages/blockchain/docs/interfaces/GenesisOptions.md @@ -0,0 +1,78 @@ +[@ethereumjs/blockchain](../README.md) / GenesisOptions + +# Interface: GenesisOptions + +## Hierarchy + +- **`GenesisOptions`** + + ↳ [`BlockchainOptions`](BlockchainOptions.md) + +## Table of contents + +### Properties + +- [genesisBlock](GenesisOptions.md#genesisblock) +- [genesisState](GenesisOptions.md#genesisstate) +- [genesisStateRoot](GenesisOptions.md#genesisstateroot) + +## Properties + +### genesisBlock + +• `Optional` **genesisBlock**: `Block` + +The blockchain only initializes successfully if it has a genesis block. If +there is no block available in the DB and a `genesisBlock` is provided, +then the provided `genesisBlock` will be used as genesis. If no block is +present in the DB and no block is provided, then the genesis block as +provided from the `common` will be used. + +#### Defined in + +[types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L92) + +___ + +### genesisState + +• `Optional` **genesisState**: `GenesisState` + +If you are using a custom chain Common, pass the genesis state. + +Pattern 1 (with genesis state see GenesisState for format): + +```javascript +{ + '0x0...01': '0x100', // For EoA +} +``` + +Pattern 2 (with complex genesis state, containing contract accounts and storage). +Note that in AccountState there are two +accepted types. This allows to easily insert accounts in the genesis state: + +A complex genesis state with Contract and EoA states would have the following format: + +```javascript +{ + '0x0...01': '0x100', // For EoA + '0x0...02': ['0x1', '0xRUNTIME_BYTECODE', [[storageKey1, storageValue1], [storageKey2, storageValue2]]] // For contracts +} +``` + +#### Defined in + +[types.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L118) + +___ + +### genesisStateRoot + +• `Optional` **genesisStateRoot**: `Uint8Array` + +State root of the genesis state + +#### Defined in + +[types.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L123) diff --git a/packages/blockchain/docs/interfaces/blockchaininterface.md b/packages/blockchain/docs/interfaces/blockchaininterface.md index aa2ef3465e..731d4fb141 100644 --- a/packages/blockchain/docs/interfaces/blockchaininterface.md +++ b/packages/blockchain/docs/interfaces/blockchaininterface.md @@ -14,15 +14,15 @@ ### Methods -- [copy](BlockchainInterface.md#copy) - [delBlock](BlockchainInterface.md#delblock) -- [genesisState](BlockchainInterface.md#genesisstate) - [getBlock](BlockchainInterface.md#getblock) - [getCanonicalHeadBlock](BlockchainInterface.md#getcanonicalheadblock) - [getIteratorHead](BlockchainInterface.md#getiteratorhead) - [getTotalDifficulty](BlockchainInterface.md#gettotaldifficulty) - [iterator](BlockchainInterface.md#iterator) - [putBlock](BlockchainInterface.md#putblock) +- [setIteratorHead](BlockchainInterface.md#setiteratorhead) +- [shallowCopy](BlockchainInterface.md#shallowcopy) - [validateHeader](BlockchainInterface.md#validateheader) ## Properties @@ -33,26 +33,10 @@ #### Defined in -[types.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L10) +[types.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L9) ## Methods -### shallowCopy - -▸ **shallowCopy**(): [`BlockchainInterface`](BlockchainInterface.md) - -Returns a copy of the blockchain - -#### Returns - -[`BlockchainInterface`](BlockchainInterface.md) - -#### Defined in - -[types.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L50) - -___ - ### delBlock ▸ **delBlock**(`blockHash`): `Promise`<`void`\> @@ -64,7 +48,7 @@ deleted and any encountered heads are set to the parent block. | Name | Type | Description | | :------ | :------ | :------ | -| `blockHash` | `Buffer` | The hash of the block to be deleted | +| `blockHash` | `Uint8Array` | The hash of the block to be deleted | #### Returns @@ -72,24 +56,7 @@ deleted and any encountered heads are set to the parent block. #### Defined in -[types.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L24) - -___ - -### genesisState - -▸ `Optional` **genesisState**(): `GenesisState` - -Returns the genesis state of the blockchain. -All values are provided as hex-prefixed strings. - -#### Returns - -`GenesisState` - -#### Defined in - -[types.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L75) +[types.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L23) ___ @@ -103,7 +70,7 @@ Returns a block by its hash or number. | Name | Type | | :------ | :------ | -| `blockId` | `number` \| `bigint` \| `Buffer` | +| `blockId` | `number` \| `bigint` \| `Uint8Array` | #### Returns @@ -111,13 +78,13 @@ Returns a block by its hash or number. #### Defined in -[types.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L29) +[types.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L28) ___ ### getCanonicalHeadBlock -▸ `Optional` **getCanonicalHeadBlock**(): `Promise`<`Block`\> +▸ **getCanonicalHeadBlock**(): `Promise`<`Block`\> Returns the latest full block in the canonical chain. @@ -127,13 +94,13 @@ Returns the latest full block in the canonical chain. #### Defined in -[types.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L80) +[types.ts:81](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L81) ___ ### getIteratorHead -▸ `Optional` **getIteratorHead**(`name?`): `Promise`<`Block`\> +▸ **getIteratorHead**(`name?`): `Promise`<`Block`\> Returns the specified iterator head. @@ -149,7 +116,7 @@ Returns the specified iterator head. #### Defined in -[types.ts:64](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L64) +[types.ts:63](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L63) ___ @@ -163,7 +130,7 @@ Gets total difficulty for a block specified by hash and number | Name | Type | | :------ | :------ | -| `hash` | `Buffer` | +| `hash` | `Uint8Array` | | `number?` | `bigint` | #### Returns @@ -172,7 +139,7 @@ Gets total difficulty for a block specified by hash and number #### Defined in -[types.ts:69](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L69) +[types.ts:76](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L76) ___ @@ -188,7 +155,7 @@ the onBlock function on each block. | Name | Type | Description | | :------ | :------ | :------ | | `name` | `string` | Name of the state root head | -| `onBlock` | `OnBlock` | Function called on each block with params (block: Block, | +| `onBlock` | [`OnBlock`](../README.md#onblock) | Function called on each block with params (block: Block, | | `maxBlocks?` | `number` | optional maximum number of blocks to iterate through reorg: boolean) | | `releaseLockOnCallback?` | `boolean` | - | @@ -198,7 +165,7 @@ the onBlock function on each block. #### Defined in -[types.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L40) +[types.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L39) ___ @@ -220,7 +187,47 @@ Adds a block to the blockchain. #### Defined in -[types.ts:16](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L16) +[types.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L15) + +___ + +### setIteratorHead + +▸ **setIteratorHead**(`tag`, `headHash`): `Promise`<`void`\> + +Set header hash of a certain `tag`. +When calling the iterator, the iterator will start running the first child block after the header hash currently stored. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `tag` | `string` | The tag to save the headHash to | +| `headHash` | `Uint8Array` | The head hash to save | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[types.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L71) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`BlockchainInterface`](BlockchainInterface.md) + +Returns a shallow copy of the blockchain that may share state with the original + +#### Returns + +[`BlockchainInterface`](BlockchainInterface.md) + +#### Defined in + +[types.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L49) ___ @@ -243,4 +250,4 @@ Validates a block header, throwing if invalid. It is being validated against the #### Defined in -[types.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L57) +[types.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L56) diff --git a/packages/blockchain/docs/interfaces/blockchainoptions.md b/packages/blockchain/docs/interfaces/blockchainoptions.md index bbada7f0a2..921dbb5e5d 100644 --- a/packages/blockchain/docs/interfaces/blockchainoptions.md +++ b/packages/blockchain/docs/interfaces/blockchainoptions.md @@ -4,6 +4,12 @@ This are the options that the Blockchain constructor can receive. +## Hierarchy + +- [`GenesisOptions`](GenesisOptions.md) + + ↳ **`BlockchainOptions`** + ## Table of contents ### Properties @@ -13,6 +19,7 @@ This are the options that the Blockchain constructor can receive. - [db](BlockchainOptions.md#db) - [genesisBlock](BlockchainOptions.md#genesisblock) - [genesisState](BlockchainOptions.md#genesisstate) +- [genesisStateRoot](BlockchainOptions.md#genesisstateroot) - [hardforkByHeadBlockNumber](BlockchainOptions.md#hardforkbyheadblocknumber) - [validateBlocks](BlockchainOptions.md#validateblocks) - [validateConsensus](BlockchainOptions.md#validateconsensus) @@ -29,7 +36,7 @@ If not provided this defaults to chain `mainnet` and hardfork `chainstart` #### Defined in -[types.ts:93](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L93) +[types.ts:136](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L136) ___ @@ -41,25 +48,20 @@ Optional custom consensus that implements the [Consensus](Consensus.md) class #### Defined in -[types.ts:174](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L174) +[types.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L177) ___ ### db -• `Optional` **db**: `AbstractLevel`<`string` \| `Uint8Array` \| `Buffer`, `string` \| `Buffer`, `string` \| `Buffer`\> +• `Optional` **db**: `DB`<`string` \| `number` \| `Uint8Array`, `string` \| `Uint8Array` \| `DBObject`\> Database to store blocks and metadata. -Should be an `abstract-leveldown` compliant store -wrapped with `encoding-down`. -For example: - `levelup(encode(leveldown('./db1')))` -or use the `level` convenience package: - `new MemoryLevel('./db1')` +Can be any database implementation that adheres to the `DB` interface #### Defined in -[types.ts:115](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L115) +[types.ts:153](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L153) ___ @@ -73,9 +75,13 @@ then the provided `genesisBlock` will be used as genesis. If no block is present in the DB and no block is provided, then the genesis block as provided from the `common` will be used. +#### Inherited from + +[GenesisOptions](GenesisOptions.md).[genesisBlock](GenesisOptions.md#genesisblock) + #### Defined in -[types.ts:143](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L143) +[types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L92) ___ @@ -106,9 +112,29 @@ A complex genesis state with Contract and EoA states would have the following fo } ``` +#### Inherited from + +[GenesisOptions](GenesisOptions.md).[genesisState](GenesisOptions.md#genesisstate) + +#### Defined in + +[types.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L118) + +___ + +### genesisStateRoot + +• `Optional` **genesisStateRoot**: `Uint8Array` + +State root of the genesis state + +#### Inherited from + +[GenesisOptions](GenesisOptions.md).[genesisStateRoot](GenesisOptions.md#genesisstateroot) + #### Defined in -[types.ts:169](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L169) +[types.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L123) ___ @@ -126,7 +152,7 @@ Default: `false` (HF is set to whatever default HF is set by the Common instance #### Defined in -[types.ts:104](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L104) +[types.ts:147](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L147) ___ @@ -140,7 +166,7 @@ see Block#validate for details. #### Defined in -[types.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L134) +[types.ts:172](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L172) ___ @@ -158,4 +184,4 @@ Default: `true`. #### Defined in -[types.ts:126](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L126) +[types.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/src/types.ts#L164) From f5b686495c765890bb572c652fb119818df55ea0 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 13:47:58 +0200 Subject: [PATCH 21/38] Version bump, update upstream dependency versions, update README, added LICENSE file (Genesis) --- packages/client/package.json | 2 +- packages/genesis/LICENSE | 22 +++++++++++++ packages/genesis/README.md | 52 ++++++++++++++++++++++++++++++ packages/genesis/package.json | 4 +-- packages/statemanager/package.json | 2 +- packages/trie/package.json | 2 +- 6 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 packages/genesis/LICENSE diff --git a/packages/client/package.json b/packages/client/package.json index d66f568e46..688be9d7cc 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -63,7 +63,7 @@ "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", - "@ethereumjs/genesis": "0.0.1", + "@ethereumjs/genesis": "0.1.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "1.0.5", "@ethereumjs/trie": "6.0.0-rc.1", diff --git a/packages/genesis/LICENSE b/packages/genesis/LICENSE new file mode 100644 index 0000000000..20efd1b3e9 --- /dev/null +++ b/packages/genesis/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/packages/genesis/README.md b/packages/genesis/README.md index e69de29bb2..5a9dd312c0 100644 --- a/packages/genesis/README.md +++ b/packages/genesis/README.md @@ -0,0 +1,52 @@ +# @ethereumjs/genesis + +[![NPM Package][genesis-npm-badge]][genesis-npm-link] +[![GitHub Issues][genesis-issues-badge]][genesis-issues-link] +[![Actions Status][genesis-actions-badge]][genesis-actions-link] +[![Code Coverage][genesis-coverage-badge]][genesis-coverage-link] +[![Discord][discord-badge]][discord-link] + +Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. + +| A module to provide genesis states of well known networks. | +| ---------------------------------------------------------- | + +This module provides access to Ethereum genesis state for the following networks: + +- Mainnet +- Goerli +- Sepolia + +The package can be install with: + +```shell +npm i @ethereumjs/genesis +``` + +## Usage + +```typescript +import { getGenesis } from '@ethereumjs/genesis' +import { Chain } from '@ethereumjs/common' // or directly use chain ID + +const mainnetGenesis = getGenesis(Chain.Mainnet) +``` + +## EthereumJS + +See our organizational [documentation](https://ethereumjs.readthedocs.io) for an introduction to `EthereumJS` as well as information on current standards and best practices. If you want to join for work or carry out improvements on the libraries, please review our [contribution guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html) first. + +## License + +[MIT](https://opensource.org/licenses/MIT) + +[discord-badge]: https://img.shields.io/static/v1?logo=discord&label=discord&message=Join&color=blue +[discord-link]: https://discord.gg/TNwARpR +[genesis-npm-badge]: https://img.shields.io/npm/v/@ethereumjs/genesis.svg +[genesis-npm-link]: https://www.npmjs.com/package/@ethereumjs/genesis +[genesis-issues-badge]: https://img.shields.io/github/issues/ethereumjs/ethereumjs-monorepo/package:%20genesis?label=issues +[genesis-issues-link]: https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3A"package%3A+genesis" +[genesis-actions-badge]: https://github.com/ethereumjs/ethereumjs-monorepo/workflows/Genesis/badge.svg +[genesis-actions-link]: https://github.com/ethereumjs/ethereumjs-monorepo/actions?query=workflow%3A%22Genesis%22 +[genesis-coverage-badge]: https://codecov.io/gh/ethereumjs/ethereumjs-monorepo/branch/master/graph/badge.svg?flag=genesis +[genesis-coverage-link]: https://codecov.io/gh/ethereumjs/ethereumjs-monorepo/tree/master/packages/genesis diff --git a/packages/genesis/package.json b/packages/genesis/package.json index d490988afd..9d229d42b4 100644 --- a/packages/genesis/package.json +++ b/packages/genesis/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/genesis", - "version": "0.0.1", + "version": "0.1.0-rc.1", "description": "A module to provide genesis states of well known networks", "keywords": [ "ethereum", @@ -14,7 +14,7 @@ "type": "git", "url": "https://github.com/ethereumjs/ethereumjs-monorepo.git" }, - "license": "MPL-2.0", + "license": "MIT", "author": "g11tech ", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index 82f338e11e..dca23e26b6 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -58,7 +58,7 @@ }, "devDependencies": { "@ethereumjs/block": "5.0.0-rc.1", - "@ethereumjs/genesis": "^0.0.1", + "@ethereumjs/genesis": "0.1.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", "@types/tape": "^4.13.2", diff --git a/packages/trie/package.json b/packages/trie/package.json index db8b1cb7c9..2764942fcf 100644 --- a/packages/trie/package.json +++ b/packages/trie/package.json @@ -60,7 +60,7 @@ "readable-stream": "^3.6.0" }, "devDependencies": { - "@ethereumjs/genesis": "^0.0.1", + "@ethereumjs/genesis": "0.1.0-rc.1", "0x": "^4.9.1", "@types/benchmark": "^1.0.33", "abstract-level": "^1.0.3", From 4bc5b3eb71dbf6f9608f1463b71ade76b21d20cc Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 14:01:37 +0200 Subject: [PATCH 22/38] Version bump, update upstream dependency versions, update README (StateManager) --- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/evm/package.json | 2 +- packages/statemanager/README.md | 25 ++++++++++++++++--- packages/statemanager/package.json | 2 +- packages/vm/package.json | 2 +- 6 files changed, 27 insertions(+), 8 deletions(-) diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 415b75d57e..28b613eb5e 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -64,7 +64,7 @@ "@ethereumjs/ethash": "2.0.5", "@ethereumjs/evm": "1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/statemanager": "1.0.5", + "@ethereumjs/statemanager": "2.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", diff --git a/packages/client/package.json b/packages/client/package.json index 688be9d7cc..0e1687a301 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -65,7 +65,7 @@ "@ethereumjs/evm": "1.3.2", "@ethereumjs/genesis": "0.1.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/statemanager": "1.0.5", + "@ethereumjs/statemanager": "2.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", diff --git a/packages/evm/package.json b/packages/evm/package.json index 3156f645a1..7b289fe040 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -59,7 +59,7 @@ "rustbn-wasm": "^0.2.0" }, "devDependencies": { - "@ethereumjs/statemanager": "^1.0.5", + "@ethereumjs/statemanager": "2.0.0-rc.1", "@ethersproject/abi": "^5.0.12", "@types/benchmark": "^1.0.33", "@types/core-js": "^2.5.0", diff --git a/packages/statemanager/README.md b/packages/statemanager/README.md index dc64b8b36b..40c6e3bf02 100644 --- a/packages/statemanager/README.md +++ b/packages/statemanager/README.md @@ -8,8 +8,8 @@ Note: this README has been updated containing the changes from our next breaking release round [UNRELEASED] targeted for Summer 2023. See the README files from the [maintenance-v6](https://github.com/ethereumjs/ethereumjs-monorepo/tree/maintenance-v6/) branch for documentation matching our latest releases. -| TypeScript implementation of the Ethereum StateManager. | -| ------------------------------------------------------- | +| Library to provide high level access to Ethereum State | +| ------------------------------------------------------ | ## Installation @@ -29,14 +29,17 @@ The `StateManager` provides high-level access and manipulation methods to and fo The library includes a TypeScript interface `StateManager` to ensure a unified interface (e.g. when passed to the VM) as well as a concrete Trie-based implementation `DefaultStateManager` as well as an `EthersStateManager` implementation that sources state and history data from an external `ethers` provider. +It also includes a checkpoint/revert/commit mechanism to either persist or revert state changes and provides a sophisticated caching mechanism under the hood to reduce the need for direct state accesses. + ### `DefaultStateManager` Example ```typescript import { Account, Address } from '@ethereumjs/util' import { DefaultStateManager } from '@ethereumjs/statemanager' +import { hexToBytes } from '@ethereumjs/util' const stateManager = new DefaultStateManager() -const address = new Address(Buffer.from('a94f5374fce5edbc8e2a8697c15331677e6ebf0b', 'hex')) +const address = new Address(hexToBytes('0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b')) const account = new Account(BigInt(0), BigInt(1000)) await stateManager.checkpoint() await stateManager.putAccount(address, account) @@ -44,6 +47,16 @@ await stateManager.commit() await stateManager.flush() ``` +### Account and Storage Caches + +Starting with the v2 release the StateManager comes with a significantly more elaborate caching mechanism for account and storage caches. + +There are now two cache options available: an unbounded cache (`CacheType.ORDERED_MAP`) for short-lived usage scenarios (this one is the default cache) and a fixed-size cache (`CacheType.LRU`) for a long-lived large cache scenario. + +Caches now "survive" a flush operation and especially long-lived usage scenarios will benefit from increased performance by a growing and more "knowing" cache leading to less and less trie reads. + +Have a loot at the extended `CacheOptions` on how to use and leverage the new cache system. + ### `EthersStateManager` First, a simple example of usage: @@ -88,6 +101,12 @@ The `EthersStateManager` can be be used with an `ethers` `JsonRpcProvider` or on Refer to [this test script](./test/ethersStateManager.spec.ts) for complete examples of running transactions and blocks in the `vm` with data sourced from a provider. +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + ## API ### Docs diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index dca23e26b6..54eaf74517 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/statemanager", - "version": "1.0.5", + "version": "2.0.0-rc.1", "description": "An Ethereum statemanager implementation", "keywords": [ "ethereum", diff --git a/packages/vm/package.json b/packages/vm/package.json index e88860b6e9..3bfdfd7eb8 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -67,7 +67,7 @@ "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/evm": "^1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", - "@ethereumjs/statemanager": "^1.0.5", + "@ethereumjs/statemanager": "2.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", From 144b858856214198a01c85c2461da873e7866165 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 12 Jul 2023 14:02:01 +0200 Subject: [PATCH 23/38] Rebuild docs (StateManager) --- packages/statemanager/docs/README.md | 49 +- .../statemanager/docs/classes/AccountCache.md | 363 ++++++++++++ .../docs/classes/BaseStateManager.md | 334 ----------- .../docs/classes/DefaultStateManager.md | 377 +++++-------- .../docs/classes/EthersStateManager.md | 312 ++++------- .../statemanager/docs/classes/StorageCache.md | 394 +++++++++++++ packages/statemanager/docs/enums/CacheType.md | 30 + .../statemanager/docs/interfaces/CacheOpts.md | 30 + .../interfaces/DefaultStateManagerOpts.md | 74 +++ .../docs/interfaces/EthersStateManagerOpts.md | 6 +- .../docs/interfaces/StateAccess.md | 396 ------------- .../docs/interfaces/StateManager.md | 528 ------------------ 12 files changed, 1179 insertions(+), 1714 deletions(-) create mode 100644 packages/statemanager/docs/classes/AccountCache.md delete mode 100644 packages/statemanager/docs/classes/BaseStateManager.md create mode 100644 packages/statemanager/docs/classes/StorageCache.md create mode 100644 packages/statemanager/docs/enums/CacheType.md create mode 100644 packages/statemanager/docs/interfaces/CacheOpts.md create mode 100644 packages/statemanager/docs/interfaces/DefaultStateManagerOpts.md delete mode 100644 packages/statemanager/docs/interfaces/StateAccess.md delete mode 100644 packages/statemanager/docs/interfaces/StateManager.md diff --git a/packages/statemanager/docs/README.md b/packages/statemanager/docs/README.md index 8561754233..ad44bbc825 100644 --- a/packages/statemanager/docs/README.md +++ b/packages/statemanager/docs/README.md @@ -4,22 +4,27 @@ ## Table of contents +### Enumerations + +- [CacheType](enums/CacheType.md) + ### Classes -- [BaseStateManager](classes/BaseStateManager.md) +- [AccountCache](classes/AccountCache.md) - [DefaultStateManager](classes/DefaultStateManager.md) - [EthersStateManager](classes/EthersStateManager.md) +- [StorageCache](classes/StorageCache.md) ### Interfaces +- [CacheOpts](interfaces/CacheOpts.md) +- [DefaultStateManagerOpts](interfaces/DefaultStateManagerOpts.md) - [EthersStateManagerOpts](interfaces/EthersStateManagerOpts.md) -- [StateAccess](interfaces/StateAccess.md) -- [StateManager](interfaces/StateManager.md) ### Type Aliases -- [AccountFields](README.md#accountfields) - [Proof](README.md#proof) +- [StorageProof](README.md#storageproof) ### Variables @@ -27,16 +32,6 @@ ## Type Aliases -### AccountFields - -Ƭ **AccountFields**: `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> - -#### Defined in - -[interface.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L11) - -___ - ### Proof Ƭ **Proof**: `Object` @@ -51,17 +46,35 @@ ___ | `codeHash` | `PrefixedHexString` | | `nonce` | `PrefixedHexString` | | `storageHash` | `PrefixedHexString` | -| `storageProof` | `StorageProof`[] | +| `storageProof` | [`StorageProof`](README.md#storageproof)[] | + +#### Defined in + +[stateManager.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L41) + +___ + +### StorageProof + +Ƭ **StorageProof**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `key` | `PrefixedHexString` | +| `proof` | `PrefixedHexString`[] | +| `value` | `PrefixedHexString` | #### Defined in -[stateManager.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L29) +[stateManager.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L35) ## Variables ### CODEHASH\_PREFIX -• `Const` **CODEHASH\_PREFIX**: `Buffer` +• `Const` **CODEHASH\_PREFIX**: `Uint8Array` Prefix to distinguish between a contract deployed with code `0x80` and `RLP([])` (also having the value `0x80`). @@ -72,4 +85,4 @@ misbehaviour in the underlying trie library. #### Defined in -[stateManager.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L47) +[stateManager.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L102) diff --git a/packages/statemanager/docs/classes/AccountCache.md b/packages/statemanager/docs/classes/AccountCache.md new file mode 100644 index 0000000000..8a5fc9b804 --- /dev/null +++ b/packages/statemanager/docs/classes/AccountCache.md @@ -0,0 +1,363 @@ +[@ethereumjs/statemanager](../README.md) / AccountCache + +# Class: AccountCache + +## Hierarchy + +- `Cache` + + ↳ **`AccountCache`** + +## Table of contents + +### Constructors + +- [constructor](AccountCache.md#constructor) + +### Properties + +- [\_checkpoints](AccountCache.md#_checkpoints) +- [\_debug](AccountCache.md#_debug) +- [\_diffCache](AccountCache.md#_diffcache) +- [\_lruCache](AccountCache.md#_lrucache) +- [\_orderedMapCache](AccountCache.md#_orderedmapcache) +- [\_stats](AccountCache.md#_stats) + +### Methods + +- [\_saveCachePreState](AccountCache.md#_savecacheprestate) +- [checkpoint](AccountCache.md#checkpoint) +- [clear](AccountCache.md#clear) +- [commit](AccountCache.md#commit) +- [del](AccountCache.md#del) +- [flush](AccountCache.md#flush) +- [get](AccountCache.md#get) +- [put](AccountCache.md#put) +- [revert](AccountCache.md#revert) +- [size](AccountCache.md#size) +- [stats](AccountCache.md#stats) + +## Constructors + +### constructor + +• **new AccountCache**(`opts`) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `opts` | [`CacheOpts`](../interfaces/CacheOpts.md) | + +#### Overrides + +Cache.constructor + +#### Defined in + +[cache/account.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L36) + +## Properties + +### \_checkpoints + +• **\_checkpoints**: `number` = `0` + +#### Inherited from + +Cache.\_checkpoints + +#### Defined in + +[cache/cache.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/cache.ts#L9) + +___ + +### \_debug + +• **\_debug**: `Debugger` + +#### Inherited from + +Cache.\_debug + +#### Defined in + +[cache/cache.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/cache.ts#L7) + +___ + +### \_diffCache + +• **\_diffCache**: `Map`<`string`, `undefined` \| `AccountCacheElement`\>[] = `[]` + +Diff cache collecting the state of the cache +at the beginning of checkpoint height +(respectively: before a first modification) + +If the whole cache element is undefined (in contrast +to the account), the element didn't exist in the cache +before. + +#### Defined in + +[cache/account.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L35) + +___ + +### \_lruCache + +• **\_lruCache**: `undefined` \| `LRUCache`<`string`, `AccountCacheElement`, `unknown`\> + +#### Defined in + +[cache/account.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L23) + +___ + +### \_orderedMapCache + +• **\_orderedMapCache**: `undefined` \| `OrderedMap`<`string`, `AccountCacheElement`\> + +#### Defined in + +[cache/account.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L24) + +___ + +### \_stats + +• **\_stats**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `dels` | `number` | +| `hits` | `number` | +| `reads` | `number` | +| `size` | `number` | +| `writes` | `number` | + +#### Inherited from + +Cache.\_stats + +#### Defined in + +[cache/cache.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/cache.ts#L11) + +## Methods + +### \_saveCachePreState + +▸ **_saveCachePreState**(`cacheKeyHex`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `cacheKeyHex` | `string` | + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L51) + +___ + +### checkpoint + +▸ **checkpoint**(): `void` + +Marks current state of cache as checkpoint, which can +later on be reverted or committed. + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:214](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L214) + +___ + +### clear + +▸ **clear**(): `void` + +Clears cache. + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:256](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L256) + +___ + +### commit + +▸ **commit**(): `void` + +Commits to current state of cache (no effect on trie). + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:194](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L194) + +___ + +### del + +▸ **del**(`address`): `void` + +Marks address as deleted in cache. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `address` | `Address` | Address | + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:114](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L114) + +___ + +### flush + +▸ **flush**(): [`string`, `AccountCacheElement`][] + +Flushes cache by returning accounts that have been modified +or deleted and resetting the diff cache (at checkpoint height). + +#### Returns + +[`string`, `AccountCacheElement`][] + +#### Defined in + +[cache/account.ts:137](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L137) + +___ + +### get + +▸ **get**(`address`): `undefined` \| `AccountCacheElement` + +Returns the queried account or undefined if account doesn't exist + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `address` | `Address` | Address of account | + +#### Returns + +`undefined` \| `AccountCacheElement` + +#### Defined in + +[cache/account.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L91) + +___ + +### put + +▸ **put**(`address`, `account`): `void` + +Puts account to cache under its address. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `address` | `Address` | Address of account | +| `account` | `undefined` \| `Account` | Account or undefined if account doesn't exist in the trie | + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:69](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L69) + +___ + +### revert + +▸ **revert**(): `void` + +Revert changes to cache last checkpoint (no effect on trie). + +#### Returns + +`void` + +#### Defined in + +[cache/account.ts:166](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L166) + +___ + +### size + +▸ **size**(): `number` + +Returns the size of the cache + +#### Returns + +`number` + +#### Defined in + +[cache/account.ts:226](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L226) + +___ + +### stats + +▸ **stats**(`reset?`): `Object` + +Returns a dict with cache stats + +#### Parameters + +| Name | Type | Default value | +| :------ | :------ | :------ | +| `reset` | `boolean` | `true` | + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `dels` | `number` | +| `hits` | `number` | +| `reads` | `number` | +| `size` | `number` | +| `writes` | `number` | + +#### Defined in + +[cache/account.ts:238](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/account.ts#L238) diff --git a/packages/statemanager/docs/classes/BaseStateManager.md b/packages/statemanager/docs/classes/BaseStateManager.md deleted file mode 100644 index 36836144c9..0000000000 --- a/packages/statemanager/docs/classes/BaseStateManager.md +++ /dev/null @@ -1,334 +0,0 @@ -[@ethereumjs/statemanager](../README.md) / BaseStateManager - -# Class: BaseStateManager - -Abstract BaseStateManager class for the non-storage-backend -related functionality parts of a StateManager like keeping -track of accessed storage (`EIP-2929`) or touched accounts -(`EIP-158`). - -This is not a full StateManager implementation in itself but -can be used to ease implementing an own StateManager. - -Note that the implementation is pretty new (October 2021) -and we cannot guarantee a stable interface yet. - -## Hierarchy - -- **`BaseStateManager`** - - ↳ [`EthersStateManager`](EthersStateManager.md) - - ↳ [`DefaultStateManager`](DefaultStateManager.md) - -## Table of contents - -### Constructors - -- [constructor](BaseStateManager.md#constructor) - -### Properties - -- [\_cache](BaseStateManager.md#_cache) -- [\_debug](BaseStateManager.md#_debug) - -### Methods - -- [accountIsEmpty](BaseStateManager.md#accountisempty) -- [checkpoint](BaseStateManager.md#checkpoint) -- [commit](BaseStateManager.md#commit) -- [deleteAccount](BaseStateManager.md#deleteaccount) -- [flush](BaseStateManager.md#flush) -- [getAccount](BaseStateManager.md#getaccount) -- [getContractStorage](BaseStateManager.md#getcontractstorage) -- [modifyAccountFields](BaseStateManager.md#modifyaccountfields) -- [putAccount](BaseStateManager.md#putaccount) -- [putContractCode](BaseStateManager.md#putcontractcode) -- [putContractStorage](BaseStateManager.md#putcontractstorage) -- [revert](BaseStateManager.md#revert) - -## Constructors - -### constructor - -• **new BaseStateManager**(`_opts`) - -Needs to be called from the subclass constructor - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `_opts` | `DefaultStateManagerOpts` | - -#### Defined in - -[baseStateManager.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L38) - -## Properties - -### \_cache - -• **\_cache**: `Cache` - -#### Defined in - -[baseStateManager.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L23) - -___ - -### \_debug - -• **\_debug**: `Debugger` - -#### Defined in - -[baseStateManager.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L22) - -## Methods - -### accountIsEmpty - -▸ **accountIsEmpty**(`address`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[baseStateManager.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L97) - -___ - -### checkpoint - -▸ **checkpoint**(): `Promise`<`void`\> - -Checkpoints the current state of the StateManager instance. -State changes that follow can then be committed by calling -`commit` or `reverted` by calling rollback. - -Partial implementation, called from the subclass. - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:113](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L113) - -___ - -### commit - -▸ **commit**(): `Promise`<`void`\> - -Commits the current change-set to the instance since the -last call to checkpoint. - -Partial implementation, called from the subclass. - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L123) - -___ - -### deleteAccount - -▸ **deleteAccount**(`address`): `Promise`<`void`\> - -Deletes an account from state under the provided `address`. The account will also be removed from the state trie. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `address` | `Address` | Address of the account which should be deleted | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L90) - -___ - -### flush - -▸ **flush**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:139](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L139) - -___ - -### getAccount - -▸ **getAccount**(`address`): `Promise`<`Account`\> - -Gets the account associated with `address`. Returns an empty account if the account does not exist. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `address` | `Address` | Address of the `account` to get | - -#### Returns - -`Promise`<`Account`\> - -#### Defined in - -[baseStateManager.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L49) - -___ - -### getContractStorage - -▸ `Abstract` **getContractStorage**(`address`, `key`): `Promise`<`Buffer`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `key` | `Buffer` | - -#### Returns - -`Promise`<`Buffer`\> - -#### Defined in - -[baseStateManager.ts:103](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L103) - -___ - -### modifyAccountFields - -▸ **modifyAccountFields**(`address`, `accountFields`): `Promise`<`void`\> - -Gets the account associated with `address`, modifies the given account -fields, then saves the account into state. Account fields can include -`nonce`, `balance`, `storageRoot`, and `codeHash`. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `address` | `Address` | Address of the account to modify | -| `accountFields` | `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> | Object containing account fields and values to modify | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:77](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L77) - -___ - -### putAccount - -▸ **putAccount**(`address`, `account`): `Promise`<`void`\> - -Saves an account into state under the provided `address`. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `address` | `Address` | Address under which to store `account` | -| `account` | `Account` | The account to store | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L59) - -___ - -### putContractCode - -▸ `Abstract` **putContractCode**(`address`, `value`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `value` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L102) - -___ - -### putContractStorage - -▸ `Abstract` **putContractStorage**(`address`, `key`, `value`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `key` | `Buffer` | -| `value` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:104](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L104) - -___ - -### revert - -▸ **revert**(): `Promise`<`void`\> - -Reverts the current change-set to the instance since the -last call to checkpoint. - -Partial implementation , called from the subclass. - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[baseStateManager.ts:134](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L134) diff --git a/packages/statemanager/docs/classes/DefaultStateManager.md b/packages/statemanager/docs/classes/DefaultStateManager.md index 7114fcfe47..063a4556ec 100644 --- a/packages/statemanager/docs/classes/DefaultStateManager.md +++ b/packages/statemanager/docs/classes/DefaultStateManager.md @@ -11,15 +11,9 @@ and storage slots. The default state manager implementation uses a `@ethereumjs/trie` trie as a data backend. -## Hierarchy - -- [`BaseStateManager`](BaseStateManager.md) - - ↳ **`DefaultStateManager`** - ## Implements -- [`StateManager`](../interfaces/StateManager.md) +- `EVMStateManagerInterface` ## Table of contents @@ -29,22 +23,19 @@ The default state manager implementation uses a ### Properties -- [\_cache](DefaultStateManager.md#_cache) -- [\_debug](DefaultStateManager.md#_debug) -- [\_storageTries](DefaultStateManager.md#_storagetries) -- [\_trie](DefaultStateManager.md#_trie) +- [common](DefaultStateManager.md#common) +- [originalStorageCache](DefaultStateManager.md#originalstoragecache) ### Methods -- [accountExists](DefaultStateManager.md#accountexists) -- [accountIsEmpty](DefaultStateManager.md#accountisempty) - [checkpoint](DefaultStateManager.md#checkpoint) +- [clearCaches](DefaultStateManager.md#clearcaches) - [clearContractStorage](DefaultStateManager.md#clearcontractstorage) - [commit](DefaultStateManager.md#commit) -- [copy](DefaultStateManager.md#copy) - [deleteAccount](DefaultStateManager.md#deleteaccount) - [dumpStorage](DefaultStateManager.md#dumpstorage) - [flush](DefaultStateManager.md#flush) +- [generateCanonicalGenesis](DefaultStateManager.md#generatecanonicalgenesis) - [getAccount](DefaultStateManager.md#getaccount) - [getContractCode](DefaultStateManager.md#getcontractcode) - [getContractStorage](DefaultStateManager.md#getcontractstorage) @@ -57,6 +48,7 @@ The default state manager implementation uses a - [putContractStorage](DefaultStateManager.md#putcontractstorage) - [revert](DefaultStateManager.md#revert) - [setStateRoot](DefaultStateManager.md#setstateroot) +- [shallowCopy](DefaultStateManager.md#shallowcopy) - [verifyProof](DefaultStateManager.md#verifyproof) ## Constructors @@ -71,148 +63,73 @@ Instantiate the StateManager interface. | Name | Type | | :------ | :------ | -| `opts` | `DefaultStateManagerOpts` | - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[constructor](BaseStateManager.md#constructor) +| `opts` | [`DefaultStateManagerOpts`](../interfaces/DefaultStateManagerOpts.md) | #### Defined in -[stateManager.ts:85](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L85) +[stateManager.ts:172](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L172) ## Properties -### \_cache +### common -• **\_cache**: `Cache` - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[_cache](BaseStateManager.md#_cache) +• `Readonly` **common**: `Common` #### Defined in -[baseStateManager.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L23) +[stateManager.ts:155](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L155) ___ -### \_debug - -• **\_debug**: `Debugger` - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[_debug](BaseStateManager.md#_debug) - -#### Defined in - -[baseStateManager.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L22) - -___ - -### \_storageTries - -• **\_storageTries**: `Object` - -#### Index signature - -▪ [key: `string`]: `Trie` - -#### Defined in - -[stateManager.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L78) - -___ - -### \_trie - -• **\_trie**: `Trie` - -#### Defined in - -[stateManager.ts:77](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L77) - -## Methods - -### accountExists - -▸ **accountExists**(`address`): `Promise`<`boolean`\> - -Checks if the `account` corresponding to `address` -exists - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `address` | `Address` | Address of the `account` to check | +### originalStorageCache -#### Returns - -`Promise`<`boolean`\> +• **originalStorageCache**: `OriginalStorageCache` #### Implementation of -[StateManager](../interfaces/StateManager.md).[accountExists](../interfaces/StateManager.md#accountexists) +EVMStateManagerInterface.originalStorageCache #### Defined in -[stateManager.ts:511](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L511) +[stateManager.ts:145](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L145) -___ - -### accountIsEmpty +## Methods -▸ **accountIsEmpty**(`address`): `Promise`<`boolean`\> +### checkpoint -#### Parameters +▸ **checkpoint**(): `Promise`<`void`\> -| Name | Type | -| :------ | :------ | -| `address` | `Address` | +Checkpoints the current state of the StateManager instance. +State changes that follow can then be committed by calling +`commit` or `reverted` by calling rollback. #### Returns -`Promise`<`boolean`\> +`Promise`<`void`\> #### Implementation of -[StateManager](../interfaces/StateManager.md).[accountIsEmpty](../interfaces/StateManager.md#accountisempty) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[accountIsEmpty](BaseStateManager.md#accountisempty) +EVMStateManagerInterface.checkpoint #### Defined in -[baseStateManager.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L97) +[stateManager.ts:524](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L524) ___ -### checkpoint +### clearCaches -▸ **checkpoint**(): `Promise`<`void`\> +▸ **clearCaches**(): `void` -Checkpoints the current state of the StateManager instance. -State changes that follow can then be committed by calling -`commit` or `reverted` by calling rollback. +Clears all underlying caches #### Returns -`Promise`<`void`\> - -#### Implementation of - -[StateManager](../interfaces/StateManager.md).[checkpoint](../interfaces/StateManager.md#checkpoint) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[checkpoint](BaseStateManager.md#checkpoint) +`void` #### Defined in -[stateManager.ts:299](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L299) +[stateManager.ts:885](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L885) ___ @@ -234,11 +151,11 @@ Clears all storage entries for the account corresponding to `address`. #### Implementation of -[StateManager](../interfaces/StateManager.md).[clearContractStorage](../interfaces/StateManager.md#clearcontractstorage) +EVMStateManagerInterface.clearContractStorage #### Defined in -[stateManager.ts:287](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L287) +[stateManager.ts:507](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L507) ___ @@ -255,37 +172,11 @@ last call to checkpoint. #### Implementation of -[StateManager](../interfaces/StateManager.md).[commit](../interfaces/StateManager.md#commit) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[commit](BaseStateManager.md#commit) - -#### Defined in - -[stateManager.ts:308](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L308) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`StateManager`](../interfaces/StateManager.md) - -Copies the current instance of the `StateManager` -at the last fully committed point, i.e. as if all current -checkpoints were reverted. - -#### Returns - -[`StateManager`](../interfaces/StateManager.md) - -#### Implementation of - -[StateManager](../interfaces/StateManager.md).[copy](../interfaces/StateManager.md#copy) +EVMStateManagerInterface.commit #### Defined in -[stateManager.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L119) +[stateManager.ts:535](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L535) ___ @@ -293,7 +184,7 @@ ___ ▸ **deleteAccount**(`address`): `Promise`<`void`\> -Deletes an account from state under the provided `address`. The account will also be removed from the state trie. +Deletes an account from state under the provided `address`. #### Parameters @@ -307,15 +198,11 @@ Deletes an account from state under the provided `address`. The account will als #### Implementation of -[StateManager](../interfaces/StateManager.md).[deleteAccount](../interfaces/StateManager.md#deleteaccount) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[deleteAccount](BaseStateManager.md#deleteaccount) +EVMStateManagerInterface.deleteAccount #### Defined in -[baseStateManager.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L90) +[stateManager.ts:295](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L295) ___ @@ -341,11 +228,11 @@ Both are represented as hex strings without the `0x` prefix. #### Implementation of -[StateManager](../interfaces/StateManager.md).[dumpStorage](../interfaces/StateManager.md#dumpstorage) +EVMStateManagerInterface.dumpStorage #### Defined in -[stateManager.ts:479](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L479) +[stateManager.ts:778](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L778) ___ @@ -353,29 +240,50 @@ ___ ▸ **flush**(): `Promise`<`void`\> +Writes all cache items to the trie + #### Returns `Promise`<`void`\> -#### Implementation of +#### Defined in -[StateManager](../interfaces/StateManager.md).[flush](../interfaces/StateManager.md#flush) +[stateManager.ts:575](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L575) -#### Inherited from +___ + +### generateCanonicalGenesis + +▸ **generateCanonicalGenesis**(`initState`): `Promise`<`void`\> + +Initializes the provided genesis state into the state trie. +Will error if there are uncommitted checkpoints on the instance. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `initState` | `any` | address -> balance \| [balance, code, storage] | -[BaseStateManager](BaseStateManager.md).[flush](BaseStateManager.md#flush) +#### Returns + +`Promise`<`void`\> + +#### Implementation of + +EVMStateManagerInterface.generateCanonicalGenesis #### Defined in -[baseStateManager.ts:139](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L139) +[stateManager.ts:809](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L809) ___ ### getAccount -▸ **getAccount**(`address`): `Promise`<`Account`\> +▸ **getAccount**(`address`): `Promise`<`undefined` \| `Account`\> -Gets the account associated with `address`. Returns an empty account if the account does not exist. +Gets the account associated with `address` or `undefined` if account does not exist #### Parameters @@ -385,25 +293,21 @@ Gets the account associated with `address`. Returns an empty account if the acco #### Returns -`Promise`<`Account`\> +`Promise`<`undefined` \| `Account`\> #### Implementation of -[StateManager](../interfaces/StateManager.md).[getAccount](../interfaces/StateManager.md#getaccount) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[getAccount](BaseStateManager.md#getaccount) +EVMStateManagerInterface.getAccount #### Defined in -[baseStateManager.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L49) +[stateManager.ts:222](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L222) ___ ### getContractCode -▸ **getContractCode**(`address`): `Promise`<`Buffer`\> +▸ **getContractCode**(`address`): `Promise`<`Uint8Array`\> Gets the code corresponding to the provided `address`. @@ -415,24 +319,24 @@ Gets the code corresponding to the provided `address`. #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> - Resolves with the code corresponding to the provided address. -Returns an empty `Buffer` if the account has no associated code. +Returns an empty `Uint8Array` if the account has no associated code. #### Implementation of -[StateManager](../interfaces/StateManager.md).[getContractCode](../interfaces/StateManager.md#getcontractcode) +EVMStateManagerInterface.getContractCode #### Defined in -[stateManager.ts:154](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L154) +[stateManager.ts:343](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L343) ___ ### getContractStorage -▸ **getContractStorage**(`address`, `key`): `Promise`<`Buffer`\> +▸ **getContractStorage**(`address`, `key`): `Promise`<`Uint8Array`\> Gets the storage value associated with the provided `address` and `key`. This method returns the shortest representation of the stored value. @@ -442,27 +346,23 @@ the shortest representation of the stored value. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address of the account to get the storage for | -| `key` | `Buffer` | Key in the account's storage to get the value for. Must be 32 bytes long. | +| `key` | `Uint8Array` | Key in the account's storage to get the value for. Must be 32 bytes long. | #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> - The storage value for the account corresponding to the provided address at the provided key. -If this does not exist an empty `Buffer` is returned. +If this does not exist an empty `Uint8Array` is returned. #### Implementation of -[StateManager](../interfaces/StateManager.md).[getContractStorage](../interfaces/StateManager.md#getcontractstorage) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[getContractStorage](BaseStateManager.md#getcontractstorage) +EVMStateManagerInterface.getContractStorage #### Defined in -[stateManager.ts:206](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L206) +[stateManager.ts:393](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L393) ___ @@ -477,7 +377,7 @@ Get an EIP-1186 proof | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `address` | `Address` | `undefined` | address to get proof of | -| `storageSlots` | `Buffer`[] | `[]` | storage slots to get proof of | +| `storageSlots` | `Uint8Array`[] | `[]` | storage slots to get proof of | #### Returns @@ -485,17 +385,17 @@ Get an EIP-1186 proof #### Implementation of -[StateManager](../interfaces/StateManager.md).[getProof](../interfaces/StateManager.md#getproof) +EVMStateManagerInterface.getProof #### Defined in -[stateManager.ts:330](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L330) +[stateManager.ts:613](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L613) ___ ### getStateRoot -▸ **getStateRoot**(): `Promise`<`Buffer`\> +▸ **getStateRoot**(): `Promise`<`Uint8Array`\> Gets the state-root of the Merkle-Patricia trie representation of the state of this StateManager. Will error if there are uncommitted @@ -503,17 +403,17 @@ checkpoints on the instance. #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> - Returns the state-root of the `StateManager` #### Implementation of -[StateManager](../interfaces/StateManager.md).[getStateRoot](../interfaces/StateManager.md#getstateroot) +EVMStateManagerInterface.getStateRoot #### Defined in -[stateManager.ts:445](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L445) +[stateManager.ts:738](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L738) ___ @@ -527,7 +427,7 @@ Checks whether there is a state corresponding to a stateRoot | Name | Type | | :------ | :------ | -| `root` | `Buffer` | +| `root` | `Uint8Array` | #### Returns @@ -535,11 +435,11 @@ Checks whether there is a state corresponding to a stateRoot #### Implementation of -[StateManager](../interfaces/StateManager.md).[hasStateRoot](../interfaces/StateManager.md#hasstateroot) +EVMStateManagerInterface.hasStateRoot #### Defined in -[stateManager.ts:502](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L502) +[stateManager.ts:845](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L845) ___ @@ -564,15 +464,11 @@ fields, then saves the account into state. Account fields can include #### Implementation of -[StateManager](../interfaces/StateManager.md).[modifyAccountFields](../interfaces/StateManager.md#modifyaccountfields) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[modifyAccountFields](BaseStateManager.md#modifyaccountfields) +EVMStateManagerInterface.modifyAccountFields #### Defined in -[baseStateManager.ts:77](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L77) +[stateManager.ts:279](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L279) ___ @@ -587,7 +483,7 @@ Saves an account into state under the provided `address`. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address under which to store `account` | -| `account` | `Account` | The account to store | +| `account` | `undefined` \| `Account` | The account to store or undefined if to be deleted | #### Returns @@ -595,15 +491,11 @@ Saves an account into state under the provided `address`. #### Implementation of -[StateManager](../interfaces/StateManager.md).[putAccount](../interfaces/StateManager.md#putaccount) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[putAccount](BaseStateManager.md#putaccount) +EVMStateManagerInterface.putAccount #### Defined in -[baseStateManager.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L59) +[stateManager.ts:246](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L246) ___ @@ -619,7 +511,7 @@ corresponding to `address` to reference this. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address of the `account` to add the `code` for | -| `value` | `Buffer` | The value of the `code` | +| `value` | `Uint8Array` | The value of the `code` | #### Returns @@ -627,15 +519,11 @@ corresponding to `address` to reference this. #### Implementation of -[StateManager](../interfaces/StateManager.md).[putContractCode](../interfaces/StateManager.md#putcontractcode) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[putContractCode](BaseStateManager.md#putcontractcode) +EVMStateManagerInterface.putContractCode #### Defined in -[stateManager.ts:131](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L131) +[stateManager.ts:315](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L315) ___ @@ -651,8 +539,8 @@ corresponding to `address` at the provided `key`. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address to set a storage value for | -| `key` | `Buffer` | Key to set the value at. Must be 32 bytes long. | -| `value` | `Buffer` | Value to set at `key` for account corresponding to `address`. Cannot be more than 32 bytes. Leading zeros are stripped. If it is a empty or filled with zeros, deletes the value. | +| `key` | `Uint8Array` | Key to set the value at. Must be 32 bytes long. | +| `value` | `Uint8Array` | Value to set at `key` for account corresponding to `address`. Cannot be more than 32 bytes. Leading zeros are stripped. If it is a empty or filled with zeros, deletes the value. | #### Returns @@ -660,15 +548,11 @@ corresponding to `address` at the provided `key`. #### Implementation of -[StateManager](../interfaces/StateManager.md).[putContractStorage](../interfaces/StateManager.md#putcontractstorage) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[putContractStorage](BaseStateManager.md#putcontractstorage) +EVMStateManagerInterface.putContractStorage #### Defined in -[stateManager.ts:253](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L253) +[stateManager.ts:480](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L480) ___ @@ -685,21 +569,17 @@ last call to checkpoint. #### Implementation of -[StateManager](../interfaces/StateManager.md).[revert](../interfaces/StateManager.md#revert) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[revert](BaseStateManager.md#revert) +EVMStateManagerInterface.revert #### Defined in -[stateManager.ts:318](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L318) +[stateManager.ts:556](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L556) ___ ### setStateRoot -▸ **setStateRoot**(`stateRoot`): `Promise`<`void`\> +▸ **setStateRoot**(`stateRoot`, `clearCache?`): `Promise`<`void`\> Sets the state of the instance to that represented by the provided `stateRoot`. Will error if there are uncommitted @@ -708,9 +588,10 @@ the state trie. #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `stateRoot` | `Buffer` | The state-root to reset the instance to | +| Name | Type | Default value | Description | +| :------ | :------ | :------ | :------ | +| `stateRoot` | `Uint8Array` | `undefined` | The state-root to reset the instance to | +| `clearCache` | `boolean` | `true` | - | #### Returns @@ -718,11 +599,41 @@ the state trie. #### Implementation of -[StateManager](../interfaces/StateManager.md).[setStateRoot](../interfaces/StateManager.md#setstateroot) +EVMStateManagerInterface.setStateRoot #### Defined in -[stateManager.ts:457](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L457) +[stateManager.ts:750](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L750) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`DefaultStateManager`](DefaultStateManager.md) + +Copies the current instance of the `StateManager` +at the last fully committed point, i.e. as if all current +checkpoints were reverted. + +Note on caches: +1. For caches instantiated as an LRU cache type +the copy() method will instantiate with an ORDERED_MAP cache +instead, since copied instantances are mostly used in +short-term usage contexts and LRU cache instantation would create +a large overhead here. +2. Cache values are generally not copied along + +#### Returns + +[`DefaultStateManager`](DefaultStateManager.md) + +#### Implementation of + +EVMStateManagerInterface.shallowCopy + +#### Defined in + +[stateManager.ts:862](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L862) ___ @@ -742,10 +653,6 @@ Verify an EIP-1186 proof. Throws if proof is invalid, otherwise returns true. `Promise`<`boolean`\> -#### Implementation of - -[StateManager](../interfaces/StateManager.md).[verifyProof](../interfaces/StateManager.md#verifyproof) - #### Defined in -[stateManager.ts:368](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L368) +[stateManager.ts:661](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L661) diff --git a/packages/statemanager/docs/classes/EthersStateManager.md b/packages/statemanager/docs/classes/EthersStateManager.md index a8ebbf3bcd..e16cda6264 100644 --- a/packages/statemanager/docs/classes/EthersStateManager.md +++ b/packages/statemanager/docs/classes/EthersStateManager.md @@ -2,26 +2,9 @@ # Class: EthersStateManager -Abstract BaseStateManager class for the non-storage-backend -related functionality parts of a StateManager like keeping -track of accessed storage (`EIP-2929`) or touched accounts -(`EIP-158`). - -This is not a full StateManager implementation in itself but -can be used to ease implementing an own StateManager. - -Note that the implementation is pretty new (October 2021) -and we cannot guarantee a stable interface yet. - -## Hierarchy - -- [`BaseStateManager`](BaseStateManager.md) - - ↳ **`EthersStateManager`** - ## Implements -- [`StateManager`](../interfaces/StateManager.md) +- `EVMStateManagerInterface` ## Table of contents @@ -31,21 +14,19 @@ and we cannot guarantee a stable interface yet. ### Properties -- [\_cache](EthersStateManager.md#_cache) -- [\_debug](EthersStateManager.md#_debug) +- [originalStorageCache](EthersStateManager.md#originalstoragecache) ### Methods - [accountExists](EthersStateManager.md#accountexists) -- [accountIsEmpty](EthersStateManager.md#accountisempty) - [checkpoint](EthersStateManager.md#checkpoint) -- [clearCache](EthersStateManager.md#clearcache) +- [clearCaches](EthersStateManager.md#clearcaches) - [clearContractStorage](EthersStateManager.md#clearcontractstorage) - [commit](EthersStateManager.md#commit) -- [copy](EthersStateManager.md#copy) - [deleteAccount](EthersStateManager.md#deleteaccount) - [dumpStorage](EthersStateManager.md#dumpstorage) - [flush](EthersStateManager.md#flush) +- [generateCanonicalGenesis](EthersStateManager.md#generatecanonicalgenesis) - [getAccount](EthersStateManager.md#getaccount) - [getContractCode](EthersStateManager.md#getcontractcode) - [getContractStorage](EthersStateManager.md#getcontractstorage) @@ -59,6 +40,7 @@ and we cannot guarantee a stable interface yet. - [revert](EthersStateManager.md#revert) - [setBlockTag](EthersStateManager.md#setblocktag) - [setStateRoot](EthersStateManager.md#setstateroot) +- [shallowCopy](EthersStateManager.md#shallowcopy) ## Constructors @@ -72,41 +54,23 @@ and we cannot guarantee a stable interface yet. | :------ | :------ | | `opts` | [`EthersStateManagerOpts`](../interfaces/EthersStateManagerOpts.md) | -#### Overrides - -[BaseStateManager](BaseStateManager.md).[constructor](BaseStateManager.md#constructor) - #### Defined in -[ethersStateManager.ts:37](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L37) +[ethersStateManager.ts:30](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L30) ## Properties -### \_cache +### originalStorageCache -• **\_cache**: `Cache` - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[_cache](BaseStateManager.md#_cache) - -#### Defined in - -[ethersStateManager.ts:35](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L35) - -___ +• **originalStorageCache**: `OriginalStorageCache` -### \_debug - -• **\_debug**: `Debugger` - -#### Inherited from +#### Implementation of -[BaseStateManager](BaseStateManager.md).[_debug](BaseStateManager.md#_debug) +EVMStateManagerInterface.originalStorageCache #### Defined in -[baseStateManager.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L22) +[ethersStateManager.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L27) ## Methods @@ -126,41 +90,9 @@ Checks if an `account` exists at `address` `Promise`<`boolean`\> -#### Implementation of - -[StateManager](../interfaces/StateManager.md).[accountExists](../interfaces/StateManager.md#accountexists) - #### Defined in -[ethersStateManager.ts:203](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L203) - -___ - -### accountIsEmpty - -▸ **accountIsEmpty**(`address`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`boolean`\> - -#### Implementation of - -[StateManager](../interfaces/StateManager.md).[accountIsEmpty](../interfaces/StateManager.md#accountisempty) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[accountIsEmpty](BaseStateManager.md#accountisempty) - -#### Defined in - -[baseStateManager.ts:97](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L97) +[ethersStateManager.ts:198](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L198) ___ @@ -180,21 +112,17 @@ Partial implementation, called from the subclass. #### Implementation of -[StateManager](../interfaces/StateManager.md).[checkpoint](../interfaces/StateManager.md#checkpoint) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[checkpoint](BaseStateManager.md#checkpoint) +EVMStateManagerInterface.checkpoint #### Defined in -[ethersStateManager.ts:287](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L287) +[ethersStateManager.ts:348](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L348) ___ -### clearCache +### clearCaches -▸ **clearCache**(): `void` +▸ **clearCaches**(): `void` Clears the internal cache so all accounts, contract code, and storage slots will initially be retrieved from the provider @@ -205,7 +133,7 @@ initially be retrieved from the provider #### Defined in -[ethersStateManager.ts:89](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L89) +[ethersStateManager.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L91) ___ @@ -227,11 +155,11 @@ Clears all storage entries for the account corresponding to `address`. #### Implementation of -[StateManager](../interfaces/StateManager.md).[clearContractStorage](../interfaces/StateManager.md#clearcontractstorage) +EVMStateManagerInterface.clearContractStorage #### Defined in -[ethersStateManager.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L177) +[ethersStateManager.ts:172](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L172) ___ @@ -250,33 +178,11 @@ Partial implementation, called from the subclass. #### Implementation of -[StateManager](../interfaces/StateManager.md).[commit](../interfaces/StateManager.md#commit) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[commit](BaseStateManager.md#commit) +EVMStateManagerInterface.commit #### Defined in -[ethersStateManager.ts:297](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L297) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`EthersStateManager`](EthersStateManager.md) - -#### Returns - -[`EthersStateManager`](EthersStateManager.md) - -#### Implementation of - -[StateManager](../interfaces/StateManager.md).[copy](../interfaces/StateManager.md#copy) - -#### Defined in - -[ethersStateManager.ts:64](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L64) +[ethersStateManager.ts:359](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L359) ___ @@ -284,7 +190,7 @@ ___ ▸ **deleteAccount**(`address`): `Promise`<`void`\> -Deletes an account from state under the provided `address`. The account will also be removed from the state trie. +Deletes an account from state under the provided `address`. #### Parameters @@ -298,15 +204,11 @@ Deletes an account from state under the provided `address`. The account will als #### Implementation of -[StateManager](../interfaces/StateManager.md).[deleteAccount](../interfaces/StateManager.md#deleteaccount) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[deleteAccount](BaseStateManager.md#deleteaccount) +EVMStateManagerInterface.deleteAccount #### Defined in -[baseStateManager.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L90) +[ethersStateManager.ts:317](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L317) ___ @@ -332,11 +234,11 @@ Both are represented as `0x` prefixed hex strings. #### Implementation of -[StateManager](../interfaces/StateManager.md).[dumpStorage](../interfaces/StateManager.md#dumpstorage) +EVMStateManagerInterface.dumpStorage #### Defined in -[ethersStateManager.ts:188](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L188) +[ethersStateManager.ts:183](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L183) ___ @@ -348,23 +250,39 @@ ___ `Promise`<`void`\> -#### Implementation of +#### Defined in + +[ethersStateManager.ts:376](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L376) + +___ + +### generateCanonicalGenesis + +▸ **generateCanonicalGenesis**(`_initState`): `Promise`<`void`\> -[StateManager](../interfaces/StateManager.md).[flush](../interfaces/StateManager.md#flush) +#### Parameters + +| Name | Type | +| :------ | :------ | +| `_initState` | `any` | + +#### Returns + +`Promise`<`void`\> -#### Overrides +#### Implementation of -[BaseStateManager](BaseStateManager.md).[flush](BaseStateManager.md#flush) +EVMStateManagerInterface.generateCanonicalGenesis #### Defined in -[ethersStateManager.ts:313](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L313) +[ethersStateManager.ts:399](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L399) ___ ### getAccount -▸ **getAccount**(`address`): `Promise`<`Account`\> +▸ **getAccount**(`address`): `Promise`<`undefined` \| `Account`\> Gets the code corresponding to the provided `address`. @@ -372,32 +290,28 @@ Gets the code corresponding to the provided `address`. | Name | Type | Description | | :------ | :------ | :------ | -| `address` | `Address` | Address to get the `code` for | +| `address` | `Address` | Address to get the `account` for | #### Returns -`Promise`<`Account`\> +`Promise`<`undefined` \| `Account`\> - Resolves with the code corresponding to the provided address. -Returns an empty `Buffer` if the account has no associated code. +Returns an empty `Uint8Array` if the account has no associated code. #### Implementation of -[StateManager](../interfaces/StateManager.md).[getAccount](../interfaces/StateManager.md#getaccount) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[getAccount](BaseStateManager.md#getaccount) +EVMStateManagerInterface.getAccount #### Defined in -[ethersStateManager.ts:229](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L229) +[ethersStateManager.ts:224](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L224) ___ ### getContractCode -▸ **getContractCode**(`address`): `Promise`<`Buffer`\> +▸ **getContractCode**(`address`): `Promise`<`Uint8Array`\> Gets the code corresponding to the provided `address`. @@ -409,24 +323,24 @@ Gets the code corresponding to the provided `address`. #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> - Resolves with the code corresponding to the provided address. -Returns an empty `Buffer` if the account has no associated code. +Returns an empty `Uint8Array` if the account has no associated code. #### Implementation of -[StateManager](../interfaces/StateManager.md).[getContractCode](../interfaces/StateManager.md#getcontractcode) +EVMStateManagerInterface.getContractCode #### Defined in -[ethersStateManager.ts:101](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L101) +[ethersStateManager.ts:103](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L103) ___ ### getContractStorage -▸ **getContractStorage**(`address`, `key`): `Promise`<`Buffer`\> +▸ **getContractStorage**(`address`, `key`): `Promise`<`Uint8Array`\> Gets the storage value associated with the provided `address` and `key`. This method returns the shortest representation of the stored value. @@ -436,27 +350,23 @@ the shortest representation of the stored value. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address of the account to get the storage for | -| `key` | `Buffer` | Key in the account's storage to get the value for. Must be 32 bytes long. | +| `key` | `Uint8Array` | Key in the account's storage to get the value for. Must be 32 bytes long. | #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> - The storage value for the account corresponding to the provided address at the provided key. -If this does not exist an empty `Buffer` is returned. +If this does not exist an empty `Uint8Array` is returned. #### Implementation of -[StateManager](../interfaces/StateManager.md).[getContractStorage](../interfaces/StateManager.md#getcontractstorage) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[getContractStorage](BaseStateManager.md#getcontractstorage) +EVMStateManagerInterface.getContractStorage #### Defined in -[ethersStateManager.ts:130](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L130) +[ethersStateManager.ts:132](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L132) ___ @@ -471,7 +381,7 @@ Get an EIP-1186 proof from the provider | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `address` | `Address` | `undefined` | address to get proof of | -| `storageSlots` | `Buffer`[] | `[]` | storage slots to get proof of | +| `storageSlots` | `Uint8Array`[] | `[]` | storage slots to get proof of | #### Returns @@ -481,17 +391,17 @@ an EIP-1186 formatted proof #### Implementation of -[StateManager](../interfaces/StateManager.md).[getProof](../interfaces/StateManager.md#getproof) +EVMStateManagerInterface.getProof #### Defined in -[ethersStateManager.ts:270](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L270) +[ethersStateManager.ts:330](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L330) ___ ### getStateRoot -▸ **getStateRoot**(): `Promise`<`Buffer`\> +▸ **getStateRoot**(): `Promise`<`Uint8Array`\> **`Deprecated`** @@ -499,15 +409,15 @@ This method is not used by the Ethers State Manager and is a stub required by th #### Returns -`Promise`<`Buffer`\> +`Promise`<`Uint8Array`\> #### Implementation of -[StateManager](../interfaces/StateManager.md).[getStateRoot](../interfaces/StateManager.md#getstateroot) +EVMStateManagerInterface.getStateRoot #### Defined in -[ethersStateManager.ts:320](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L320) +[ethersStateManager.ts:383](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L383) ___ @@ -525,11 +435,11 @@ This method is not used by the Ethers State Manager and is a stub required by th #### Implementation of -[StateManager](../interfaces/StateManager.md).[hasStateRoot](../interfaces/StateManager.md#hasstateroot) +EVMStateManagerInterface.hasStateRoot #### Defined in -[ethersStateManager.ts:332](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L332) +[ethersStateManager.ts:395](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L395) ___ @@ -554,15 +464,11 @@ fields, then saves the account into state. Account fields can include #### Implementation of -[StateManager](../interfaces/StateManager.md).[modifyAccountFields](../interfaces/StateManager.md#modifyaccountfields) - -#### Inherited from - -[BaseStateManager](BaseStateManager.md).[modifyAccountFields](BaseStateManager.md#modifyaccountfields) +EVMStateManagerInterface.modifyAccountFields #### Defined in -[baseStateManager.ts:77](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/baseStateManager.ts#L77) +[ethersStateManager.ts:288](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L288) ___ @@ -577,7 +483,7 @@ Saves an account into state under the provided `address`. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address under which to store `account` | -| `account` | `Account` | The account to store | +| `account` | `undefined` \| `Account` | The account to store | #### Returns @@ -585,15 +491,11 @@ Saves an account into state under the provided `address`. #### Implementation of -[StateManager](../interfaces/StateManager.md).[putAccount](../interfaces/StateManager.md#putaccount) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[putAccount](BaseStateManager.md#putaccount) +EVMStateManagerInterface.putAccount #### Defined in -[ethersStateManager.ts:260](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L260) +[ethersStateManager.ts:264](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L264) ___ @@ -609,7 +511,7 @@ corresponding to `address` to reference this. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address of the `account` to add the `code` for | -| `value` | `Buffer` | The value of the `code` | +| `value` | `Uint8Array` | The value of the `code` | #### Returns @@ -617,15 +519,11 @@ corresponding to `address` to reference this. #### Implementation of -[StateManager](../interfaces/StateManager.md).[putContractCode](../interfaces/StateManager.md#putcontractcode) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[putContractCode](BaseStateManager.md#putcontractcode) +EVMStateManagerInterface.putContractCode #### Defined in -[ethersStateManager.ts:116](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L116) +[ethersStateManager.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L118) ___ @@ -641,8 +539,8 @@ corresponding to `address` at the provided `key`. | Name | Type | Description | | :------ | :------ | :------ | | `address` | `Address` | Address to set a storage value for | -| `key` | `Buffer` | Key to set the value at. Must be 32 bytes long. | -| `value` | `Buffer` | Value to set at `key` for account corresponding to `address`. Cannot be more than 32 bytes. Leading zeros are stripped. If it is empty or filled with zeros, deletes the value. | +| `key` | `Uint8Array` | Key to set the value at. Must be 32 bytes long. | +| `value` | `Uint8Array` | Value to set at `key` for account corresponding to `address`. Cannot be more than 32 bytes. Leading zeros are stripped. If it is empty or filled with zeros, deletes the value. | #### Returns @@ -650,11 +548,7 @@ corresponding to `address` at the provided `key`. #### Implementation of -[StateManager](../interfaces/StateManager.md).[putContractStorage](../interfaces/StateManager.md#putcontractstorage) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[putContractStorage](BaseStateManager.md#putcontractstorage) +EVMStateManagerInterface.putContractStorage #### Defined in @@ -677,15 +571,11 @@ Partial implementation , called from the subclass. #### Implementation of -[StateManager](../interfaces/StateManager.md).[revert](../interfaces/StateManager.md#revert) - -#### Overrides - -[BaseStateManager](BaseStateManager.md).[revert](BaseStateManager.md#revert) +EVMStateManagerInterface.revert #### Defined in -[ethersStateManager.ts:308](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L308) +[ethersStateManager.ts:370](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L370) ___ @@ -708,7 +598,7 @@ internal cache. #### Defined in -[ethersStateManager.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L80) +[ethersStateManager.ts:81](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L81) ___ @@ -724,7 +614,7 @@ This method is not used by the Ethers State Manager and is a stub required by th | Name | Type | | :------ | :------ | -| `_root` | `Buffer` | +| `_root` | `Uint8Array` | #### Returns @@ -732,8 +622,30 @@ This method is not used by the Ethers State Manager and is a stub required by th #### Implementation of -[StateManager](../interfaces/StateManager.md).[setStateRoot](../interfaces/StateManager.md#setstateroot) +EVMStateManagerInterface.setStateRoot + +#### Defined in + +[ethersStateManager.ts:390](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L390) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`EthersStateManager`](EthersStateManager.md) + +Note that the returned statemanager will share the same JsonRpcProvider as the original + +#### Returns + +[`EthersStateManager`](EthersStateManager.md) + +EthersStateManager + +#### Implementation of + +EVMStateManagerInterface.shallowCopy #### Defined in -[ethersStateManager.ts:327](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L327) +[ethersStateManager.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L59) diff --git a/packages/statemanager/docs/classes/StorageCache.md b/packages/statemanager/docs/classes/StorageCache.md new file mode 100644 index 0000000000..ef5690fd22 --- /dev/null +++ b/packages/statemanager/docs/classes/StorageCache.md @@ -0,0 +1,394 @@ +[@ethereumjs/statemanager](../README.md) / StorageCache + +# Class: StorageCache + +## Hierarchy + +- `Cache` + + ↳ **`StorageCache`** + +## Table of contents + +### Constructors + +- [constructor](StorageCache.md#constructor) + +### Properties + +- [\_checkpoints](StorageCache.md#_checkpoints) +- [\_debug](StorageCache.md#_debug) +- [\_diffCache](StorageCache.md#_diffcache) +- [\_lruCache](StorageCache.md#_lrucache) +- [\_orderedMapCache](StorageCache.md#_orderedmapcache) +- [\_stats](StorageCache.md#_stats) + +### Methods + +- [\_saveCachePreState](StorageCache.md#_savecacheprestate) +- [checkpoint](StorageCache.md#checkpoint) +- [clear](StorageCache.md#clear) +- [clearContractStorage](StorageCache.md#clearcontractstorage) +- [commit](StorageCache.md#commit) +- [del](StorageCache.md#del) +- [flush](StorageCache.md#flush) +- [get](StorageCache.md#get) +- [put](StorageCache.md#put) +- [revert](StorageCache.md#revert) +- [size](StorageCache.md#size) +- [stats](StorageCache.md#stats) + +## Constructors + +### constructor + +• **new StorageCache**(`opts`) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `opts` | [`CacheOpts`](../interfaces/CacheOpts.md) | + +#### Overrides + +Cache.constructor + +#### Defined in + +[cache/storage.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L36) + +## Properties + +### \_checkpoints + +• **\_checkpoints**: `number` = `0` + +#### Inherited from + +Cache.\_checkpoints + +#### Defined in + +[cache/cache.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/cache.ts#L9) + +___ + +### \_debug + +• **\_debug**: `Debugger` + +#### Inherited from + +Cache.\_debug + +#### Defined in + +[cache/cache.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/cache.ts#L7) + +___ + +### \_diffCache + +• **\_diffCache**: `Map`<`string`, `DiffStorageCacheMap`\>[] = `[]` + +Diff cache collecting the state of the cache +at the beginning of checkpoint height +(respectively: before a first modification) + +If the whole cache element is undefined (in contrast +to the account), the element didn't exist in the cache +before. + +#### Defined in + +[cache/storage.ts:34](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L34) + +___ + +### \_lruCache + +• **\_lruCache**: `undefined` \| `LRUCache`<`string`, `StorageCacheMap`, `unknown`\> + +#### Defined in + +[cache/storage.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L22) + +___ + +### \_orderedMapCache + +• **\_orderedMapCache**: `undefined` \| `OrderedMap`<`string`, `StorageCacheMap`\> + +#### Defined in + +[cache/storage.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L23) + +___ + +### \_stats + +• **\_stats**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `dels` | `number` | +| `hits` | `number` | +| `reads` | `number` | +| `size` | `number` | +| `writes` | `number` | + +#### Inherited from + +Cache.\_stats + +#### Defined in + +[cache/cache.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/cache.ts#L11) + +## Methods + +### \_saveCachePreState + +▸ **_saveCachePreState**(`addressHex`, `keyHex`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `addressHex` | `string` | +| `keyHex` | `string` | + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L54) + +___ + +### checkpoint + +▸ **checkpoint**(): `void` + +Marks current state of cache as checkpoint, which can +later on be reverted or committed. + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:305](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L305) + +___ + +### clear + +▸ **clear**(): `void` + +Clears cache. + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:347](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L347) + +___ + +### clearContractStorage + +▸ **clearContractStorage**(`address`): `void` + +Deletes all storage slots for address from the cache + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:181](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L181) + +___ + +### commit + +▸ **commit**(): `void` + +Commits to current state of cache (no effect on trie). + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:272](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L272) + +___ + +### del + +▸ **del**(`address`, `key`): `void` + +Marks storage key for address as deleted in cache. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `address` | `Address` | Address | +| `key` | `Uint8Array` | Storage key | + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:151](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L151) + +___ + +### flush + +▸ **flush**(): [`string`, `string`, `undefined` \| `Uint8Array`][] + +Flushes cache by returning storage slots that have been modified +or deleted and resetting the diff cache (at checkpoint height). + +#### Returns + +[`string`, `string`, `undefined` \| `Uint8Array`][] + +#### Defined in + +[cache/storage.ts:194](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L194) + +___ + +### get + +▸ **get**(`address`, `key`): `undefined` \| `Uint8Array` + +Returns the queried slot as the RLP encoded storage value +hexToBytes('0x80'): slot is known to be empty +undefined: slot is not in cache + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `address` | `Address` | Address of account | +| `key` | `Uint8Array` | Storage key | + +#### Returns + +`undefined` \| `Uint8Array` + +Storage value or undefined + +#### Defined in + +[cache/storage.ts:126](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L126) + +___ + +### put + +▸ **put**(`address`, `key`, `value`): `void` + +Puts storage value to cache under address_key cache key. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `address` | `Address` | Account address | +| `key` | `Uint8Array` | Storage key | +| `value` | `Uint8Array` | - | + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:88](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L88) + +___ + +### revert + +▸ **revert**(): `void` + +Revert changes to cache last checkpoint (no effect on trie). + +#### Returns + +`void` + +#### Defined in + +[cache/storage.ts:230](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L230) + +___ + +### size + +▸ **size**(): `number` + +Returns the size of the cache + +#### Returns + +`number` + +#### Defined in + +[cache/storage.ts:317](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L317) + +___ + +### stats + +▸ **stats**(`reset?`): `Object` + +Returns a dict with cache stats + +#### Parameters + +| Name | Type | Default value | +| :------ | :------ | :------ | +| `reset` | `boolean` | `true` | + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `dels` | `number` | +| `hits` | `number` | +| `reads` | `number` | +| `size` | `number` | +| `writes` | `number` | + +#### Defined in + +[cache/storage.ts:329](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/storage.ts#L329) diff --git a/packages/statemanager/docs/enums/CacheType.md b/packages/statemanager/docs/enums/CacheType.md new file mode 100644 index 0000000000..a42e97de64 --- /dev/null +++ b/packages/statemanager/docs/enums/CacheType.md @@ -0,0 +1,30 @@ +[@ethereumjs/statemanager](../README.md) / CacheType + +# Enumeration: CacheType + +## Table of contents + +### Enumeration Members + +- [LRU](CacheType.md#lru) +- [ORDERED\_MAP](CacheType.md#ordered_map) + +## Enumeration Members + +### LRU + +• **LRU** = ``"lru"`` + +#### Defined in + +[cache/types.ts:2](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/types.ts#L2) + +___ + +### ORDERED\_MAP + +• **ORDERED\_MAP** = ``"ordered_map"`` + +#### Defined in + +[cache/types.ts:3](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/types.ts#L3) diff --git a/packages/statemanager/docs/interfaces/CacheOpts.md b/packages/statemanager/docs/interfaces/CacheOpts.md new file mode 100644 index 0000000000..20620f48d3 --- /dev/null +++ b/packages/statemanager/docs/interfaces/CacheOpts.md @@ -0,0 +1,30 @@ +[@ethereumjs/statemanager](../README.md) / CacheOpts + +# Interface: CacheOpts + +## Table of contents + +### Properties + +- [size](CacheOpts.md#size) +- [type](CacheOpts.md#type) + +## Properties + +### size + +• **size**: `number` + +#### Defined in + +[cache/types.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/types.ts#L7) + +___ + +### type + +• **type**: [`CacheType`](../enums/CacheType.md) + +#### Defined in + +[cache/types.ts:8](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/cache/types.ts#L8) diff --git a/packages/statemanager/docs/interfaces/DefaultStateManagerOpts.md b/packages/statemanager/docs/interfaces/DefaultStateManagerOpts.md new file mode 100644 index 0000000000..8faf333411 --- /dev/null +++ b/packages/statemanager/docs/interfaces/DefaultStateManagerOpts.md @@ -0,0 +1,74 @@ +[@ethereumjs/statemanager](../README.md) / DefaultStateManagerOpts + +# Interface: DefaultStateManagerOpts + +Options for constructing a StateManager. + +## Table of contents + +### Properties + +- [accountCacheOpts](DefaultStateManagerOpts.md#accountcacheopts) +- [common](DefaultStateManagerOpts.md#common) +- [prefixCodeHashes](DefaultStateManagerOpts.md#prefixcodehashes) +- [storageCacheOpts](DefaultStateManagerOpts.md#storagecacheopts) +- [trie](DefaultStateManagerOpts.md#trie) + +## Properties + +### accountCacheOpts + +• `Optional` **accountCacheOpts**: `CacheOptions` + +#### Defined in + +[stateManager.ts:120](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L120) + +___ + +### common + +• `Optional` **common**: `Common` + +The common to use + +#### Defined in + +[stateManager.ts:127](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L127) + +___ + +### prefixCodeHashes + +• `Optional` **prefixCodeHashes**: `boolean` + +Option to prefix codehashes in the database. This defaults to `true`. +If this is disabled, note that it is possible to corrupt the trie, by deploying code +which code is equal to the preimage of a trie-node. +E.g. by putting the code `0x80` into the empty trie, will lead to a corrupted trie. + +#### Defined in + +[stateManager.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L118) + +___ + +### storageCacheOpts + +• `Optional` **storageCacheOpts**: `CacheOptions` + +#### Defined in + +[stateManager.ts:122](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L122) + +___ + +### trie + +• `Optional` **trie**: `Trie` + +A Trie instance + +#### Defined in + +[stateManager.ts:111](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/stateManager.ts#L111) diff --git a/packages/statemanager/docs/interfaces/EthersStateManagerOpts.md b/packages/statemanager/docs/interfaces/EthersStateManagerOpts.md index 1771c5e713..6a202fab0f 100644 --- a/packages/statemanager/docs/interfaces/EthersStateManagerOpts.md +++ b/packages/statemanager/docs/interfaces/EthersStateManagerOpts.md @@ -17,14 +17,14 @@ #### Defined in -[ethersStateManager.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L27) +[ethersStateManager.ts:18](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L18) ___ ### provider -• **provider**: `string` \| `JsonRpcProvider` \| `StaticJsonRpcProvider` +• **provider**: `string` \| `JsonRpcProvider` #### Defined in -[ethersStateManager.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L26) +[ethersStateManager.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/ethersStateManager.ts#L17) diff --git a/packages/statemanager/docs/interfaces/StateAccess.md b/packages/statemanager/docs/interfaces/StateAccess.md deleted file mode 100644 index 4c4d933ab3..0000000000 --- a/packages/statemanager/docs/interfaces/StateAccess.md +++ /dev/null @@ -1,396 +0,0 @@ -[@ethereumjs/statemanager](../README.md) / StateAccess - -# Interface: StateAccess - -## Hierarchy - -- **`StateAccess`** - - ↳ [`StateManager`](StateManager.md) - -## Table of contents - -### Methods - -- [accountExists](StateAccess.md#accountexists) -- [accountIsEmpty](StateAccess.md#accountisempty) -- [checkpoint](StateAccess.md#checkpoint) -- [clearContractStorage](StateAccess.md#clearcontractstorage) -- [commit](StateAccess.md#commit) -- [deleteAccount](StateAccess.md#deleteaccount) -- [getAccount](StateAccess.md#getaccount) -- [getContractCode](StateAccess.md#getcontractcode) -- [getContractStorage](StateAccess.md#getcontractstorage) -- [getProof](StateAccess.md#getproof) -- [getStateRoot](StateAccess.md#getstateroot) -- [hasStateRoot](StateAccess.md#hasstateroot) -- [modifyAccountFields](StateAccess.md#modifyaccountfields) -- [putAccount](StateAccess.md#putaccount) -- [putContractCode](StateAccess.md#putcontractcode) -- [putContractStorage](StateAccess.md#putcontractstorage) -- [revert](StateAccess.md#revert) -- [setStateRoot](StateAccess.md#setstateroot) -- [verifyProof](StateAccess.md#verifyproof) - -## Methods - -### accountExists - -▸ **accountExists**(`address`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[interface.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L14) - -___ - -### accountIsEmpty - -▸ **accountIsEmpty**(`address`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[interface.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L17) - -___ - -### checkpoint - -▸ **checkpoint**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L25) - -___ - -### clearContractStorage - -▸ **clearContractStorage**(`address`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L24) - -___ - -### commit - -▸ **commit**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L26) - -___ - -### deleteAccount - -▸ **deleteAccount**(`address`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:18](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L18) - -___ - -### getAccount - -▸ **getAccount**(`address`): `Promise`<`Account`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`Account`\> - -#### Defined in - -[interface.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L15) - -___ - -### getContractCode - -▸ **getContractCode**(`address`): `Promise`<`Buffer`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`Buffer`\> - -#### Defined in - -[interface.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L21) - -___ - -### getContractStorage - -▸ **getContractStorage**(`address`, `key`): `Promise`<`Buffer`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `key` | `Buffer` | - -#### Returns - -`Promise`<`Buffer`\> - -#### Defined in - -[interface.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L22) - -___ - -### getProof - -▸ `Optional` **getProof**(`address`, `storageSlots`): `Promise`<[`Proof`](../README.md#proof)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `storageSlots` | `Buffer`[] | - -#### Returns - -`Promise`<[`Proof`](../README.md#proof)\> - -#### Defined in - -[interface.ts:30](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L30) - -___ - -### getStateRoot - -▸ **getStateRoot**(): `Promise`<`Buffer`\> - -#### Returns - -`Promise`<`Buffer`\> - -#### Defined in - -[interface.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L28) - -___ - -### hasStateRoot - -▸ **hasStateRoot**(`root`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `root` | `Buffer` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[interface.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L32) - -___ - -### modifyAccountFields - -▸ **modifyAccountFields**(`address`, `accountFields`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `accountFields` | `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L19) - -___ - -### putAccount - -▸ **putAccount**(`address`, `account`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `account` | `Account` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:16](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L16) - -___ - -### putContractCode - -▸ **putContractCode**(`address`, `value`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `value` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L20) - -___ - -### putContractStorage - -▸ **putContractStorage**(`address`, `key`, `value`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `key` | `Buffer` | -| `value` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L23) - -___ - -### revert - -▸ **revert**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L27) - -___ - -### setStateRoot - -▸ **setStateRoot**(`stateRoot`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stateRoot` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L29) - -___ - -### verifyProof - -▸ `Optional` **verifyProof**(`proof`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `proof` | [`Proof`](../README.md#proof) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[interface.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L31) diff --git a/packages/statemanager/docs/interfaces/StateManager.md b/packages/statemanager/docs/interfaces/StateManager.md deleted file mode 100644 index 7abe7a58c2..0000000000 --- a/packages/statemanager/docs/interfaces/StateManager.md +++ /dev/null @@ -1,528 +0,0 @@ -[@ethereumjs/statemanager](../README.md) / StateManager - -# Interface: StateManager - -## Hierarchy - -- [`StateAccess`](StateAccess.md) - - ↳ **`StateManager`** - -## Implemented by - -- [`DefaultStateManager`](../classes/DefaultStateManager.md) -- [`EthersStateManager`](../classes/EthersStateManager.md) - -## Table of contents - -### Methods - -- [accountExists](StateManager.md#accountexists) -- [accountIsEmpty](StateManager.md#accountisempty) -- [checkpoint](StateManager.md#checkpoint) -- [clearContractStorage](StateManager.md#clearcontractstorage) -- [commit](StateManager.md#commit) -- [copy](StateManager.md#copy) -- [deleteAccount](StateManager.md#deleteaccount) -- [dumpStorage](StateManager.md#dumpstorage) -- [flush](StateManager.md#flush) -- [getAccount](StateManager.md#getaccount) -- [getContractCode](StateManager.md#getcontractcode) -- [getContractStorage](StateManager.md#getcontractstorage) -- [getProof](StateManager.md#getproof) -- [getStateRoot](StateManager.md#getstateroot) -- [hasStateRoot](StateManager.md#hasstateroot) -- [modifyAccountFields](StateManager.md#modifyaccountfields) -- [putAccount](StateManager.md#putaccount) -- [putContractCode](StateManager.md#putcontractcode) -- [putContractStorage](StateManager.md#putcontractstorage) -- [revert](StateManager.md#revert) -- [setStateRoot](StateManager.md#setstateroot) -- [verifyProof](StateManager.md#verifyproof) - -## Methods - -### accountExists - -▸ **accountExists**(`address`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`boolean`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[accountExists](StateAccess.md#accountexists) - -#### Defined in - -[interface.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L14) - -___ - -### accountIsEmpty - -▸ **accountIsEmpty**(`address`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`boolean`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[accountIsEmpty](StateAccess.md#accountisempty) - -#### Defined in - -[interface.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L17) - -___ - -### checkpoint - -▸ **checkpoint**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[checkpoint](StateAccess.md#checkpoint) - -#### Defined in - -[interface.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L25) - -___ - -### clearContractStorage - -▸ **clearContractStorage**(`address`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[clearContractStorage](StateAccess.md#clearcontractstorage) - -#### Defined in - -[interface.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L24) - -___ - -### commit - -▸ **commit**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[commit](StateAccess.md#commit) - -#### Defined in - -[interface.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L26) - -___ - -### shallowCopy - -▸ **shallowCopy**(): [`StateManager`](StateManager.md) - -#### Returns - -[`StateManager`](StateManager.md) - -#### Defined in - -[interface.ts:36](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L36) - -___ - -### deleteAccount - -▸ **deleteAccount**(`address`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[deleteAccount](StateAccess.md#deleteaccount) - -#### Defined in - -[interface.ts:18](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L18) - -___ - -### dumpStorage - -▸ **dumpStorage**(`address`): `Promise`<`StorageDump`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`StorageDump`\> - -#### Defined in - -[interface.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L38) - -___ - -### flush - -▸ **flush**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[interface.ts:37](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L37) - -___ - -### getAccount - -▸ **getAccount**(`address`): `Promise`<`Account`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`Account`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[getAccount](StateAccess.md#getaccount) - -#### Defined in - -[interface.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L15) - -___ - -### getContractCode - -▸ **getContractCode**(`address`): `Promise`<`Buffer`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | - -#### Returns - -`Promise`<`Buffer`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[getContractCode](StateAccess.md#getcontractcode) - -#### Defined in - -[interface.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L21) - -___ - -### getContractStorage - -▸ **getContractStorage**(`address`, `key`): `Promise`<`Buffer`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `key` | `Buffer` | - -#### Returns - -`Promise`<`Buffer`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[getContractStorage](StateAccess.md#getcontractstorage) - -#### Defined in - -[interface.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L22) - -___ - -### getProof - -▸ `Optional` **getProof**(`address`, `storageSlots`): `Promise`<[`Proof`](../README.md#proof)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `storageSlots` | `Buffer`[] | - -#### Returns - -`Promise`<[`Proof`](../README.md#proof)\> - -#### Inherited from - -[StateAccess](StateAccess.md).[getProof](StateAccess.md#getproof) - -#### Defined in - -[interface.ts:30](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L30) - -___ - -### getStateRoot - -▸ **getStateRoot**(): `Promise`<`Buffer`\> - -#### Returns - -`Promise`<`Buffer`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[getStateRoot](StateAccess.md#getstateroot) - -#### Defined in - -[interface.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L28) - -___ - -### hasStateRoot - -▸ **hasStateRoot**(`root`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `root` | `Buffer` | - -#### Returns - -`Promise`<`boolean`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[hasStateRoot](StateAccess.md#hasstateroot) - -#### Defined in - -[interface.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L32) - -___ - -### modifyAccountFields - -▸ **modifyAccountFields**(`address`, `accountFields`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `accountFields` | `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[modifyAccountFields](StateAccess.md#modifyaccountfields) - -#### Defined in - -[interface.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L19) - -___ - -### putAccount - -▸ **putAccount**(`address`, `account`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `account` | `Account` | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[putAccount](StateAccess.md#putaccount) - -#### Defined in - -[interface.ts:16](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L16) - -___ - -### putContractCode - -▸ **putContractCode**(`address`, `value`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `value` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[putContractCode](StateAccess.md#putcontractcode) - -#### Defined in - -[interface.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L20) - -___ - -### putContractStorage - -▸ **putContractStorage**(`address`, `key`, `value`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `Address` | -| `key` | `Buffer` | -| `value` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[putContractStorage](StateAccess.md#putcontractstorage) - -#### Defined in - -[interface.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L23) - -___ - -### revert - -▸ **revert**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[revert](StateAccess.md#revert) - -#### Defined in - -[interface.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L27) - -___ - -### setStateRoot - -▸ **setStateRoot**(`stateRoot`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `stateRoot` | `Buffer` | - -#### Returns - -`Promise`<`void`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[setStateRoot](StateAccess.md#setstateroot) - -#### Defined in - -[interface.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L29) - -___ - -### verifyProof - -▸ `Optional` **verifyProof**(`proof`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `proof` | [`Proof`](../README.md#proof) | - -#### Returns - -`Promise`<`boolean`\> - -#### Inherited from - -[StateAccess](StateAccess.md).[verifyProof](StateAccess.md#verifyproof) - -#### Defined in - -[interface.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/statemanager/src/interface.ts#L31) From 2207c1e43e0a56ac07839c0708dc94e5913fdf05 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 10:25:54 +0200 Subject: [PATCH 24/38] Version bump, update upstream dependency versions, update README (Ethash) --- packages/blockchain/package.json | 2 +- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/ethash/README.md | 14 +++++++------- packages/ethash/package.json | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index 7206be795d..19f4fa625c 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -47,7 +47,7 @@ "dependencies": { "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", - "@ethereumjs/ethash": "^2.0.5", + "@ethereumjs/ethash": "3.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 28b613eb5e..18b6135022 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -61,7 +61,7 @@ "@ethereumjs/blockchain": "7.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", - "@ethereumjs/ethash": "2.0.5", + "@ethereumjs/ethash": "3.0.0-rc.1", "@ethereumjs/evm": "1.3.2", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "2.0.0-rc.1", diff --git a/packages/client/package.json b/packages/client/package.json index 0e1687a301..d32e4a8215 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -61,7 +61,7 @@ "@ethereumjs/blockchain": "7.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", - "@ethereumjs/ethash": "2.0.5", + "@ethereumjs/ethash": "3.0.0-rc.1", "@ethereumjs/evm": "1.3.2", "@ethereumjs/genesis": "0.1.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", diff --git a/packages/ethash/README.md b/packages/ethash/README.md index 1b0e51faef..fd70bcb05e 100644 --- a/packages/ethash/README.md +++ b/packages/ethash/README.md @@ -28,15 +28,15 @@ npm install @ethereumjs/ethash ```typescript import { Ethash } from '@ethereumjs/ethash' import { Block } from '@ethereumjs/block' -import { MemoryLevel } from 'memory-level' +import { hexToBytes, MapDB } from '@ethereumjs/util' -const cacheDB = level() +const cacheDb = new MapDB() const ethash = new Ethash(cacheDB) const validblockRlp = - 'f90667f905fba0a8d5b7a4793baaede98b5236954f634a0051842df6a252f6a80492fd888678bda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0f93c8db1e931daa2e22e39b5d2da6fb4074e3d544094857608536155e3521bc1a0bb7495628f9160ddbcf6354380ee32c300d594e833caec3a428041a66e7bade1a0c7778a7376099ee2e5c455791c1885b5c361b95713fddcbe32d97fd01334d296b90100000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000400000000000000000000000000000000000000000000000000000008302000001832fefd882560b84559c17b9b9040001020304050607080910111213141516171819202122232410000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000a09c7b47112a3afb385c12924bf6280d273c106eea7caeaf5131d8776f61056c148876ae05d46b58d1fff866f864800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d8785012a05f200801ba01d2c92cfaeb04e53acdff2b5d42005ff6aacdb0105e64eb8c30c273f445d2782a01e7d50ffce57840360c57d94977b8cdebde614da23e8d1e77dc07928763cfe21c0' + '0xf90667f905fba0a8d5b7a4793baaede98b5236954f634a0051842df6a252f6a80492fd888678bda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0f93c8db1e931daa2e22e39b5d2da6fb4074e3d544094857608536155e3521bc1a0bb7495628f9160ddbcf6354380ee32c300d594e833caec3a428041a66e7bade1a0c7778a7376099ee2e5c455791c1885b5c361b95713fddcbe32d97fd01334d296b90100000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000400000000000000000000000000000000000000000000000000000008302000001832fefd882560b84559c17b9b9040001020304050607080910111213141516171819202122232410000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000100000000000000000002000000000000000000030000000000000000000400000000000000000005000000000000000000060000000000000000000700000000000000000008000000000000000000090000000000000000000100000000000000000001000000000000000000020000000000000000000300000000000000000004000000000000000000050000000000000000000600000000000000000007000000000000000000080000000000000000000900000000000000000001000000000000000000010000000000000000000200000000000000000003000000000000000000040000000000000000000500000000000000000006000000000000000000070000000000000000000800000000000000000009000000000000000000010000000000000000000a09c7b47112a3afb385c12924bf6280d273c106eea7caeaf5131d8776f61056c148876ae05d46b58d1fff866f864800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d8785012a05f200801ba01d2c92cfaeb04e53acdff2b5d42005ff6aacdb0105e64eb8c30c273f445d2782a01e7d50ffce57840360c57d94977b8cdebde614da23e8d1e77dc07928763cfe21c0' -const validBlock = Block.fromRLPSerializedBlock(Buffer.from(validblockRlp, 'hex')) +const validBlock = Block.fromRLPSerializedBlock(hexToBytes(validblockRlp)) const result = await ethash.verifyPOW(validBlock) console.log(result) // => true @@ -52,10 +52,8 @@ See the following example on how to use the new `Miner` class: import { Block } from '@ethereumjs/block' import { Ethash } from '@ethereumjs/ethash' import { Common } from '@ethereumjs/common' -import { BN } from 'ethereumjs-util' -import { MemoryLevel } from 'memory-level' +import { MapDB } from 'ethereumjs-util' -const cacheDB = new MemoryLevel() const block = Block.fromBlockData({ header: { difficulty: BigInt(100), @@ -63,6 +61,8 @@ const block = Block.fromBlockData({ }, }) +const cacheDb = new MapDB() + const e = new Ethash(cacheDB) const miner = e.getMiner(block.header) const solution = await miner.iterate(-1) // iterate until solution is found diff --git a/packages/ethash/package.json b/packages/ethash/package.json index 6625e74165..d6d63c0a5b 100644 --- a/packages/ethash/package.json +++ b/packages/ethash/package.json @@ -1,7 +1,7 @@ { "name": "@ethereumjs/ethash", - "version": "2.0.5", - "description": "An ethash implementation in JavaScript", + "version": "3.0.0-rc.1", + "description": "An implementation of the Ethash consensus algorithm in JavaScript", "keywords": [ "ethash", "ethereum", From f4bce22e2acc9991c285a31d87083f346af4f517 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 11:28:26 +0200 Subject: [PATCH 25/38] Version bump, update upstream dependency versions, update README (EVM) --- .../net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/common/README.md | 52 ++++---- packages/evm/README.md | 126 +++++++++++------- packages/evm/package.json | 2 +- packages/evm/src/types.ts | 43 +++--- packages/vm/package.json | 2 +- 7 files changed, 130 insertions(+), 99 deletions(-) diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 18b6135022..1424129512 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -62,7 +62,7 @@ "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "3.0.0-rc.1", - "@ethereumjs/evm": "1.3.2", + "@ethereumjs/evm": "2.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "2.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", diff --git a/packages/client/package.json b/packages/client/package.json index d32e4a8215..3ae6287da8 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -62,7 +62,7 @@ "@ethereumjs/common": "4.0.0-rc.1", "@ethereumjs/devp2p": "6.0.0-rc.1", "@ethereumjs/ethash": "3.0.0-rc.1", - "@ethereumjs/evm": "1.3.2", + "@ethereumjs/evm": "2.0.0-rc.1", "@ethereumjs/genesis": "0.1.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "2.0.0-rc.1", diff --git a/packages/common/README.md b/packages/common/README.md index c44f6a6da1..f75193a9dd 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -304,33 +304,33 @@ const c = new Common({ chain: Chain.Mainnet, eips: [4844] }) The following EIPs are currently supported: -- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153): Transient storage opcodes -- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559): Fee market change for ETH 1.0 chain -- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315): Simple subroutines for the EVM (`outdated`) -- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537): BLS precompiles (removed in v4.0.0, see latest v3 release) -- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565): ModExp gas cost -- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2565): Transaction Types -- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929): gas cost increases for state access opcodes -- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930): Optional access list tx type -- [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074): AUTH and AUTHCALL opcodes -- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198): Base fee Opcode -- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529): Reduction in refunds +- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (`experimental`) +- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain +- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines for the EVM (`outdated`) +- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (removed in v4.0.0, see latest v3 release) +- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp gas cost +- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2565) - Transaction Types +- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - gas cost increases for state access opcodes +- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Optional access list tx type +- [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074) - AUTH and AUTHCALL opcodes +- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - Base fee Opcode +- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - Reduction in refunds - [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`outdated`) -- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541): Reject new contracts starting with the 0xEF byte -- [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554): Difficulty Bomb Delay to December 2021 (only PoW networks) -- [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607): Reject transactions from senders with deployed code -- [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651): Warm COINBASE (Shanghai) -- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670): EOF - Code Validation (`outdated`) -- [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675): Upgrade consensus to Proof-of-Stake -- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855): Push0 opcode (Shanghai) -- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860): Limit and meter initcode (Shanghai) -- [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345): Difficulty Bomb Delay to June 2022 -- [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399): Supplant DIFFICULTY opcode with PREVRANDAO (Merge) -- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788): Beacon block root in the EVM -- [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Shard Blob Transactions (Cancun) (`experimental`) -- [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895): Beacon chain push withdrawals as operations (Shanghai) -- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656): MCOPY - Memory copying instruction -- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780): SELFDESTRUCT only in same transaction +- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - Reject new contracts starting with the 0xEF byte +- [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) - Difficulty Bomb Delay to December 2021 (only PoW networks) +- [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607) - Reject transactions from senders with deployed code +- [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) - Warm COINBASE (Shanghai) +- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670) - EOF - Code Validation (`outdated`) +- [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) - Upgrade consensus to Proof-of-Stake +- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - Push0 opcode (Shanghai) +- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai) +- [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022 +- [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) +- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM +- [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun) (`experimental`) +- [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai) +- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction +- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction ### Bootstrap Nodes diff --git a/packages/evm/README.md b/packages/evm/README.md index 3538477468..ce84e83d7e 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -21,30 +21,44 @@ npm install @ethereumjs/evm This package provides the core Ethereum Virtual Machine (EVM) implementation which is capable of executing EVM-compatible bytecode. The package has been extracted from the [@ethereumjs/vm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm) package along the VM `v6` release. -Note that this package atm cannot be run in a standalone mode but needs to be executed via the `VM` package which provides an outer Ethereum `mainnet` compatible execution context. Standalone functionality will be added along a future non-breaking release. - **Note:** If you want to work with `EIP-4844` related functionality, you will have additional manual installation steps for the **KZG setup**, see related section below. ## Usage +### Basic + +With the v2 release (Summer 2023) the EVM/VM packages have been further decoupled and it now possible to run the EVM package in isolation with reaonable defaults. + +The following is the simplest example for an EVM instantiation: + +```typescript +import { hexToBytes } from '@ethereumjs/util' +import { EVM } from '@ethereumjs/evm' + +const evm = new EVM() +evm.runCode({ code: hexToBytes('0x01') }) +``` + +### Blockchain, State and Events + +If the EVM should run on a certain state an `@ethereumjs/statemanager` is needed. An `@ethereumjs/blockchain` instance can be passed in to provide access to external interface information like a blockhash: + ```typescript import { Blockchain } from '@ethereumjs/blockchain' import { Chain, Common, Hardfork } from '@ethereumjs/common' -import { EEI } from '@ethereumjs/vm' import { EVM } from '@ethereumjs/evm' import { DefaultStateManager } from '@ethereumjs/statemanager' +import { bytesToHex } from '@ethereumjs/util' -// Note: in a future release there will be an EEI default implementation -// which will ease standalone initialization const main = async () => { - const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.London }) + const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Shanghai }) const stateManager = new DefaultStateManager() const blockchain = await Blockchain.create() - const eei = new EEI(stateManager, common, blockchain) const evm = new EVM({ common, - eei, + stateManager, + blockchain, }) const STOP = '00' @@ -59,21 +73,21 @@ const main = async () => { console.log(`Opcode: ${data.opcode.name}\tStack: ${data.stack}`) }) - evm - .runCode({ - code: Buffer.from(code.join(''), 'hex'), - gasLimit: BigInt(0xffff), - }) - .then((results) => { - console.log(`Returned: ${results.returnValue.toString('hex')}`) - console.log(`gasUsed: ${results.executionGasUsed.toString()}`) - }) - .catch(console.error) + const results = await evm.runCode({ + code: Buffer.from(code.join(''), 'hex'), + gasLimit: BigInt(0xffff), + }) + + console.log(`Returned: ${bytesToHex(results.returnValue)}`) + console.log(`gasUsed: ${results.executionGasUsed.toString()}`) } void main() ``` +Additionally this usage example shows the use of events to listen on the inner workings and procedural updates +(`step` event) of the EVM. + ## Examples This projects contain the following examples: @@ -133,19 +147,15 @@ This package contains the inner Ethereum Virtual Machine core functionality whic This will make it easier to customize the inner EVM, which can now be passed as an optional argument to the outer `VM` instance. -At the moment the `EVM` package can not be run standalone and it is therefore recommended for most use cases to rather use the `VM` package and access `EVM` functionality through the `vm.evm` property. - -### Execution Environment (EEI) and State +### State and Blockchain Information For the EVM to properly work it needs access to a respective execution environment (to e.g. request on information like block hashes) as well as the connection to an outer account and contract state. -To ensure a unified interface the `EVM` provides a TypeScript `EEI` interface providing which includes the necessary function signatures for access to environmental parameters as well as the VM state. - -The [@ethereumjs/vm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm) provides a concrete implementation of this interface which can be used to instantiate the `EVM` within an Ethereum `mainnet` compatible execution context. +With the v2 release EVM, VM and StateManager have been substantially reworked in this regard, see PR [#2649](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2649/) and PR [#2702](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2702) for further deepening context. -## Browser +The interfaces (in a non-TypeScript sense) between these packages have been simplified and the `EEI` package has been completely removed. Most of the EEI related logic is now either handled internally or more generic functionality being taken over by the `@ethereumjs/statemanager` package. -To build the EVM for standalone use in the browser, see: [Running the EVM in a browser](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/evm/examples/runCode.ts). +This allows for both a standalone EVM instantiation with reasonable defaults as well as for a simplified EVM -> VM passing if a customized EVM is needed. ## Setup @@ -167,16 +177,19 @@ Currently the following hardfork rules are supported: - `berlin` (`v5.2.0`+) - `london` (`v5.4.0`+) - `arrowGlacier` (only `mainnet`) (`v5.6.0`+) -- `merge` (only `goerli` and, soon, `mainnet`) +- `merge` +- `shanghai` (`v2.0.0`+) +- `cancun` (isolated EIPs, see EIP section below) (`v2.0.0`+) -Default: `merge` (taken from `Common.DEFAULT_HARDFORK`) +Default: `shanghai` (taken from `Common.DEFAULT_HARDFORK`) A specific hardfork EVM ruleset can be activated by passing in the hardfork along the `Common` instance to the outer `@ethereumjs/vm` instance. ### EIP Support -It is possible to individually activate EIP support in the EVM by instantiate the `Common` instance passed to the outer VM with the respective EIPs, e.g.: +It is possible to individually activate EIP support in the EVM by instantiate the `Common` instance passed to the +outer VM with the respective EIPs, e.g.: ```typescript import { Chain, Common } from '@ethereumjs/common' @@ -188,29 +201,39 @@ const vm = new VM({ common }) Currently supported EIPs: -- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient Storage Opcodes (`experimental`) -- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee Market (`london` EIP) -- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines (`experimental`) -- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (`experimental`) -- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp gas cost (`berlin` EIP) -- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) - Typed transactions (`berlin` EIP) -- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - Gas cost increases for state access opcodes (`berlin` EIP) -- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Optional Access Lists Typed Transactions (`berlin` EIP) -- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - BASEFEE opcode (`london` EIP) -- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - Reduction in refunds (`london` EIP) -- [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`experimental`) -- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - Reject new contracts starting with the 0xEF byte (`london` EIP) -- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670) - EOF - Code Validation (`experimental`) -- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - PUSH0 instruction -- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode +- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (`experimental`) +- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain +- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines for the EVM (`outdated`) +- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (removed in v4.0.0, see latest v3 release) +- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp gas cost +- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2565) - Transaction Types +- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - gas cost increases for state access opcodes +- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Optional access list tx type +- [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074) - AUTH and AUTHCALL opcodes +- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - Base fee Opcode +- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - Reduction in refunds +- [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`outdated`) +- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - Reject new contracts starting with the 0xEF byte +- [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) - Difficulty Bomb Delay to December 2021 (only PoW networks) +- [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607) - Reject transactions from senders with deployed code +- [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) - Warm COINBASE (Shanghai) +- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670) - EOF - Code Validation (`outdated`) +- [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) - Upgrade consensus to Proof-of-Stake +- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - Push0 opcode (Shanghai) +- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai) +- [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022 - [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) -- [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (`experimental`) -- [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations -- [EIP-5133](https://eips.ethereum.org/EIPS/eip-5133) - Delaying Difficulty Bomb to mid-September 2022 +- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM +- [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun) (`experimental`) +- [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai) +- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction +- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction + +### EIP-4844 Shard Blob Transactions Support -### EIP-4844 Shard Blob Transactions Support (experimental) +This library supports the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [b9a5a11](https://github.com/ethereum/EIPs/commit/b9a5a117ab7e1dc18f937841d00598b527c306e7) EIP version from July 2023 deployed along [4844-devnet-7](https://github.com/ethpandaops/4844-testnet) (July 2023), see PR [#2349](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2349) and following. -This library supports an experimental version of the blob transaction type introduced with [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) as being specified in the [01d3209](https://github.com/ethereum/EIPs/commit/01d320998d1d53d95f347b5f43feaf606f230703) EIP version from February 8, 2023 and deployed along `eip4844-devnet-4` (January 2023) starting with `v1.3.0`. +**Note:** 4844 support is not yet completely stable and there will still be (4844-)breaking changes along all types of library releases. #### Initialization @@ -222,13 +245,14 @@ import { Common, Chain, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Shanghai, eips: [4844] }) ``` -EIP-4844 comes with a new opcode `DATAHASH` and adds a new point evaluation precompile at address `0x14`. +EIP-4844 comes with a new opcode `BLOBHASH` (Attention! Renamed from `DATAHASH`) and adds a new point evaluation precompile at address `0x0a` +(moved from `0x14` at some point along spec updates). **Note:** Usage of the point evaluation precompile needs a manual KZG library installation and global initialization, see [KZG Setup](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/tx/README.md#kzg-setup) for instructions. ### Tracing Events -Our `TypeScript` EVM is implemented as an [AsyncEventEmitter](https://github.com/ahultgren/async-eventemitter) and events are submitted along major execution steps which you can listen to. +The EVM has a public property `events` which instantiates an [AsyncEventEmitter](https://github.com/ahultgren/async-eventemitter) and events are submitted along major execution steps which you can listen to. You can subscribe to the following events: diff --git a/packages/evm/package.json b/packages/evm/package.json index 7b289fe040..210cc56bb1 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/evm", - "version": "1.3.2", + "version": "2.0.0-rc.1", "description": "JavaScript Ethereum Virtual Machine (EVM) implementation", "keywords": [ "ethereum", diff --git a/packages/evm/src/types.ts b/packages/evm/src/types.ts index 60035e87c6..3c46983550 100644 --- a/packages/evm/src/types.ts +++ b/packages/evm/src/types.ts @@ -167,27 +167,34 @@ export interface EVMOpts { * * ### Supported EIPs * - * - [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient Storage Opcodes (`experimental`) - * - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - EIP-1559 Fee Market - * - [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - VM simple subroutines (`experimental`) - * - [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp Gas Cost - * - [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) - Typed Transactions - * - [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - Gas cost increases for state access opcodes - * - [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Access List Transaction Type - * - [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - BASEFEE opcode + * - [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (`experimental`) + * - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain + * - [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines for the EVM (`outdated`) + * - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (removed in v4.0.0, see latest v3 release) + * - [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp gas cost + * - [EIP-2718](https://eips.ethereum.org/EIPS/eip-2565) - Transaction Types + * - [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - gas cost increases for state access opcodes + * - [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Optional access list tx type + * - [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074) - AUTH and AUTHCALL opcodes + * - [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - Base fee Opcode * - [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - Reduction in refunds - * - [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`experimental`) + * - [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`outdated`) * - [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - Reject new contracts starting with the 0xEF byte - * [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) - Warm COINBASE (`experimental`) - * - [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670) - EOF - Code Validation (`experimental`) - * - [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - PUSH0 instruction - * - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode + * - [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) - Difficulty Bomb Delay to December 2021 (only PoW networks) + * - [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607) - Reject transactions from senders with deployed code + * - [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) - Warm COINBASE (Shanghai) + * - [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670) - EOF - Code Validation (`outdated`) + * - [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) - Upgrade consensus to Proof-of-Stake + * - [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - Push0 opcode (Shanghai) + * - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai) + * - [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022 * - [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) - * - [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM (`experimental`) - * - [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (`experimental`) - * - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations - * - [EIP-5133](https://eips.ethereum.org/EIPS/eip-5133) - Delaying Difficulty Bomb to mid-September 2022 - * - [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction (`experimental`) + * - [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM + * - [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun) (`experimental`) + * - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai) + * - [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction + * - [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction + * * *Annotations:* * * - `experimental`: behaviour can change on patch versions diff --git a/packages/vm/package.json b/packages/vm/package.json index 3bfdfd7eb8..3b564250db 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -65,7 +65,7 @@ "@ethereumjs/block": "5.0.0-rc.1", "@ethereumjs/blockchain": "7.0.0-rc.1", "@ethereumjs/common": "4.0.0-rc.1", - "@ethereumjs/evm": "^1.3.2", + "@ethereumjs/evm": "2.0.0-rc.1", "@ethereumjs/rlp": "5.0.0-rc.1", "@ethereumjs/statemanager": "2.0.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", From b6ddbb048c7d47fc99b76a916d2af259b76cd029 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 12:28:06 +0200 Subject: [PATCH 26/38] First part of VM README additions --- packages/vm/README.md | 58 +++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/packages/vm/README.md b/packages/vm/README.md index 049b4da139..fdaee1ef41 100644 --- a/packages/vm/README.md +++ b/packages/vm/README.md @@ -15,6 +15,9 @@ This package provides an Ethereum `mainnet` compatible execution context for the [@ethereumjs/evm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm) EVM implementation. +So beyond bytecode processing this package allows to run or build new Ethereum blocks or single transactions +and update a blockchain state accordingly. + Note that up till `v5` this package also was the bundled package for the EVM implementation itself. ## Installation @@ -37,7 +40,7 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' import { LegacyTransaction } from '@ethereumjs/tx' import { VM } from '@ethereumjs/vm' -const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Berlin }) +const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Shanghai }) const vm = await VM.create({ common }) const tx = LegacyTransaction.fromTxData({ @@ -90,7 +93,13 @@ This projects contain the following examples: All of the examples have their own `README.md` explaining how to run them. -# API +## Browser + +With the breaking release round in Summer 2023 we have added hybrid ESM/CJS builds for all our libraries (see section below) and have eliminated many of the caveats which had previously prevented a frictionless browser usage. + +It is now easily possible to run a browser build of one of the EthereumJS libraries within a modern browser using the provided ESM build. For a setup example see [./examples/browser.html](./examples/browser.html). + +## API ### Docs @@ -143,9 +152,9 @@ vm.evm.events.on('step', function (data) { Note that it's now also possible to pass in an own or customized `EVM` instance by using the optional `evm` constructor option. -### Execution Environment (EEI) and State +### State and Blockchain Information -This package provides a concrete implementation of the [@ethereumjs/evm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm) EEI interface to instantiate a VM/EVM combination with an Ethereum `mainnet` compatible execution context. +With `VM` v7 a previously needed EEI interface for EVM/VM communication is not needed any more and the API has been simplified, also see the respective EVM README section. Most of the EEI related logic is now either handled internally or more generic functionality being taken over by the `@ethereumjs/statemanager` package, with the `EVM` now taking in both an (optional) `stateManager` and `blockchain` argument for the constructor (which the `VM` passes over by default). With `VM` v6 the previously included `StateManager` has been extracted to its own package [@ethereumjs/statemanager](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/statemanager). The `StateManager` package provides a unified state interface and it is now also possible to provide a modified or custom `StateManager` to the VM via the optional `stateManager` constructor option. @@ -164,15 +173,15 @@ Starting with `v5.1.0` the VM supports running both `Ethash/PoW` and `Clique/PoA The following is a simple example for a block run on `Goerli`: ```typescript -import { VM } from '@ethereumjs/vm' import { Chain, Common } from '@ethereumjs/common' +import { hexToBytes } from '@ethereumjs/util' +import { VM } from '@ethereumjs/vm' const common = new Common({ chain: Chain.Goerli }) -const hardforkByBlockNumber = true -const vm = new VM({ common, hardforkByBlockNumber }) +const vm = new VM({ common, setHardfork: true }) -const serialized = Buffer.from('f901f7a06bfee7294bf4457...', 'hex') -const block = Block.fromRLPSerializedBlock(serialized, { hardforkByBlockNumber }) +const serialized = hexToBytes('0xf901f7a06bfee7294bf4457...') +const block = Block.fromRLPSerializedBlock(serialized, { setHardfork: true }) const result = await vm.runBlock(block) ``` @@ -192,29 +201,34 @@ const vm = new VM({ common }) ### Custom genesis state support -Genesis state code logic has been reworked substantially along the v6 breaking releases and a lot of the genesis state code moved from both the `@ethereumjs/common` and `@ethereumjs/block` libraries to the `@ethereumjs/blockchain` library, see PR [#1916](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1916) for an overview on the broad set of changes. +#### Genesis in v7 (removed genesis dependency) + +Genesis state was huge and had previously been bundled with the `Blockchain` package with the burden going over to the VM, since `Blockchain` is a dependency. -For initializing a custom genesis state you can now use the `genesisState` constructor option in the `Blockchain` library in a similar way this had been done in the `Common` library before. +Starting with the v7 release genesis state has been removed from `blockchain` and moved into its own auxiliary package [@ethereumjs/genesis](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/genesis), from which it can be included if needed (for most - especially VM - use cases it is not necessary), see PR [#2844](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2844). -If you want to create a new instance of the VM and add your own genesis state, you can do it by passing a `Blockchain` instance with custom genesis state set with the `genesisState` constructor option and passing the flag `activateGenesisState` in `VMOpts`. +For initializing a custom genesis state you can use the `genesisState` constructor option in the `Blockchain` and `VM` library in a similar way this had been done in the `Common` library before. ```typescript -import { Common } from '@ethereumjs/common' +import { Blockchain } from '@ethereumjs/blockchain' +import { Chain, Common } from '@ethereumjs/common' +import { getGenesis } from '@ethereumjs/genesis' import { VM } from '@ethereumjs/vm' -import myCustomChain1 from '[PATH_TO_MY_CHAINS]/myCustomChain1.json' -import chain1GenesisState from '[PATH_TO_GENESIS_STATES]/chain1GenesisState.json' -const common = new Common({ - // TODO: complete example -}) -const blockchain = await Blockchain.create({ - // TODO: complete example -}) -const vm = await VM.create({ common, activateGenesisState: true }) +const genesisState = getGenesis(Chain.Mainnet) + +const blockchain = await Blockchain.create({ genesisState }) +const vm = await VM.create({ blockchain, genesisState }) ``` Genesis state can be configured to contain both EOAs as well as (system) contracts with initial storage values set. +#### Genesis in v6 + +For the v6 release responsibility for setting up a custom genesis state moved from the [Common](../common/) library to the `Blockchain` package, see PR [#1924](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1924) for some work context. + +A genesis state can be set along `Blockchain` creation by passing in a custom `genesisBlock` and `genesisState`. For `mainnet` and the official test networks like `sepolia` or `goerli` genesis is already provided with the block data coming from `@ethereumjs/common`. The genesis state is being integrated in the `Blockchain` library (see `genesisStates` folder). + ### EIP Support It is possible to individually activate EIP support in the VM by instantiate the `Common` instance passed From d85419bd41b9bc59092be8bee62af5b9c159c86f Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 14:09:56 +0200 Subject: [PATCH 27/38] Blockchain: remove level dependency, other changes --- packages/blockchain/package.json | 6 +----- .../client/libp2pBrowserBuild/net/package.json.browser.deps | 2 +- packages/client/package.json | 2 +- packages/vm/package.json | 2 +- packages/wallet/package.json | 2 +- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/blockchain/package.json b/packages/blockchain/package.json index 19f4fa625c..f97494226b 100644 --- a/packages/blockchain/package.json +++ b/packages/blockchain/package.json @@ -54,13 +54,9 @@ "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", - "level": "^8.0.0", "lru-cache": "^10.0.0" }, - "devDependencies": { - "@types/async": "^2.4.1", - "@types/level-errors": "^3.0.0" - }, + "devDependencies": {}, "engines": { "node": ">=18" } diff --git a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps index 1424129512..0fe712ff52 100644 --- a/packages/client/libp2pBrowserBuild/net/package.json.browser.deps +++ b/packages/client/libp2pBrowserBuild/net/package.json.browser.deps @@ -68,7 +68,7 @@ "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", - "@ethereumjs/vm": "6.4.2", + "@ethereumjs/vm": "7.0.0-rc.1", "abstract-level": "^1.0.3", "body-parser": "^1.19.2", "c-kzg": "^2.1.0", diff --git a/packages/client/package.json b/packages/client/package.json index 3ae6287da8..d842885bbd 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -69,7 +69,7 @@ "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/tx": "5.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", - "@ethereumjs/vm": "6.4.2", + "@ethereumjs/vm": "7.0.0-rc.1", "abstract-level": "^1.0.3", "body-parser": "^1.19.2", "c-kzg": "^2.1.0", diff --git a/packages/vm/package.json b/packages/vm/package.json index 3b564250db..6ea68c4259 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/vm", - "version": "6.4.2", + "version": "7.0.0-rc.1", "description": "An Ethereum VM implementation", "keywords": [ "ethereum", diff --git a/packages/wallet/package.json b/packages/wallet/package.json index beb65ebea0..448e310e6d 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/wallet", - "version": "2.0.0", + "version": "2.0.0-rc.1", "description": "Utilities for handling Ethereum keys", "keywords": [ "ethereum", From c24f642a26a3fe9f451db18e9eea93e4a3a55196 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 14:17:29 +0200 Subject: [PATCH 28/38] Dependency clean-up --- packages/statemanager/package.json | 14 +------------- packages/util/package.json | 5 +---- packages/vm/package.json | 7 +------ packages/wallet/package.json | 3 +-- 4 files changed, 4 insertions(+), 25 deletions(-) diff --git a/packages/statemanager/package.json b/packages/statemanager/package.json index 54eaf74517..bcdcc8e8d9 100644 --- a/packages/statemanager/package.json +++ b/packages/statemanager/package.json @@ -61,19 +61,7 @@ "@ethereumjs/genesis": "0.1.0-rc.1", "@ethereumjs/trie": "6.0.0-rc.1", "@ethereumjs/util": "9.0.0-rc.1", - "@types/tape": "^4.13.2", "debug": "^4.3.3", - "eslint": "^8.0.0", - "ethereum-cryptography": "^2.1.2", - "functional-red-black-tree": "^1.0.1", - "karma": "^6.3.2", - "karma-chrome-launcher": "^3.1.0", - "karma-firefox-launcher": "^2.1.0", - "karma-tap": "^4.2.0", - "karma-typescript": "^5.5.3", - "nyc": "^15.1.0", - "standard": "^10.0.0", - "ts-node": "^10.2.1", - "typescript": "^4.4.2" + "ethereum-cryptography": "^2.1.2" } } diff --git a/packages/util/package.json b/packages/util/package.json index c899ec2f97..c5f697b2e4 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -93,10 +93,7 @@ "@ethereumjs/rlp": "5.0.0-rc.1", "ethereum-cryptography": "^2.1.2" }, - "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/secp256k1": "^4.0.1" - }, + "devDependencies": {}, "peerDependencies": { "c-kzg": "^2.1.0" }, diff --git a/packages/vm/package.json b/packages/vm/package.json index 6ea68c4259..41e51a419d 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -85,13 +85,8 @@ "minimist": "^1.2.5", "node-dir": "^0.1.17", "nyc": "^15.1.0", - "prettier": "^2.0.5", "solc": "^0.8.1", - "standard": "^10.0.0", - "tape": "^5.3.1", - "ts-node": "^10.2.1", - "typedoc": "^0.22.4", - "typescript": "^4.4.2" + "tape": "^5.3.1" }, "engines": { "node": ">=18" diff --git a/packages/wallet/package.json b/packages/wallet/package.json index 448e310e6d..77754fefc8 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -57,8 +57,7 @@ "@types/lodash.zip": "^4.2.7", "@types/uuid": "^9.0.2", "ethers": "^6.4.0", - "lodash.zip": "^4.2.0", - "nyc": "^15.1.0" + "lodash.zip": "^4.2.0" }, "engines": { "node": ">=18" From 86be3ad9365b3da3c20904ee98727c7ef30ac03a Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 14:19:34 +0200 Subject: [PATCH 29/38] Bump client version to v0.8.0 --- packages/client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/package.json b/packages/client/package.json index d842885bbd..7e769e2b7b 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/client", - "version": "0.7.1", + "version": "0.8.0", "description": "EthereumJS client implementation", "keywords": [ "ethereum", From 73c134e332eb8799cbf795a68fba0fad0456ed03 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 14:23:48 +0200 Subject: [PATCH 30/38] Rebuild package-lock.json --- package-lock.json | 9181 +++++++++++++++------------------------------ 1 file changed, 3008 insertions(+), 6173 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11919f2318..cb1d18aea2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3827,27 +3827,12 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "node_modules/@types/async": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/async/-/async-2.4.2.tgz", - "integrity": "sha512-bWBbC7VG2jdjbgZMX0qpds8U/3h3anfIqE81L8jmVrgFZw/urEDnBA78ymGGKTTK6ciBXmmJ/xlok+Re41S8ww==", - "dev": true - }, "node_modules/@types/benchmark": { "version": "1.0.33", "resolved": "https://registry.npmjs.org/@types/benchmark/-/benchmark-1.0.33.tgz", "integrity": "sha512-rG7Ieasa9UfZJnL72qiFvY9ivhEIYjCGgfcLLb5tJ/EL9+Mcxernj6W3HVCv/cOfJYuwNUwvVVhnrKl8iT8aqA==", "dev": true }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -4017,12 +4002,6 @@ "@types/node": "*" } }, - "node_modules/@types/level-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, "node_modules/@types/lodash": { "version": "4.14.195", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", @@ -4090,15 +4069,6 @@ "safe-buffer": "~5.1.1" } }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/superagent": { "version": "4.1.18", "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.18.tgz", @@ -5423,21 +5393,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.find": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.1.tgz", - "integrity": "sha512-I2ri5Z9uMpMvnsNrHre9l3PaX+z9D0/z6F7Yt2u15q7wt0I62g5kX6xUKR1SJiefgG+u2/gJUmM8B47XRvQR6w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -5595,78 +5550,6 @@ "dequal": "^2.0.3" } }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", @@ -6427,27 +6310,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", - "dev": true, - "dependencies": { - "callsites": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caller-path/node_modules/callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -6668,13 +6530,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", - "dev": true - }, "node_modules/class-is": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", @@ -6733,12 +6588,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -6802,16 +6651,6 @@ "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -7067,15 +6906,6 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha512-OKZnPGeMQy2RPaUIBPFFd71iNf4791H12MCRuVQDnzGRwCYNYmTDy5pdafo2SLAcEMKzTOQnLWG4QdcjeJUMEg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", @@ -7332,16 +7162,6 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "node_modules/d3-array": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", @@ -7581,15 +7401,6 @@ } } }, - "node_modules/debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha512-gV/pe1YIaKNgLYnd1g9VNW80tcb7oV5qvNUxG7NM8rbDpnl6RGunzlAtlGSb0wEs3nesu2vHNiX9TSsZ+Y+RjA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -7756,26 +7567,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", - "dev": true, - "dependencies": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - } - }, - "node_modules/deglob/node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, "node_modules/delay": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", @@ -8506,52 +8297,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, "node_modules/es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", @@ -8571,51 +8322,6 @@ "es6-promise": "^4.0.3" } }, - "node_modules/es6-set": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "es6-iterator": "~2.0.3", - "es6-symbol": "^3.1.3", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-set/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, "node_modules/esbuild": { "version": "0.14.54", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", @@ -8994,21 +8700,6 @@ "node": ">=0.8.0" } }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", - "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/eslint": { "version": "8.22.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", @@ -9077,19 +8768,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-config-standard": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", - "integrity": "sha512-UkFojTV1o0GOe1edOEiuI5ccYLJSuNngtqSeClNzhsmG8KPJ+7mRxgtp2oYhqZAK/brlXMoCd+VgXViE0AfyKw==", - "dev": true, - "peerDependencies": { - "eslint": ">=3.19.0", - "eslint-plugin-import": ">=2.2.0", - "eslint-plugin-node": ">=4.2.2", - "eslint-plugin-promise": ">=3.5.0", - "eslint-plugin-standard": ">=3.0.0" - } - }, "node_modules/eslint-config-typestrict": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/eslint-config-typestrict/-/eslint-config-typestrict-1.0.5.tgz", @@ -9359,40 +9037,6 @@ "node": ">=4.0.0" } }, - "node_modules/eslint-plugin-node": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-4.2.3.tgz", - "integrity": "sha512-vIUQPuwbVYdz/CYnlTLsJrRy7iXHQjdEe5wz0XhhdTym3IInM/zZLlPf9nZ2mThsH0QcsieCOWs2vOeCy/22LQ==", - "dev": true, - "dependencies": { - "ignore": "^3.0.11", - "minimatch": "^3.0.2", - "object-assign": "^4.0.1", - "resolve": "^1.1.7", - "semver": "5.3.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": ">=3.1.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", @@ -9414,15 +9058,6 @@ } } }, - "node_modules/eslint-plugin-promise": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", - "integrity": "sha512-kqXN7i1wfx5j7XuFVzuX4W3XDCEyNDsbd+O5NXWIl+zTSP510rKn2Xk8OO6JhM1ivXbkse0tQf6jjSTLS58Prg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-simple-import-sort": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", @@ -9444,15 +9079,6 @@ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha512-JyT7wqVYlaHxnljWMT7CKa0R1QDQqArTi6g8kYnexTHHuK7x3Vg//kCepnoTgdT9x/kDbSluXMhJgjBvgVRLlQ==", - "dev": true, - "peerDependencies": { - "eslint": ">=3.19.0" - } - }, "node_modules/eslint-rule-documentation": { "version": "1.0.23", "resolved": "https://registry.npmjs.org/eslint-rule-documentation/-/eslint-rule-documentation-1.0.23.tgz", @@ -9707,16 +9333,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -9774,30 +9390,6 @@ "util-extend": "^1.0.1" } }, - "node_modules/exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -9981,19 +9573,6 @@ "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", "dev": true }, - "node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -10123,12 +9702,6 @@ "semver": "bin/semver.js" } }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -10379,24 +9952,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dev": true, - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", - "dev": true, - "dependencies": { - "is-property": "^1.0.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -10458,15 +10013,6 @@ "node": ">=8.0.0" } }, - "node_modules/get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -11176,151 +10722,6 @@ "source-map": "~0.5.3" } }, - "node_modules/inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^1.1.0", - "ansi-regex": "^2.0.0", - "chalk": "^1.0.0", - "cli-cursor": "^1.0.1", - "cli-width": "^2.0.0", - "figures": "^1.3.5", - "lodash": "^4.3.0", - "readline2": "^1.0.1", - "run-async": "^0.1.0", - "rx-lite": "^3.1.2", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.0", - "through": "^2.3.6" - } - }, - "node_modules/inquirer/node_modules/ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", - "dev": true, - "dependencies": { - "restore-cursor": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", - "dev": true, - "dependencies": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", @@ -11611,25 +11012,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-my-ip-valid": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz", - "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==", - "dev": true - }, - "node_modules/is-my-json-valid": { - "version": "2.20.6", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz", - "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==", - "dev": true, - "dependencies": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^5.0.0", - "xtend": "^4.0.0" - } - }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -11703,12 +11085,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", - "dev": true - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -11734,12 +11110,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -12281,12 +11651,6 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -12365,15 +11729,6 @@ "node >= 0.2.0" ] }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -13282,30 +12637,6 @@ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -13387,12 +12718,6 @@ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "dev": true }, - "node_modules/lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha512-RWjUhzGbzG/KfDwk+onqdXvrsNv47G9UCMJgSKalPTSqJQyxZhQophG9jgqLf+15TIbZ5a/yG2YKOWsH3dVy9A==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -14184,12 +13509,6 @@ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, - "node_modules/mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==", - "dev": true - }, "node_modules/mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -14358,12 +13677,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, "node_modules/no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -15015,15 +14328,6 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -15172,19 +14476,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -15217,12 +14508,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -15435,27 +14720,6 @@ "node": ">=4" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pino": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/pino/-/pino-5.17.0.tgz", @@ -15479,100 +14743,6 @@ "integrity": "sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==", "dev": true }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha512-ft/WI9YK6FuTuw4Ql+QUaNXtm/ASQNqDUUsZEgFZKyFpW6amyP8Gx01xrRs8KdiNbbqXfYxkOXplpq1euWbOjw==", - "dev": true, - "dependencies": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -15648,43 +14818,6 @@ "pathe": "^1.1.0" } }, - "node_modules/pkg-up": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "integrity": "sha512-L+d849d9lz20hnRpUnWBRXOh+mAvygQpK7UuXiw+6QbPwL55RVgl+G+V936wCzs/6J7fj0pvgLY9OknZ+FqaNA==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/platform": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", @@ -15719,12 +14852,6 @@ "node": ">=16" } }, - "node_modules/pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ==", - "dev": true - }, "node_modules/postcss": { "version": "8.4.24", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", @@ -16459,29 +15586,6 @@ "node": ">=8.10.0" } }, - "node_modules/readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "mute-stream": "0.0.5" - } - }, - "node_modules/readline2/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/receptacle": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", @@ -16628,28 +15732,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "node_modules/require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", - "dev": true, - "dependencies": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-uncached/node_modules/resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -16860,15 +15942,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==", - "dev": true, - "dependencies": { - "once": "^1.3.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -16914,12 +15987,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==", - "dev": true - }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -17154,45 +16221,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha512-/YF5Uk8hcwi7ima04ppkbA4RaRMdPMBfwAvAf8sufYOxsJRtbdoBsT8vGvlb+799BrlGdYrd+oczIA2eN2JdWA==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "iojs": "*", - "node": ">=0.11.0" - } - }, - "node_modules/shelljs/node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/shelljs/node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/shiki": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", @@ -17699,4408 +16727,3640 @@ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true }, - "node_modules/standard": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/standard/-/standard-10.0.3.tgz", - "integrity": "sha512-JURZ+85ExKLQULckDFijdX5WHzN6RC7fgiZNSV4jFQVo+3tPoQGHyBrGekye/yf0aOfb4210EM5qPNlc2cRh4w==", - "dev": true, - "dependencies": { - "eslint": "~3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-config-standard-jsx": "4.0.2", - "eslint-plugin-import": "~2.2.0", - "eslint-plugin-node": "~4.2.2", - "eslint-plugin-promise": "~3.5.0", - "eslint-plugin-react": "~6.10.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~7.0.0" - }, - "bin": { - "standard": "bin/cmd.js" - }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/standard-engine": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-7.0.0.tgz", - "integrity": "sha512-d/NYzmZxQRxbcoCqlbI9gEMPYq7TLsU6Ywpki54xhedEd0GC4G02j1B7mlexb7HovqRtAtcUPTLQx2MnCO/uyA==", - "dev": true, - "dependencies": { - "deglob": "^2.1.0", - "get-stdin": "^5.0.1", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" - } + "node_modules/std-env": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", + "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", + "dev": true }, - "node_modules/standard/node_modules/acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "internal-slot": "^1.0.4" }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" } }, - "node_modules/standard/node_modules/acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, "dependencies": { - "acorn": "^3.0.4" + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } }, - "node_modules/standard/node_modules/acorn-jsx/node_modules/acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, - "node_modules/standard/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "node_modules/stream-combiner2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/stream-combiner2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/standard/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "node_modules/stream-combiner2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/standard/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" } }, - "node_modules/standard/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "dev": true, "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, - "node_modules/standard/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/stream-splicer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/stream-splicer/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "ms": "2.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/standard/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/stream-splicer/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/standard/node_modules/eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha512-x6LJGXWCGB/4YOBhL48yeppZTo+YQUNC37N5qqCpC1b1kkNzydlQHQAtPuUSFoZSxgIadrysQoW2Hq602P+uEA==", + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "dependencies": { - "babel-code-frame": "^6.16.0", - "chalk": "^1.1.3", - "concat-stream": "^1.5.2", - "debug": "^2.1.1", - "doctrine": "^2.0.0", - "escope": "^3.6.0", - "espree": "^3.4.0", - "esquery": "^1.0.0", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "glob": "^7.0.3", - "globals": "^9.14.0", - "ignore": "^3.2.0", - "imurmurhash": "^0.1.4", - "inquirer": "^0.12.0", - "is-my-json-valid": "^2.10.0", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.5.1", - "json-stable-stringify": "^1.0.0", - "levn": "^0.3.0", - "lodash": "^4.0.0", - "mkdirp": "^0.5.0", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.1", - "pluralize": "^1.2.1", - "progress": "^1.1.8", - "require-uncached": "^1.0.2", - "shelljs": "^0.7.5", - "strip-bom": "^3.0.0", - "strip-json-comments": "~2.0.1", - "table": "^3.7.8", - "text-table": "~0.2.0", - "user-home": "^2.0.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">=4" + "node": ">=8.0" } }, - "node_modules/standard/node_modules/eslint-config-standard-jsx": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.2.tgz", - "integrity": "sha512-F8fRh2WFnTek7dZH9ZaE0PCBwdVGkwVWZmizla/DDNOmg7Tx6B/IlK5+oYpiX29jpu73LszeJj5i1axEZv6VMw==", + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "peerDependencies": { - "eslint": ">=3.19.0", - "eslint-plugin-react": ">=6.10.3" + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/standard/node_modules/eslint-import-resolver-node": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", - "integrity": "sha512-HI8ShtDIy7gON76Nr3bu4zl0DuCLPo1Fud9P2lltOQKeiAS2r5/o/l3y+V8HJ1cDLFSz+tHu7/V9fI5jirwlbw==", + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "debug": "^2.2.0", - "object-assign": "^4.0.1", - "resolve": "^1.1.6" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/standard/node_modules/eslint-plugin-import": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", - "integrity": "sha512-8HLeIYzOH4eltevxf+iC9Dtz/91yaeOqtlba5srcpQWLrv57F5NNG1RNLqAbpWJWDD4BxKuKjUveJY9W6Tbswg==", + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "dependencies": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.2.0", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.2.0", - "eslint-module-utils": "^2.0.0", - "has": "^1.0.1", - "lodash.cond": "^4.3.0", - "minimatch": "^3.0.3", - "pkg-up": "^1.0.0" - }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "2.x - 3.x" + "node": ">= 4.0.0" } }, - "node_modules/standard/node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==", - "dev": true, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - }, + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.6.19" } }, - "node_modules/standard/node_modules/eslint-plugin-react": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", - "integrity": "sha512-vFfMSxJynKlgOhIVjhlZyibVUg442Aiv3482XPkgdYV90T8nD2QvxGXILZGwZHYMQ/l+A/De14O9D0qjDelSrg==", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "array.prototype.find": "^2.0.1", - "doctrine": "^1.2.2", - "has": "^1.0.1", - "jsx-ast-utils": "^1.3.4", - "object.assign": "^4.0.4" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=0.10" + "node": ">=12" }, - "peerDependencies": { - "eslint": "^2.0.0 || ^3.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/standard/node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/standard/node_modules/espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/standard/node_modules/file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "dependencies": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/standard/node_modules/flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/standard/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/standard/node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "node_modules/standard/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/standard/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/standard/node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { - "jsonify": "^0.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/standard/node_modules/jsx-ast-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", - "integrity": "sha512-0LwSmMlQjjUdXsdlyYhEfBJCn2Chm0zgUBmfmf1++KUULh+JOdlzrZfiwe2zmlVJx44UF+KX/B/odBoeK9hxmw==", + "node_modules/stringify-object-es5": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/stringify-object-es5/-/stringify-object-es5-2.5.0.tgz", + "integrity": "sha512-vE7Xdx9ylG4JI16zy7/ObKUB+MtxuMcWlj/WHHr3+yAlQoN6sst2stU9E+2Qs3OrlJw/Pf3loWxL1GauEHf6MA==", "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0", + "is-regexp": "^1.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/standard/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "node_modules/stringify-object-es5/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/standard/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/standard/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/standard/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/standard/node_modules/progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/standard/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "dependencies": { - "glob": "^7.1.3" + "engines": { + "node": ">=8" }, - "bin": { - "rimraf": "bin.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/standard/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "node_modules/strip-literal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "acorn": "^8.8.2" }, - "engines": { - "node": ">=0.10.0" - } + "funding": { + "url": "https://github.com/sponsors/antfu" + } }, - "node_modules/standard/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "minimist": "^1.1.0" } }, - "node_modules/standard/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/superagent": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", + "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.4.0 <13 || >=14" } }, - "node_modules/standard/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/supertest": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", + "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.5" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6.4.0" } }, - "node_modules/standard/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "node_modules/superwstest": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/superwstest/-/superwstest-2.0.3.tgz", + "integrity": "sha512-NRZMg+1UU1KNWzkE/QBqBDuTKPG2vFBLvG4xahcPqzZynVnbs3idllwgUL7zglPXymPP1g04+3NDGhbt6NCa5A==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "@types/supertest": "<7", + "@types/ws": "7.x || 8.x", + "ws": "7.x || 8.x" }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "supertest": "*" + }, + "peerDependenciesMeta": { + "supertest": { + "optional": true + } } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/std-env": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", - "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", - "dev": true - }, - "node_modules/stop-iteration-iterator": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "node_modules/svg-element-attributes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/svg-element-attributes/-/svg-element-attributes-1.3.1.tgz", + "integrity": "sha512-Bh05dSOnJBf3miNMqpsormfNtfidA/GxQVakhtn0T4DECWKeXQRQUceYjJ+OxYiiLdGe4Jo9iFV8wICFapFeIA==", "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" + "acorn-node": "^1.2.0" } }, - "node_modules/stream-combiner2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node_modules/tachyons": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/tachyons/-/tachyons-4.12.0.tgz", + "integrity": "sha512-2nA2IrYFy3raCM9fxJ2KODRGHVSZNTW3BR0YnlGsLUf1DA3pk3YfWZ/DdfbnZK6zLZS+jUenlUGJsKcA5fUiZg==", "dev": true }, - "node_modules/stream-combiner2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=6" } }, - "node_modules/stream-combiner2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/tape": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-5.6.0.tgz", + "integrity": "sha512-LyM4uqbiTAqDgsHTY0r1LH66yE24P3SZaz5TL3mPUds0XCTFl/0AMUBrjgBjUclvbPTFB4IalXg0wFfbTuuu/Q==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "array.prototype.every": "^1.1.3", + "call-bind": "^1.0.2", + "deep-equal": "^2.0.5", + "defined": "^1.0.0", + "dotignore": "^0.1.2", + "for-each": "^0.3.3", + "get-package-type": "^0.1.0", + "glob": "^7.2.3", + "has": "^1.0.3", + "has-dynamic-import": "^2.0.1", + "inherits": "^2.0.4", + "is-regex": "^1.1.4", + "minimist": "^1.2.6", + "object-inspect": "^1.12.2", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.3", + "resolve": "^2.0.0-next.3", + "resumer": "^0.0.0", + "string.prototype.trim": "^1.2.6", + "through": "^2.3.8" + }, + "bin": { + "tape": "bin/tape" } }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "node_modules/tape/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" } }, - "node_modules/stream-splicer/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/stream-splicer/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "node_modules/stream-splicer/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/terser": { + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz", + "integrity": "sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "engines": { - "node": ">=8.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { - "safe-buffer": "~5.2.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "node_modules/testdouble": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/testdouble/-/testdouble-3.18.0.tgz", + "integrity": "sha512-awRay/WxNHYz0SJrjvvg1xE4QQkbKgWFN1VNhhb132JSO2FSWUW4cebUtD0HjWWwrvpN3uFsVeaUhwpmVlzlkg==", "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "quibble": "^0.7.0", + "stringify-object-es5": "^2.5.0", + "theredoc": "^1.0.0" + }, "engines": { - "node": ">=0.6.19" + "node": ">= 14" } }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/testdouble-timers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/testdouble-timers/-/testdouble-timers-0.1.1.tgz", + "integrity": "sha512-xh41OtK2XYkKrvfqGWWlYJ16+ce3NqHw1hJVNzao2A28jaheqJbpG3qg14rIcCvRhj1itA0DahHVVqoM4XDYNA==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" + "lolex": "^1.4.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "testdouble": "^3.0.0" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/theredoc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/theredoc/-/theredoc-1.0.0.tgz", + "integrity": "sha512-KU3SA3TjRRM932jpNfD3u4Ec3bSvedyo5ITPI7zgWYnKep7BwQQaxlhI9qbO+lKJoRnoAbEVfMcAHRuKVYikDA==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=4" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "process": "~0.11.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=0.6.0" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/tinybench": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", + "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", + "dev": true }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "node_modules/tinypool": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.5.0.tgz", + "integrity": "sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "node_modules/tinyspy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz", + "integrity": "sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/stringify-object-es5": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/stringify-object-es5/-/stringify-object-es5-2.5.0.tgz", - "integrity": "sha512-vE7Xdx9ylG4JI16zy7/ObKUB+MtxuMcWlj/WHHr3+yAlQoN6sst2stU9E+2Qs3OrlJw/Pf3loWxL1GauEHf6MA==", + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "dependencies": { - "is-plain-obj": "^1.0.0", - "is-regexp": "^1.0.0" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.17.0" } }, - "node_modules/stringify-object-es5/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "is-number": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=8.0" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { - "node": ">=8" + "node": ">=0.6" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, - "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "node_modules/transform-ast": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", + "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", "dev": true, "dependencies": { - "acorn": "^8.8.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "acorn-node": "^1.3.0", + "convert-source-map": "^1.5.1", + "dash-ast": "^1.0.0", + "is-buffer": "^2.0.0", + "magic-string": "^0.23.2", + "merge-source-map": "1.0.4", + "nanobench": "^2.1.1" } }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } + "node_modules/transform-ast/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, - "node_modules/superagent": { - "version": "8.0.9", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", - "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", + "node_modules/transform-ast/node_modules/magic-string": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", + "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", "dev": true, "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.1.2", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" + "sourcemap-codec": "^1.4.1" } }, - "node_modules/supertest": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", - "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", - "dev": true, - "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.0.5" - }, - "engines": { - "node": ">=6.4.0" - } + "node_modules/triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, - "node_modules/superwstest": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/superwstest/-/superwstest-2.0.3.tgz", - "integrity": "sha512-NRZMg+1UU1KNWzkE/QBqBDuTKPG2vFBLvG4xahcPqzZynVnbs3idllwgUL7zglPXymPP1g04+3NDGhbt6NCa5A==", + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { - "@types/supertest": "<7", - "@types/ws": "7.x || 8.x", - "ws": "7.x || 8.x" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, "peerDependencies": { - "supertest": "*" + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" }, "peerDependenciesMeta": { - "supertest": { + "@swc/core": { "optional": true - } - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-element-attributes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/svg-element-attributes/-/svg-element-attributes-1.3.1.tgz", - "integrity": "sha512-Bh05dSOnJBf3miNMqpsormfNtfidA/GxQVakhtn0T4DECWKeXQRQUceYjJ+OxYiiLdGe4Jo9iFV8wICFapFeIA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node": ">=0.4.0" } }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { - "acorn-node": "^1.2.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { - "ajv": "^4.7.0", - "ajv-keywords": "^1.0.0", - "chalk": "^1.1.1", - "lodash": "^4.0.0", - "slice-ansi": "0.0.4", - "string-width": "^2.0.0" + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/table/node_modules/ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "dependencies": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" + "engines": { + "node": ">=4" } }, - "node_modules/table/node_modules/ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha512-vuBv+fm2s6cqUyey2A7qYcvsik+GMDJsw8BARP2sDE76cqmaZVarsvHf7Vx6VJ0Xk8gLl+u3MoAPf6gKzJefeA==", + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, "peerDependencies": { - "ajv": ">=4.10.0" + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/table/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/table/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "node_modules/type-component": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/type-component/-/type-component-0.0.1.tgz", + "integrity": "sha512-mDZRBQS2yZkwRQKfjJvQ8UIYJeBNNWCq+HBNstl9N5s9jZ4dkVYXEGkVPsSCEh5Ld4JM1kmrZTzjnrqSAIQ7dw==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/table/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/table/node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, "dependencies": { - "jsonify": "^0.0.1" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table/node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "is-typedarray": "^1.0.0" } }, - "node_modules/table/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/typedoc": { + "version": "0.23.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.10.tgz", + "integrity": "sha512-03EUiu/ZuScUBMnY6p0lY+HTH8SwhzvRE3gImoemdPDWXPXlks83UGTx++lyquWeB1MTwm9D9Ca8RIjkK3AFfQ==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "lunr": "^2.3.9", + "marked": "^4.0.18", + "minimatch": "^5.1.0", + "shiki": "^0.10.1" + }, + "bin": { + "typedoc": "bin/typedoc" }, "engines": { - "node": ">=4" + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x" } }, - "node_modules/table/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "node_modules/typedoc-plugin-markdown": { + "version": "3.13.4", + "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.13.4.tgz", + "integrity": "sha512-E/EBBmu6ARtnbswZGtBVBB/BfukZiGMOlqPc0RXCI/NFitONBahFqbCAF5fKQlijlcfipJj5pw5AMFH3NytrAw==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "handlebars": "^4.7.7" + }, + "peerDependencies": { + "typedoc": ">=0.23.0" } }, - "node_modules/table/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" + "balanced-match": "^1.0.0" } }, - "node_modules/table/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "node_modules/typedoc/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/table/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=0.8.0" + "node": ">=4.2.0" } }, - "node_modules/tachyons": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/tachyons/-/tachyons-4.12.0.tgz", - "integrity": "sha512-2nA2IrYFy3raCM9fxJ2KODRGHVSZNTW3BR0YnlGsLUf1DA3pk3YfWZ/DdfbnZK6zLZS+jUenlUGJsKcA5fUiZg==", - "dev": true - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/ua-parser-js": { + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tape": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.6.0.tgz", - "integrity": "sha512-LyM4uqbiTAqDgsHTY0r1LH66yE24P3SZaz5TL3mPUds0XCTFl/0AMUBrjgBjUclvbPTFB4IalXg0wFfbTuuu/Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/ufo": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", + "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, - "dependencies": { - "array.prototype.every": "^1.1.3", - "call-bind": "^1.0.2", - "deep-equal": "^2.0.5", - "defined": "^1.0.0", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.3", - "has": "^1.0.3", - "has-dynamic-import": "^2.0.1", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.6", - "object-inspect": "^1.12.2", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.3", - "resolve": "^2.0.0-next.3", - "resumer": "^0.0.0", - "string.prototype.trim": "^1.2.6", - "through": "^2.3.8" + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, "bin": { - "tape": "bin/tape" + "umd": "bin/cli.js" } }, - "node_modules/tape/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "buffer": "^5.2.1", + "through": "^2.3.8" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/terser": { - "version": "5.18.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz", - "integrity": "sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==", + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" }, "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" + "undeclared-identifiers": "bin.js" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "node": ">=4" } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=4" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/testdouble": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/testdouble/-/testdouble-3.18.0.tgz", - "integrity": "sha512-awRay/WxNHYz0SJrjvvg1xE4QQkbKgWFN1VNhhb132JSO2FSWUW4cebUtD0HjWWwrvpN3uFsVeaUhwpmVlzlkg==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "quibble": "^0.7.0", - "stringify-object-es5": "^2.5.0", - "theredoc": "^1.0.0" - }, "engines": { - "node": ">= 14" + "node": ">=4" } }, - "node_modules/testdouble-timers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/testdouble-timers/-/testdouble-timers-0.1.1.tgz", - "integrity": "sha512-xh41OtK2XYkKrvfqGWWlYJ16+ce3NqHw1hJVNzao2A28jaheqJbpG3qg14rIcCvRhj1itA0DahHVVqoM4XDYNA==", - "dev": true, - "dependencies": { - "lolex": "^1.4.0" - }, - "peerDependencies": { - "testdouble": "^3.0.0" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/theredoc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/theredoc/-/theredoc-1.0.0.tgz", - "integrity": "sha512-KU3SA3TjRRM932jpNfD3u4Ec3bSvedyo5ITPI7zgWYnKep7BwQQaxlhI9qbO+lKJoRnoAbEVfMcAHRuKVYikDA==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" } }, - "node_modules/time-zone": { + "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", - "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", - "dev": true, + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "process": "~0.11.0" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, - "engines": { - "node": ">=0.6.0" + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/tinybench": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", - "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", "dev": true }, - "node_modules/tinypool": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.5.0.tgz", - "integrity": "sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "engines": { - "node": ">=14.0.0" + "dependencies": { + "punycode": "^2.1.0" } }, - "node_modules/tinyspy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz", - "integrity": "sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==", + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6" } }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "node_modules/url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", "dev": true, "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" + "punycode": "^1.4.1", + "qs": "^6.11.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, + "node_modules/ursa-optional": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", + "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.14.2" + }, "engines": { "node": ">=4" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "node_modules/toidentifier": { + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "dev": true + }, + "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { - "node": ">=0.6" + "node": ">= 0.4.0" } }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "node_modules/transform-ast": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, "dependencies": { - "acorn-node": "^1.3.0", - "convert-source-map": "^1.5.1", - "dash-ast": "^1.0.0", - "is-buffer": "^2.0.0", - "magic-string": "^0.23.2", - "merge-source-map": "1.0.4", - "nanobench": "^2.1.1" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" } }, - "node_modules/transform-ast/node_modules/convert-source-map": { + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "node_modules/transform-ast/node_modules/magic-string": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.1" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", "dev": true, "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" }, "peerDependenciesMeta": { - "@swc/core": { + "@types/node": { "optional": true }, - "@swc/wasm": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { "optional": true } } }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/vite-node": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.32.2.tgz", + "integrity": "sha512-dTQ1DCLwl2aEseov7cfQ+kDMNJpM1ebpyMMMwWzBvLbis8Nla/6c9WQcqpPssTwS6Rp/+U6KwlIj8Eapw4bLdA==", "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, "engines": { - "node": ">=0.4.0" + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "node_modules/vite-plugin-top-level-await": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.3.1.tgz", + "integrity": "sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "@rollup/plugin-virtual": "^3.0.1", + "@swc/core": "^1.3.10", + "uuid": "^9.0.0" + }, + "peerDependencies": { + "vite": ">=2.8" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/vite-plugin-top-level-await/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, "bin": { - "json5": "lib/cli.js" + "uuid": "dist/bin/uuid" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/vite-plugin-wasm": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-wasm/-/vite-plugin-wasm-3.2.2.tgz", + "integrity": "sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==", "dev": true, - "engines": { - "node": ">=4" + "peerDependencies": { + "vite": "^2 || ^3 || ^4" } }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/vite/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">= 6" + "node": ">=12" }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/vite/node_modules/rollup": { + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz", + "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">= 0.8.0" + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/type-component": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/type-component/-/type-component-0.0.1.tgz", - "integrity": "sha512-mDZRBQS2yZkwRQKfjJvQ8UIYJeBNNWCq+HBNstl9N5s9jZ4dkVYXEGkVPsSCEh5Ld4JM1kmrZTzjnrqSAIQ7dw==", - "dev": true - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/vitest": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.32.2.tgz", + "integrity": "sha512-hU8GNNuQfwuQmqTLfiKcqEhZY72Zxb7nnN07koCUNmntNxbKQnVbeIS6sqUgR3eXSlbOpit8+/gr1KpqoMgWCQ==", "dev": true, + "dependencies": { + "@types/chai": "^4.3.5", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.32.2", + "@vitest/runner": "0.32.2", + "@vitest/snapshot": "0.32.2", + "@vitest/spy": "0.32.2", + "@vitest/utils": "0.32.2", + "acorn": "^8.8.2", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.7", + "concordance": "^5.0.4", + "debug": "^4.3.4", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "std-env": "^3.3.2", + "strip-literal": "^1.0.1", + "tinybench": "^2.5.0", + "tinypool": "^0.5.0", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.32.2", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, "engines": { - "node": ">=10" + "node": ">=v14.18.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "url": "https://opencollective.com/vitest" }, - "engines": { - "node": ">= 0.6" + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } } }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "node_modules/vitest/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/typedoc": { - "version": "0.23.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.10.tgz", - "integrity": "sha512-03EUiu/ZuScUBMnY6p0lY+HTH8SwhzvRE3gImoemdPDWXPXlks83UGTx++lyquWeB1MTwm9D9Ca8RIjkK3AFfQ==", + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.0.18", - "minimatch": "^5.1.0", - "shiki": "^0.10.1" - }, - "bin": { - "typedoc": "bin/typedoc" + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" }, "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x" + "node": ">=10.13.0" } }, - "node_modules/typedoc-plugin-markdown": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.13.4.tgz", - "integrity": "sha512-E/EBBmu6ARtnbswZGtBVBB/BfukZiGMOlqPc0RXCI/NFitONBahFqbCAF5fKQlijlcfipJj5pw5AMFH3NytrAw==", + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "dependencies": { - "handlebars": "^4.7.7" - }, - "peerDependencies": { - "typedoc": ">=0.23.0" + "defaults": "^1.0.3" } }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "peer": true, + "engines": { + "node": ">= 8" } }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/webdriver": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.11.1.tgz", + "integrity": "sha512-hSpUZYzUA65t4DDtKujCHUX6hpFTUleb7lWMcf5xjPz8sxWrK9R8NIw7pXt/GU6PVS331nGAaYkzoXrqz2VB8w==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "@types/node": "^20.1.0", + "@types/ws": "^8.5.3", + "@wdio/config": "8.11.0", + "@wdio/logger": "8.11.0", + "@wdio/protocols": "8.11.0", + "@wdio/types": "8.10.4", + "@wdio/utils": "8.11.0", + "deepmerge-ts": "^5.0.0", + "got": "^ 12.6.1", + "ky": "^0.33.0", + "ws": "^8.8.0" }, "engines": { - "node": ">=10" + "node": "^16.13 || >=18" } }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "node_modules/webdriver/node_modules/@types/node": { + "version": "20.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", + "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==", + "dev": true + }, + "node_modules/webdriver/node_modules/@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" + "dependencies": { + "@types/node": "*" } }, - "node_modules/ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "node_modules/webdriver/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], "engines": { - "node": "*" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/ufo": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", - "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "node_modules/webdriverio": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.11.2.tgz", + "integrity": "sha512-e/9WkdNTfWeoaSo2UzK0Giec/nQX3i7U9J8esimhozH/EpwSqIaEJ2pRRlxRVafEhe2OBG1QDhnLnDjdCC5Hxg==", "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" + "dependencies": { + "@types/node": "^20.1.0", + "@wdio/config": "8.11.0", + "@wdio/logger": "8.11.0", + "@wdio/protocols": "8.11.0", + "@wdio/repl": "8.10.1", + "@wdio/types": "8.10.4", + "@wdio/utils": "8.11.0", + "archiver": "^5.0.0", + "aria-query": "^5.0.0", + "css-shorthand-properties": "^1.1.1", + "css-value": "^0.0.1", + "devtools": "8.11.0", + "devtools-protocol": "^0.0.1152884", + "grapheme-splitter": "^1.0.2", + "import-meta-resolve": "^3.0.0", + "is-plain-obj": "^4.1.0", + "lodash.clonedeep": "^4.5.0", + "lodash.zip": "^4.2.0", + "minimatch": "^9.0.0", + "puppeteer-core": "20.3.0", + "query-selector-shadow-dom": "^1.0.0", + "resq": "^1.9.1", + "rgb2hex": "0.2.5", + "serialize-error": "^8.0.0", + "webdriver": "8.11.1" }, "engines": { - "node": ">=0.8.0" + "node": "^16.13 || >=18" } }, - "node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "dependencies": { - "multiformats": "^9.4.2" - } + "node_modules/webdriverio/node_modules/@types/node": { + "version": "20.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", + "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==", + "dev": true }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "node_modules/webdriverio/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "bin": { - "umd": "bin/cli.js" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/webdriverio/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "node_modules/webdriverio/node_modules/minimatch": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", + "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", "dev": true, "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unbzip2-stream/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "node_modules/webpack": { + "version": "5.88.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz", + "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==", "dev": true, "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" }, "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, + "webpack": "bin/webpack.js" + }, "engines": { - "node": ">=4" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", "dev": true, "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=4" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 10" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">=10.13.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/webpack/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.8.x" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, - "bin": { - "update-browserslist-db": "cli.js" + "engines": { + "node": ">= 10.13.0" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/url": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", - "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "hasInstallScript": true, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.2" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=4" + "bin": { + "which": "bin/which" } }, - "node_modules/user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==", + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { - "os-homedir": "^1.0.0" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" }, "engines": { - "node": ">=10.12.0" + "node": ">=8" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, + "node_modules/winston": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.9.0.tgz", + "integrity": "sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==", "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, "engines": { - "node": ">= 0.8" + "node": ">= 12.0.0" } }, - "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", - "dev": true, + "node_modules/winston-daily-rotate-file": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz", + "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==", "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" - }, - "bin": { - "vite": "bin/vite.js" + "file-stream-rotator": "^0.6.1", + "object-hash": "^2.0.1", + "triple-beam": "^1.3.0", + "winston-transport": "^4.4.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">=8" }, "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "winston": "^3" } }, - "node_modules/vite-node": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.32.2.tgz", - "integrity": "sha512-dTQ1DCLwl2aEseov7cfQ+kDMNJpM1ebpyMMMwWzBvLbis8Nla/6c9WQcqpPssTwS6Rp/+U6KwlIj8Eapw4bLdA==", - "dev": true, - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.2.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, + "node_modules/winston-daily-rotate-file/node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", "engines": { - "node": ">=v14.18.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "node": ">= 6" } }, - "node_modules/vite-plugin-top-level-await": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.3.1.tgz", - "integrity": "sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==", - "dev": true, + "node_modules/winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", "dependencies": { - "@rollup/plugin-virtual": "^3.0.1", - "@swc/core": "^1.3.10", - "uuid": "^9.0.0" + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" }, - "peerDependencies": { - "vite": ">=2.8" + "engines": { + "node": ">= 6.4.0" } }, - "node_modules/vite-plugin-top-level-await/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite-plugin-wasm": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vite-plugin-wasm/-/vite-plugin-wasm-3.2.2.tgz", - "integrity": "sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==", - "dev": true, - "peerDependencies": { - "vite": "^2 || ^3 || ^4" - } + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vite/node_modules/rollup": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz", - "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==", + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">=8" } }, - "node_modules/vitest": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.32.2.tgz", - "integrity": "sha512-hU8GNNuQfwuQmqTLfiKcqEhZY72Zxb7nnN07koCUNmntNxbKQnVbeIS6sqUgR3eXSlbOpit8+/gr1KpqoMgWCQ==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "@types/chai": "^4.3.5", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.32.2", - "@vitest/runner": "0.32.2", - "@vitest/snapshot": "0.32.2", - "@vitest/spy": "0.32.2", - "@vitest/utils": "0.32.2", - "acorn": "^8.8.2", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "concordance": "^5.0.4", - "debug": "^4.3.4", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "std-env": "^3.3.2", - "strip-literal": "^1.0.1", - "tinybench": "^2.5.0", - "tinypool": "^0.5.0", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.32.2", - "why-is-node-running": "^2.2.2" - }, - "bin": { - "vitest": "vitest.mjs" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=v14.18.0" + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" }, "peerDependencies": { - "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", - "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { + "bufferutil": { "optional": true }, - "webdriverio": { + "utf-8-validate": { "optional": true } } }, - "node_modules/vitest/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=0.4" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=10.13.0" + "node": ">=10" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "defaults": "^1.0.3" + "engines": { + "node": ">=10" } }, - "node_modules/weak-lru-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", - "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "peer": true, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/webdriver": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.11.1.tgz", - "integrity": "sha512-hSpUZYzUA65t4DDtKujCHUX6hpFTUleb7lWMcf5xjPz8sxWrK9R8NIw7pXt/GU6PVS331nGAaYkzoXrqz2VB8w==", + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "@types/node": "^20.1.0", - "@types/ws": "^8.5.3", - "@wdio/config": "8.11.0", - "@wdio/logger": "8.11.0", - "@wdio/protocols": "8.11.0", - "@wdio/types": "8.10.4", - "@wdio/utils": "8.11.0", - "deepmerge-ts": "^5.0.0", - "got": "^ 12.6.1", - "ky": "^0.33.0", - "ws": "^8.8.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "^16.13 || >=18" + "node": ">=8" } }, - "node_modules/webdriver/node_modules/@types/node": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", - "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==", - "dev": true - }, - "node_modules/webdriver/node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "node_modules/yarn": { + "version": "1.22.19", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz", + "integrity": "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==", "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/webdriver/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "hasInstallScript": true, + "bin": { + "yarn": "bin/yarn.js", + "yarnpkg": "bin/yarn.js" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=4.0.0" } }, - "node_modules/webdriverio": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.11.2.tgz", - "integrity": "sha512-e/9WkdNTfWeoaSo2UzK0Giec/nQX3i7U9J8esimhozH/EpwSqIaEJ2pRRlxRVafEhe2OBG1QDhnLnDjdCC5Hxg==", + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "dependencies": { - "@types/node": "^20.1.0", - "@wdio/config": "8.11.0", - "@wdio/logger": "8.11.0", - "@wdio/protocols": "8.11.0", - "@wdio/repl": "8.10.1", - "@wdio/types": "8.10.4", - "@wdio/utils": "8.11.0", - "archiver": "^5.0.0", - "aria-query": "^5.0.0", - "css-shorthand-properties": "^1.1.1", - "css-value": "^0.0.1", - "devtools": "8.11.0", - "devtools-protocol": "^0.0.1152884", - "grapheme-splitter": "^1.0.2", - "import-meta-resolve": "^3.0.0", - "is-plain-obj": "^4.1.0", - "lodash.clonedeep": "^4.5.0", - "lodash.zip": "^4.2.0", - "minimatch": "^9.0.0", - "puppeteer-core": "20.3.0", - "query-selector-shadow-dom": "^1.0.0", - "resq": "^1.9.1", - "rgb2hex": "0.2.5", - "serialize-error": "^8.0.0", - "webdriver": "8.11.1" - }, - "engines": { - "node": "^16.13 || >=18" + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } }, - "node_modules/webdriverio/node_modules/@types/node": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", - "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==", - "dev": true - }, - "node_modules/webdriverio/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/webdriverio/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/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, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webdriverio/node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "node_modules/zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 10" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/webpack": { - "version": "5.88.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz", - "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==", - "dev": true, + "packages/block": { + "name": "@ethereumjs/block", + "version": "5.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "ethereum-cryptography": "^2.1.2" }, - "bin": { - "webpack": "bin/webpack.js" + "devDependencies": { + "c-kzg": "^2.1.0" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "node": ">=18" } }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, + "packages/blockchain": { + "name": "@ethereumjs/blockchain", + "version": "7.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/ethash": "3.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2", + "lru-cache": "^10.0.0" }, + "devDependencies": {}, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } + "node": ">=18" } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, + "packages/blockchain/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", "engines": { - "node": ">= 10" + "node": "14 || >=16.14" } }, - "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", - "dev": true, + "packages/client": { + "name": "@ethereumjs/client", + "version": "0.8.0", + "hasInstallScript": true, + "license": "MPL-2.0", "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/blockchain": "7.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/devp2p": "6.0.0-rc.1", + "@ethereumjs/ethash": "3.0.0-rc.1", + "@ethereumjs/evm": "2.0.0-rc.1", + "@ethereumjs/genesis": "0.1.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/statemanager": "2.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "@ethereumjs/vm": "7.0.0-rc.1", + "abstract-level": "^1.0.3", + "body-parser": "^1.19.2", + "c-kzg": "^2.1.0", + "chalk": "^4.1.2", + "connect": "^3.7.0", + "cors": "^2.8.5", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2", + "fs-extra": "^10.1.0", + "it-pipe": "^1.1.0", + "jayson": "^4.0.0", + "jwt-simple": "^0.5.6", + "level": "^8.0.0", + "memory-level": "^1.0.0", + "multiaddr": "^10.0.1", + "peer-id": "^0.14.3", + "qheap": "^1.4.0", + "winston": "^3.3.3", + "winston-daily-rotate-file": "^4.5.5", + "yargs": "^17.7.1" }, - "engines": { - "node": ">=10.0.0" + "bin": { + "ethereumjs": "dist/bin/cli.js" + }, + "devDependencies": { + "@types/body-parser": "^1.19.2", + "@types/connect": "^3.4.35", + "@types/fs-extra": "^9.0.13", + "@types/jwt-simple": "^0.5.33", + "@types/yargs": "^17.0.24", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "file-replace-loader": "^1.2.0", + "it-pair": "^1.0.0", + "it-pushable": "^1.4.2", + "os-browserify": "^0.3.0", + "pino": "^5.8.0", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "supertest": "^6.1.3", + "superwstest": "^2.0.1", + "testdouble": "^3.16.6", + "testdouble-timers": "^0.1.1", + "util": "^0.12.4", + "webpack": "^5.55.1", + "webpack-cli": "^4.8.0" + }, + "engines": { + "node": ">=18" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, + "packages/client/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, "engines": { - "node": ">=10.13.0" + "node": ">=12" } }, - "node_modules/webpack/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, + "packages/client/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "packages/client/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">=0.8.x" + "node": ">=8" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, + "packages/client/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">=8" + } + }, + "packages/client/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "engines": { + "node": ">=12" } }, - "node_modules/well-known-symbols": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", - "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", - "dev": true, + "packages/client/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, + "packages/common": { + "name": "@ethereumjs/common", + "version": "4.0.0-rc.1", + "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@ethereumjs/util": "9.0.0-rc.1", + "crc": "^4.3.2" } }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, + "packages/devp2p": { + "name": "@ethereumjs/devp2p", + "version": "6.0.0-rc.1", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "@scure/base": "1.1.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2", + "lru-cache": "^7.18.3", + "multiaddr": "^10.0.1", + "scanf": "^1.1.2", + "snappyjs": "^0.6.1" }, - "bin": { - "which": "bin/which" + "devDependencies": { + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@types/chalk": "^2.2.0", + "@types/debug": "^4.1.4", + "@types/k-bucket": "^5.0.0", + "chalk": "^2.4.2", + "testdouble": "^3.8.2" + }, + "engines": { + "node": ">=18" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "packages/devp2p/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "packages/devp2p/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "packages/devp2p/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "packages/devp2p/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "packages/devp2p/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "packages/devp2p/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, + "packages/ethash": { + "name": "@ethereumjs/ethash", + "version": "3.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "bigint-crypto-utils": "^3.2.2", + "ethereum-cryptography": "^2.1.2" }, - "bin": { - "why-is-node-running": "cli.js" + "devDependencies": { + "@ethereumjs/common": "4.0.0-rc.1" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/winston": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.9.0.tgz", - "integrity": "sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==", + "packages/evm": { + "name": "@ethereumjs/evm", + "version": "2.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2", + "rustbn-wasm": "^0.2.0" + }, + "devDependencies": { + "@ethereumjs/statemanager": "2.0.0-rc.1", + "@ethersproject/abi": "^5.0.12", + "@types/benchmark": "^1.0.33", + "@types/core-js": "^2.5.0", + "@types/minimist": "^1.2.2", + "@types/node-dir": "^0.0.34", + "benchmark": "^2.1.4", + "c-kzg": "^2.1.0", + "level": "^8.0.0", + "memory-level": "^1.0.0", + "minimist": "^1.2.5", + "node-dir": "^0.1.17", + "solc": "^0.8.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">=18" } }, - "node_modules/winston-daily-rotate-file": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz", - "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==", + "packages/evm/node_modules/rustbn-wasm": { + "name": "rustbn.wasm", + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/ethereumjs/rustbn.wasm.git#9c39b13490021fbff6960306ca10b73b1388216c", "dependencies": { - "file-stream-rotator": "^0.6.1", - "object-hash": "^2.0.1", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" + "@scure/base": "^1.1.1" + } + }, + "packages/genesis": { + "name": "@ethereumjs/genesis", + "version": "0.1.0-rc.1", + "license": "MIT", + "dependencies": { + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1" }, "engines": { - "node": ">=8" - }, - "peerDependencies": { - "winston": "^3" + "node": ">=18" } }, - "node_modules/winston-daily-rotate-file/node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "packages/rlp": { + "name": "@ethereumjs/rlp", + "version": "5.0.0-rc.1", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, "engines": { - "node": ">= 6" + "node": ">=18" } }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "packages/statemanager": { + "name": "@ethereumjs/statemanager", + "version": "2.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2", + "ethers": "^6.4.0", + "js-sdsl": "^4.1.4", + "lru-cache": "^10.0.0" }, - "engines": { - "node": ">= 6.4.0" + "devDependencies": { + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/genesis": "0.1.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2" } }, - "node_modules/winston/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "packages/statemanager/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "14 || >=16.14" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, + "packages/trie": { + "name": "@ethereumjs/trie", + "version": "6.0.0-rc.1", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "^2.1.2", + "lru-cache": "^10.0.0", + "readable-stream": "^3.6.0" + }, + "devDependencies": { + "@ethereumjs/genesis": "0.1.0-rc.1", + "@types/benchmark": "^1.0.33", + "0x": "^4.9.1", + "abstract-level": "^1.0.3", + "level": "^8.0.0", + "level-legacy": "npm:level@^7.0.0", + "level-mem": "^6.0.1", + "levelup": "^5.1.1", + "lmdb": "^2.5.3", + "memory-level": "^1.0.0", + "micro-bmark": "0.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "packages/trie/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "engines": { + "node": "14 || >=16.14" + } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "packages/tx": { + "name": "@ethereumjs/tx", + "version": "5.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "ethereum-cryptography": "^2.1.2" + }, + "devDependencies": { + "@types/minimist": "^1.2.0", + "@types/node-dir": "^0.0.34", + "minimist": "^1.2.0", + "node-dir": "^0.1.16" }, "engines": { - "node": ">=10" + "node": ">=18" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependencies": { + "c-kzg": "^2.1.0" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, + "packages/util": { + "name": "@ethereumjs/util", + "version": "9.0.0-rc.1", + "license": "MPL-2.0", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@ethereumjs/rlp": "5.0.0-rc.1", + "ethereum-cryptography": "^2.1.2" }, + "devDependencies": {}, "engines": { - "node": ">=10" + "node": ">=18" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependencies": { + "c-kzg": "^2.1.0" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } } }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, + "packages/vm": { + "name": "@ethereumjs/vm", + "version": "7.0.0-rc.1", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/blockchain": "7.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/evm": "2.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/statemanager": "2.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "debug": "^4.3.3", + "ethereum-cryptography": "^2.1.2" + }, + "devDependencies": { + "@ethersproject/abi": "^5.0.12", + "@types/benchmark": "^1.0.33", + "@types/core-js": "^2.5.0", + "@types/minimist": "^1.2.2", + "@types/node-dir": "^0.0.34", + "benchmark": "^2.1.4", + "c-kzg": "^2.1.0", + "minimist": "^1.2.5", + "node-dir": "^0.1.17", + "nyc": "^15.1.0", + "solc": "^0.8.1", + "tape": "^5.3.1" + }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "packages/wallet": { + "name": "@ethereumjs/wallet", + "version": "2.0.0-rc.1", + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@ethereumjs/util": "9.0.0-rc.1", + "@scure/base": "^1.1.1", + "ethereum-cryptography": "^2.1.2", + "js-md5": "^0.7.3", + "uuid": "^9.0.0" + }, + "devDependencies": { + "@types/js-md5": "^0.4.3", + "@types/lodash.zip": "^4.2.7", + "@types/uuid": "^9.0.2", + "ethers": "^6.4.0", + "lodash.zip": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "packages/wallet/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true }, - "node_modules/write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", + "@adraffy/ens-normalize": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.9.2.tgz", + "integrity": "sha512-0h+FrQDqe2Wn+IIGFkTCd4aAwTJ+7834Ek1COohCyV26AXhwQ7WQaz+4F/nLOeVl/3BtWHOHLPsq46V8YB46Eg==" + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "requires": { + "@babel/highlight": "^7.10.4" } }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true + }, + "@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true + "dependencies": { + "@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } }, - "utf-8-validate": { - "optional": true + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", "dev": true, - "engines": { - "node": ">=0.4" + "requires": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", "dev": true, - "engines": { - "node": ">= 14" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "@babel/helper-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "requires": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" }, - "engines": { - "node": ">=10" + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "@babel/helper-create-class-features-plugin": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", + "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", + "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "@babel/helper-define-polyfill-provider": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", + "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" }, - "engines": { - "node": ">=8" + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/yarn": { - "version": "1.22.19", - "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz", - "integrity": "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==", + "@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, - "hasInstallScript": true, - "bin": { - "yarn": "bin/yarn.js", - "yarnpkg": "bin/yarn.js" - }, - "engines": { - "node": ">=4.0.0" + "requires": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/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==", + "@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" } }, - "packages/block": { - "name": "@ethereumjs/block", - "version": "4.2.2", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", - "ethereum-cryptography": "^2.1.2" - }, - "devDependencies": { - "c-kzg": "^2.1.0" - }, - "engines": { - "node": ">=18" + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" } }, - "packages/blockchain": { - "name": "@ethereumjs/blockchain", - "version": "6.2.2", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/ethash": "^2.0.5", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", - "debug": "^4.3.3", - "ethereum-cryptography": "^2.1.2", - "level": "^8.0.0", - "lru-cache": "^10.0.0" - }, - "devDependencies": { - "@types/async": "^2.4.1", - "@types/level-errors": "^3.0.0" - }, - "engines": { - "node": ">=18" - } + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true }, - "packages/blockchain/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "engines": { - "node": "14 || >=16.14" + "@babel/helper-remap-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", + "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.5", + "@babel/types": "^7.22.5" } }, - "packages/client": { - "name": "@ethereumjs/client", - "version": "0.7.1", - "hasInstallScript": true, - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/block": "4.2.2", - "@ethereumjs/blockchain": "6.2.2", - "@ethereumjs/common": "3.1.2", - "@ethereumjs/devp2p": "5.1.2", - "@ethereumjs/ethash": "2.0.5", - "@ethereumjs/evm": "1.3.2", - "@ethereumjs/genesis": "0.0.1", - "@ethereumjs/rlp": "4.0.1", - "@ethereumjs/statemanager": "1.0.5", - "@ethereumjs/trie": "5.0.5", - "@ethereumjs/tx": "4.1.2", - "@ethereumjs/util": "8.0.6", - "@ethereumjs/vm": "6.4.2", - "abstract-level": "^1.0.3", - "body-parser": "^1.19.2", - "c-kzg": "^2.1.0", - "chalk": "^4.1.2", - "connect": "^3.7.0", - "cors": "^2.8.5", - "debug": "^4.3.3", - "ethereum-cryptography": "^2.1.2", - "fs-extra": "^10.1.0", - "it-pipe": "^1.1.0", - "jayson": "^4.0.0", - "jwt-simple": "^0.5.6", - "level": "^8.0.0", - "memory-level": "^1.0.0", - "multiaddr": "^10.0.1", - "peer-id": "^0.14.3", - "qheap": "^1.4.0", - "winston": "^3.3.3", - "winston-daily-rotate-file": "^4.5.5", - "yargs": "^17.7.1" - }, - "bin": { - "ethereumjs": "dist/bin/cli.js" - }, - "devDependencies": { - "@types/body-parser": "^1.19.2", - "@types/connect": "^3.4.35", - "@types/fs-extra": "^9.0.13", - "@types/jwt-simple": "^0.5.33", - "@types/yargs": "^17.0.24", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.12.0", - "file-replace-loader": "^1.2.0", - "it-pair": "^1.0.0", - "it-pushable": "^1.4.2", - "os-browserify": "^0.3.0", - "pino": "^5.8.0", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "supertest": "^6.1.3", - "superwstest": "^2.0.1", - "testdouble": "^3.16.6", - "testdouble-timers": "^0.1.1", - "util": "^0.12.4", - "webpack": "^5.55.1", - "webpack-cli": "^4.8.0" - }, - "engines": { - "node": ">=18" + "@babel/helper-replace-supers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", + "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" } }, - "packages/client/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "packages/client/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "packages/client/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" } }, - "packages/client/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" } }, - "packages/client/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" + "@babel/helper-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" } }, - "packages/client/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true }, - "packages/common": { - "name": "@ethereumjs/common", - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "@ethereumjs/util": "^8.0.6", - "crc": "^4.3.2" - } + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true }, - "packages/devp2p": { - "name": "@ethereumjs/devp2p", - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", - "@scure/base": "1.1.1", - "debug": "^4.3.3", - "ethereum-cryptography": "^2.1.2", - "lru-cache": "^7.18.3", - "multiaddr": "^10.0.1", - "scanf": "^1.1.2", - "snappyjs": "^0.6.1" - }, - "devDependencies": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/tx": "^4.1.2", - "@types/chalk": "^2.2.0", - "@types/debug": "^4.1.4", - "@types/k-bucket": "^5.0.0", - "chalk": "^2.4.2", - "testdouble": "^3.8.2" - }, - "engines": { - "node": ">=18" - } + "@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true }, - "packages/devp2p/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@babel/helper-wrap-function": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", + "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" } }, - "packages/devp2p/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "requires": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" } }, - "packages/devp2p/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, "dependencies": { - "color-name": "1.1.3" + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "packages/devp2p/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", "dev": true }, - "packages/devp2p/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "packages/devp2p/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ethash": { - "name": "@ethereumjs/ethash", - "version": "2.0.5", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", - "bigint-crypto-utils": "^3.2.2", - "ethereum-cryptography": "^2.1.2" - }, - "devDependencies": { - "@ethereumjs/common": "^3.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "packages/evm": { - "name": "@ethereumjs/evm", - "version": "1.3.2", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", - "debug": "^4.3.3", - "ethereum-cryptography": "^2.1.2", - "rustbn-wasm": "^0.2.0" - }, - "devDependencies": { - "@ethereumjs/statemanager": "^1.0.5", - "@ethersproject/abi": "^5.0.12", - "@types/benchmark": "^1.0.33", - "@types/core-js": "^2.5.0", - "@types/minimist": "^1.2.2", - "@types/node-dir": "^0.0.34", - "benchmark": "^2.1.4", - "c-kzg": "^2.1.0", - "level": "^8.0.0", - "memory-level": "^1.0.0", - "minimist": "^1.2.5", - "node-dir": "^0.1.17", - "solc": "^0.8.1" - }, - "engines": { - "node": ">=18" - } - }, - "packages/evm/node_modules/rustbn-wasm": { - "name": "rustbn.wasm", - "version": "0.1.0", - "resolved": "git+ssh://git@github.com/ethereumjs/rustbn.wasm.git#9c39b13490021fbff6960306ca10b73b1388216c", - "dependencies": { - "@scure/base": "^1.1.1" - } - }, - "packages/genesis": { - "name": "@ethereumjs/genesis", - "version": "0.0.1", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/util": "^8.0.6" - }, - "engines": { - "node": ">=18" - } - }, - "packages/rlp": { - "name": "@ethereumjs/rlp", - "version": "4.0.1", - "license": "MPL-2.0", - "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=18" - } - }, - "packages/statemanager": { - "name": "@ethereumjs/statemanager", - "version": "1.0.5", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "debug": "^4.3.3", - "ethereum-cryptography": "^2.1.2", - "ethers": "^6.4.0", - "js-sdsl": "^4.1.4", - "lru-cache": "^10.0.0" - }, - "devDependencies": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/genesis": "^0.0.1", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/util": "^8.0.6", - "@types/tape": "^4.13.2", - "debug": "^4.3.3", - "eslint": "^8.0.0", - "ethereum-cryptography": "^2.1.2", - "functional-red-black-tree": "^1.0.1", - "karma": "^6.3.2", - "karma-chrome-launcher": "^3.1.0", - "karma-firefox-launcher": "^2.1.0", - "karma-tap": "^4.2.0", - "karma-typescript": "^5.5.3", - "nyc": "^15.1.0", - "standard": "^10.0.0", - "ts-node": "^10.2.1", - "typescript": "^4.4.2" - } - }, - "packages/statemanager/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "engines": { - "node": "14 || >=16.14" - } - }, - "packages/trie": { - "name": "@ethereumjs/trie", - "version": "5.0.5", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", - "@types/readable-stream": "^2.3.13", - "ethereum-cryptography": "^2.1.2", - "lru-cache": "^10.0.0", - "readable-stream": "^3.6.0" - }, - "devDependencies": { - "@ethereumjs/genesis": "^0.0.1", - "@types/benchmark": "^1.0.33", - "0x": "^4.9.1", - "abstract-level": "^1.0.3", - "level": "^8.0.0", - "level-legacy": "npm:level@^7.0.0", - "level-mem": "^6.0.1", - "levelup": "^5.1.1", - "lmdb": "^2.5.3", - "memory-level": "^1.0.0", - "micro-bmark": "0.2.0" - }, - "engines": { - "node": ">=18" - } - }, - "packages/trie/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "engines": { - "node": "14 || >=16.14" - } - }, - "packages/tx": { - "name": "@ethereumjs/tx", - "version": "4.1.2", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", - "ethereum-cryptography": "^2.1.2" - }, - "devDependencies": { - "@types/minimist": "^1.2.0", - "@types/node-dir": "^0.0.34", - "minimist": "^1.2.0", - "node-dir": "^0.1.16" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.0" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } - } - }, - "packages/util": { - "name": "@ethereumjs/util", - "version": "8.0.6", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.1.2" - }, - "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/secp256k1": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.0" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } - } - }, - "packages/vm": { - "name": "@ethereumjs/vm", - "version": "6.4.2", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/blockchain": "^6.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/evm": "^1.3.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/statemanager": "^1.0.5", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", - "debug": "^4.3.3", - "ethereum-cryptography": "^2.1.2" - }, - "devDependencies": { - "@ethersproject/abi": "^5.0.12", - "@types/benchmark": "^1.0.33", - "@types/core-js": "^2.5.0", - "@types/minimist": "^1.2.2", - "@types/node-dir": "^0.0.34", - "benchmark": "^2.1.4", - "c-kzg": "^2.1.0", - "minimist": "^1.2.5", - "node-dir": "^0.1.17", - "nyc": "^15.1.0", - "prettier": "^2.0.5", - "solc": "^0.8.1", - "standard": "^10.0.0", - "tape": "^5.3.1", - "ts-node": "^10.2.1", - "typedoc": "^0.22.4", - "typescript": "^4.4.2" - }, - "engines": { - "node": ">=18" - } - }, - "packages/vm/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages/vm/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/vm/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "packages/vm/node_modules/typedoc": { - "version": "0.22.18", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.18.tgz", - "integrity": "sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==", - "dev": true, - "dependencies": { - "glob": "^8.0.3", - "lunr": "^2.3.9", - "marked": "^4.0.16", - "minimatch": "^5.1.0", - "shiki": "^0.10.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 12.10.0" - }, - "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x || 4.7.x" - } - }, - "packages/wallet": { - "name": "@ethereumjs/wallet", - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "@ethereumjs/util": "^8.0.6", - "@scure/base": "^1.1.1", - "ethereum-cryptography": "^2.1.2", - "js-md5": "^0.7.3", - "uuid": "^9.0.0" - }, - "devDependencies": { - "@types/js-md5": "^0.4.3", - "@types/lodash.zip": "^4.2.7", - "@types/uuid": "^9.0.2", - "ethers": "^6.4.0", - "lodash.zip": "^4.2.0", - "nyc": "^15.1.0" - }, - "engines": { - "node": ">=18" - } - }, - "packages/wallet/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@adraffy/ens-normalize": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.9.2.tgz", - "integrity": "sha512-0h+FrQDqe2Wn+IIGFkTCd4aAwTJ+7834Ek1COohCyV26AXhwQ7WQaz+4F/nLOeVl/3BtWHOHLPsq46V8YB46Eg==" - }, - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", - "dev": true - }, - "@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.5" - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", - "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", - "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", - "dev": true, - "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", - "dev": true, - "requires": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" } }, "@babel/plugin-proposal-private-property-in-object": { @@ -23189,11 +21449,11 @@ "@ethereumjs/block": { "version": "file:packages/block", "requires": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "c-kzg": "^2.1.0", "ethereum-cryptography": "^2.1.2" } @@ -23201,18 +21461,15 @@ "@ethereumjs/blockchain": { "version": "file:packages/blockchain", "requires": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/ethash": "^2.0.5", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", - "@types/async": "^2.4.1", - "@types/level-errors": "^3.0.0", + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/ethash": "3.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", "ethereum-cryptography": "^2.1.2", - "level": "^8.0.0", "lru-cache": "^10.0.0" }, "dependencies": { @@ -23226,19 +21483,19 @@ "@ethereumjs/client": { "version": "file:packages/client", "requires": { - "@ethereumjs/block": "4.2.2", - "@ethereumjs/blockchain": "6.2.2", - "@ethereumjs/common": "3.1.2", - "@ethereumjs/devp2p": "5.1.2", - "@ethereumjs/ethash": "2.0.5", - "@ethereumjs/evm": "1.3.2", - "@ethereumjs/genesis": "0.0.1", - "@ethereumjs/rlp": "4.0.1", - "@ethereumjs/statemanager": "1.0.5", - "@ethereumjs/trie": "5.0.5", - "@ethereumjs/tx": "4.1.2", - "@ethereumjs/util": "8.0.6", - "@ethereumjs/vm": "6.4.2", + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/blockchain": "7.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/devp2p": "6.0.0-rc.1", + "@ethereumjs/ethash": "3.0.0-rc.1", + "@ethereumjs/evm": "2.0.0-rc.1", + "@ethereumjs/genesis": "0.1.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/statemanager": "2.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", + "@ethereumjs/vm": "7.0.0-rc.1", "@types/body-parser": "^1.19.2", "@types/connect": "^3.4.35", "@types/fs-extra": "^9.0.13", @@ -23336,18 +21593,18 @@ "@ethereumjs/common": { "version": "file:packages/common", "requires": { - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "crc": "^4.3.2" } }, "@ethereumjs/devp2p": { "version": "file:packages/devp2p", "requires": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "@scure/base": "1.1.1", "@types/chalk": "^2.2.0", "@types/debug": "^4.1.4", @@ -23417,10 +21674,10 @@ "@ethereumjs/ethash": { "version": "file:packages/ethash", "requires": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "bigint-crypto-utils": "^3.2.2", "ethereum-cryptography": "^2.1.2" } @@ -23428,10 +21685,10 @@ "@ethereumjs/evm": { "version": "file:packages/evm", "requires": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/statemanager": "^1.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/statemanager": "2.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "@ethersproject/abi": "^5.0.12", "@types/benchmark": "^1.0.33", "@types/core-js": "^2.5.0", @@ -23461,8 +21718,8 @@ "@ethereumjs/genesis": { "version": "file:packages/genesis", "requires": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/util": "^8.0.6" + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1" } }, "@ethereumjs/rlp": { @@ -23471,29 +21728,17 @@ "@ethereumjs/statemanager": { "version": "file:packages/statemanager", "requires": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/genesis": "^0.0.1", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/util": "^8.0.6", - "@types/tape": "^4.13.2", + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/genesis": "0.1.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "debug": "^4.3.3", - "eslint": "^8.0.0", "ethereum-cryptography": "^2.1.2", "ethers": "^6.4.0", - "functional-red-black-tree": "^1.0.1", "js-sdsl": "^4.1.4", - "karma": "^6.3.2", - "karma-chrome-launcher": "^3.1.0", - "karma-firefox-launcher": "^2.1.0", - "karma-tap": "^4.2.0", - "karma-typescript": "^5.5.3", - "lru-cache": "^10.0.0", - "nyc": "^15.1.0", - "standard": "^10.0.0", - "ts-node": "^10.2.1", - "typescript": "^4.4.2" + "lru-cache": "^10.0.0" }, "dependencies": { "lru-cache": { @@ -23506,9 +21751,9 @@ "@ethereumjs/trie": { "version": "file:packages/trie", "requires": { - "@ethereumjs/genesis": "^0.0.1", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/genesis": "0.1.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "@types/benchmark": "^1.0.33", "@types/readable-stream": "^2.3.13", "0x": "^4.9.1", @@ -23535,9 +21780,9 @@ "@ethereumjs/tx": { "version": "file:packages/tx", "requires": { - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "@types/minimist": "^1.2.0", "@types/node-dir": "^0.0.34", "ethereum-cryptography": "^2.1.2", @@ -23548,24 +21793,22 @@ "@ethereumjs/util": { "version": "file:packages/util", "requires": { - "@ethereumjs/rlp": "^4.0.1", - "@types/bn.js": "^5.1.0", - "@types/secp256k1": "^4.0.1", + "@ethereumjs/rlp": "5.0.0-rc.1", "ethereum-cryptography": "^2.1.2" } }, "@ethereumjs/vm": { "version": "file:packages/vm", "requires": { - "@ethereumjs/block": "^4.2.2", - "@ethereumjs/blockchain": "^6.2.2", - "@ethereumjs/common": "^3.1.2", - "@ethereumjs/evm": "^1.3.2", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/statemanager": "^1.0.5", - "@ethereumjs/trie": "^5.0.5", - "@ethereumjs/tx": "^4.1.2", - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/block": "5.0.0-rc.1", + "@ethereumjs/blockchain": "7.0.0-rc.1", + "@ethereumjs/common": "4.0.0-rc.1", + "@ethereumjs/evm": "2.0.0-rc.1", + "@ethereumjs/rlp": "5.0.0-rc.1", + "@ethereumjs/statemanager": "2.0.0-rc.1", + "@ethereumjs/trie": "6.0.0-rc.1", + "@ethereumjs/tx": "5.0.0-rc.1", + "@ethereumjs/util": "9.0.0-rc.1", "@ethersproject/abi": "^5.0.12", "@types/benchmark": "^1.0.33", "@types/core-js": "^2.5.0", @@ -23578,65 +21821,14 @@ "minimist": "^1.2.5", "node-dir": "^0.1.17", "nyc": "^15.1.0", - "prettier": "^2.0.5", "solc": "^0.8.1", - "standard": "^10.0.0", - "tape": "^5.3.1", - "ts-node": "^10.2.1", - "typedoc": "^0.22.4", - "typescript": "^4.4.2" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "typedoc": { - "version": "0.22.18", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.18.tgz", - "integrity": "sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==", - "dev": true, - "requires": { - "glob": "^8.0.3", - "lunr": "^2.3.9", - "marked": "^4.0.16", - "minimatch": "^5.1.0", - "shiki": "^0.10.1" - } - } + "tape": "^5.3.1" } }, "@ethereumjs/wallet": { "version": "file:packages/wallet", "requires": { - "@ethereumjs/util": "^8.0.6", + "@ethereumjs/util": "9.0.0-rc.1", "@scure/base": "^1.1.1", "@types/js-md5": "^0.4.3", "@types/lodash.zip": "^4.2.7", @@ -23645,7 +21837,6 @@ "ethers": "^6.4.0", "js-md5": "^0.7.3", "lodash.zip": "^4.2.0", - "nyc": "^15.1.0", "uuid": "^9.0.0" }, "dependencies": { @@ -24548,27 +22739,12 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "@types/async": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/async/-/async-2.4.2.tgz", - "integrity": "sha512-bWBbC7VG2jdjbgZMX0qpds8U/3h3anfIqE81L8jmVrgFZw/urEDnBA78ymGGKTTK6ciBXmmJ/xlok+Re41S8ww==", - "dev": true - }, "@types/benchmark": { "version": "1.0.33", "resolved": "https://registry.npmjs.org/@types/benchmark/-/benchmark-1.0.33.tgz", "integrity": "sha512-rG7Ieasa9UfZJnL72qiFvY9ivhEIYjCGgfcLLb5tJ/EL9+Mcxernj6W3HVCv/cOfJYuwNUwvVVhnrKl8iT8aqA==", "dev": true }, - "@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -24737,12 +22913,6 @@ "@types/node": "*" } }, - "@types/level-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, "@types/lodash": { "version": "4.14.195", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", @@ -24810,15 +22980,6 @@ "safe-buffer": "~5.1.1" } }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/superagent": { "version": "4.1.18", "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.18.tgz", @@ -25843,18 +24004,6 @@ "is-string": "^1.0.7" } }, - "array.prototype.find": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.1.tgz", - "integrity": "sha512-I2ri5Z9uMpMvnsNrHre9l3PaX+z9D0/z6F7Yt2u15q7wt0I62g5kX6xUKR1SJiefgG+u2/gJUmM8B47XRvQR6w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -25986,65 +24135,6 @@ "dequal": "^2.0.3" } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "babel-plugin-polyfill-corejs2": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", @@ -26665,23 +24755,6 @@ "get-intrinsic": "^1.0.2" } }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", - "dev": true, - "requires": { - "callsites": "^0.2.0" - }, - "dependencies": { - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==", - "dev": true - } - } - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -26834,12 +24907,6 @@ "safe-buffer": "^5.0.1" } }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, "class-is": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", @@ -26882,12 +24949,6 @@ "string-width": "^5.0.0" } }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -26941,12 +25002,6 @@ "shallow-clone": "^3.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -27181,12 +25236,6 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha512-OKZnPGeMQy2RPaUIBPFFd71iNf4791H12MCRuVQDnzGRwCYNYmTDy5pdafo2SLAcEMKzTOQnLWG4QdcjeJUMEg==", - "dev": true - }, "content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", @@ -27392,16 +25441,6 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "d3-array": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", @@ -27628,12 +25667,6 @@ "ms": "2.1.2" } }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha512-gV/pe1YIaKNgLYnd1g9VNW80tcb7oV5qvNUxG7NM8rbDpnl6RGunzlAtlGSb0wEs3nesu2vHNiX9TSsZ+Y+RjA==", - "dev": true - }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -27754,28 +25787,6 @@ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "dev": true }, - "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", - "dev": true, - "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - } - } - }, "delay": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", @@ -28371,48 +26382,12 @@ "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, "es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", @@ -28432,50 +26407,6 @@ "es6-promise": "^4.0.3" } }, - "es6-set": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "dev": true, - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "es6-iterator": "~2.0.3", - "es6-symbol": "^3.1.3", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - } - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, "esbuild": { "version": "0.14.54", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", @@ -28661,18 +26592,6 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", - "dev": true, - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, "eslint": { "version": "8.22.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", @@ -28751,13 +26670,6 @@ "dev": true, "requires": {} }, - "eslint-config-standard": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", - "integrity": "sha512-UkFojTV1o0GOe1edOEiuI5ccYLJSuNngtqSeClNzhsmG8KPJ+7mRxgtp2oYhqZAK/brlXMoCd+VgXViE0AfyKw==", - "dev": true, - "requires": {} - }, "eslint-config-typestrict": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/eslint-config-typestrict/-/eslint-config-typestrict-1.0.5.tgz", @@ -28976,33 +26888,6 @@ "integrity": "sha512-T9SmE/g6UV1uZo1oHAqOvL86XWl7Pl2EpRpnLI8g/bkJu+h7XBCB+1LnubRZ2CUQXj805vh4/CYZdnqtVaEo2Q==", "dev": true }, - "eslint-plugin-node": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-4.2.3.tgz", - "integrity": "sha512-vIUQPuwbVYdz/CYnlTLsJrRy7iXHQjdEe5wz0XhhdTym3IInM/zZLlPf9nZ2mThsH0QcsieCOWs2vOeCy/22LQ==", - "dev": true, - "requires": { - "ignore": "^3.0.11", - "minimatch": "^3.0.2", - "object-assign": "^4.0.1", - "resolve": "^1.1.7", - "semver": "5.3.0" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", - "dev": true - } - } - }, "eslint-plugin-prettier": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", @@ -29012,12 +26897,6 @@ "prettier-linter-helpers": "^1.0.0" } }, - "eslint-plugin-promise": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", - "integrity": "sha512-kqXN7i1wfx5j7XuFVzuX4W3XDCEyNDsbd+O5NXWIl+zTSP510rKn2Xk8OO6JhM1ivXbkse0tQf6jjSTLS58Prg==", - "dev": true - }, "eslint-plugin-simple-import-sort": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", @@ -29032,13 +26911,6 @@ "dev": true, "requires": {} }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha512-JyT7wqVYlaHxnljWMT7CKa0R1QDQqArTi6g8kYnexTHHuK7x3Vg//kCepnoTgdT9x/kDbSluXMhJgjBvgVRLlQ==", - "dev": true, - "requires": {} - }, "eslint-rule-documentation": { "version": "1.0.23", "resolved": "https://registry.npmjs.org/eslint-rule-documentation/-/eslint-rule-documentation-1.0.23.tgz", @@ -29190,16 +27062,6 @@ } } }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -29248,29 +27110,6 @@ "util-extend": "^1.0.1" } }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", - "dev": true - }, - "ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "requires": { - "type": "^2.7.2" - }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - } - } - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -29416,16 +27255,6 @@ "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", "dev": true }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -29532,12 +27361,6 @@ } } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -29711,24 +27534,6 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, - "generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dev": true, - "requires": { - "is-property": "^1.0.2" - } - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", - "dev": true, - "requires": { - "is-property": "^1.0.0" - } - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -29775,12 +27580,6 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==", - "dev": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -30291,120 +28090,6 @@ "source-map": "~0.5.3" } }, - "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ==", - "dev": true, - "requires": { - "ansi-escapes": "^1.1.0", - "ansi-regex": "^2.0.0", - "chalk": "^1.0.0", - "cli-cursor": "^1.0.1", - "cli-width": "^2.0.0", - "figures": "^1.3.5", - "lodash": "^4.3.0", - "readline2": "^1.0.1", - "run-async": "^0.1.0", - "rx-lite": "^3.1.2", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", - "dev": true, - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", - "dev": true, - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", @@ -30599,25 +28284,6 @@ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true }, - "is-my-ip-valid": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz", - "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==", - "dev": true - }, - "is-my-json-valid": { - "version": "2.20.6", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz", - "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==", - "dev": true, - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^5.0.0", - "xtend": "^4.0.0" - } - }, "is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -30664,12 +28330,6 @@ "isobject": "^3.0.1" } }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", - "dev": true - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -30686,12 +28346,6 @@ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -31093,12 +28747,6 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -31163,12 +28811,6 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" }, - "jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "dev": true - }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -31909,26 +29551,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -31989,12 +29611,6 @@ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "dev": true }, - "lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha512-RWjUhzGbzG/KfDwk+onqdXvrsNv47G9UCMJgSKalPTSqJQyxZhQophG9jgqLf+15TIbZ5a/yG2YKOWsH3dVy9A==", - "dev": true - }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -32644,12 +30260,6 @@ } } }, - "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==", - "dev": true - }, "mutexify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", @@ -32786,12 +30396,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -33269,12 +30873,6 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -33384,16 +30982,6 @@ "safe-buffer": "^5.1.1" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -33417,12 +31005,6 @@ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -33586,21 +31168,6 @@ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pino": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/pino/-/pino-5.17.0.tgz", @@ -33621,78 +31188,6 @@ "integrity": "sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==", "dev": true }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } - } - }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha512-ft/WI9YK6FuTuw4Ql+QUaNXtm/ASQNqDUUsZEgFZKyFpW6amyP8Gx01xrRs8KdiNbbqXfYxkOXplpq1euWbOjw==", - "dev": true, - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -33752,36 +31247,6 @@ "pathe": "^1.1.0" } }, - "pkg-up": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "integrity": "sha512-L+d849d9lz20hnRpUnWBRXOh+mAvygQpK7UuXiw+6QbPwL55RVgl+G+V936wCzs/6J7fj0pvgLY9OknZ+FqaNA==", - "dev": true, - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, "platform": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", @@ -33800,13 +31265,7 @@ "playwright-core": { "version": "1.35.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.1.tgz", - "integrity": "sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==", - "dev": true - }, - "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ==", + "integrity": "sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==", "dev": true }, "postcss": { @@ -34359,28 +31818,6 @@ "picomatch": "^2.2.1" } }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "mute-stream": "0.0.5" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - } - } - }, "receptacle": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", @@ -34496,24 +31933,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==", - "dev": true - } - } - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -34678,15 +32097,6 @@ "fsevents": "~2.3.2" } }, - "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==", - "dev": true, - "requires": { - "once": "^1.3.0" - } - }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -34704,12 +32114,6 @@ "queue-microtask": "^1.2.2" } }, - "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==", - "dev": true - }, "rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -34898,34 +32302,6 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha512-/YF5Uk8hcwi7ima04ppkbA4RaRMdPMBfwAvAf8sufYOxsJRtbdoBsT8vGvlb+799BrlGdYrd+oczIA2eN2JdWA==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "dependencies": { - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - } - } - }, "shiki": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", @@ -35066,653 +32442,269 @@ "resolved": "https://registry.npmjs.org/snappyjs/-/snappyjs-0.6.1.tgz", "integrity": "sha512-YIK6I2lsH072UE0aOFxxY1dPDCS43I5ktqHpeAsuLNYWkE5pGxRGWfDM4/vSUfNzXjC1Ivzt3qx31PCLmc9yqg==" }, - "socket.io": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.1.tgz", - "integrity": "sha512-W+utHys2w//dhFjy7iQQu9sGd3eokCjGbl2r59tyLqNiJJBdIebn3GAKEXBr3osqHTObJi2die/25bCx2zsaaw==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.5.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - } - }, - "socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dev": true, - "requires": { - "ws": "~8.11.0" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - } - } - }, - "socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "solc": { - "version": "0.8.20", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.20.tgz", - "integrity": "sha512-fPRnGspIEqmhu63RFO3pc79sLA7ZmzO0Uy0L5l6hEt2wAsq0o7UV6pXkAp3Mfv9IBhg7Px/oTu3a+y4gs3BWrQ==", - "dev": true, - "requires": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - } - } - }, - "sonic-boom": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.7.tgz", - "integrity": "sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg==", - "dev": true, - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "sort-object-keys": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", - "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", - "dev": true - }, - "sort-package-json": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.57.0.tgz", - "integrity": "sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==", - "dev": true, - "requires": { - "detect-indent": "^6.0.0", - "detect-newline": "3.1.0", - "git-hooks-list": "1.0.3", - "globby": "10.0.0", - "is-plain-obj": "2.1.0", - "sort-object-keys": "^1.1.3" - }, - "dependencies": { - "globby": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", - "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "socket.io": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.1.tgz", + "integrity": "sha512-W+utHys2w//dhFjy7iQQu9sGd3eokCjGbl2r59tyLqNiJJBdIebn3GAKEXBr3osqHTObJi2die/25bCx2zsaaw==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" } }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "ws": "~8.11.0" + }, + "dependencies": { + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + } } }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "requires": { - "readable-stream": "^3.0.0" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" - }, - "stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "standard": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/standard/-/standard-10.0.3.tgz", - "integrity": "sha512-JURZ+85ExKLQULckDFijdX5WHzN6RC7fgiZNSV4jFQVo+3tPoQGHyBrGekye/yf0aOfb4210EM5qPNlc2cRh4w==", + "solc": { + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.20.tgz", + "integrity": "sha512-fPRnGspIEqmhu63RFO3pc79sLA7ZmzO0Uy0L5l6hEt2wAsq0o7UV6pXkAp3Mfv9IBhg7Px/oTu3a+y4gs3BWrQ==", "dev": true, "requires": { - "eslint": "~3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-config-standard-jsx": "4.0.2", - "eslint-plugin-import": "~2.2.0", - "eslint-plugin-node": "~4.2.2", - "eslint-plugin-promise": "~3.5.0", - "eslint-plugin-react": "~6.10.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~7.0.0" + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" }, "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha512-x6LJGXWCGB/4YOBhL48yeppZTo+YQUNC37N5qqCpC1b1kkNzydlQHQAtPuUSFoZSxgIadrysQoW2Hq602P+uEA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.16.0", - "chalk": "^1.1.3", - "concat-stream": "^1.5.2", - "debug": "^2.1.1", - "doctrine": "^2.0.0", - "escope": "^3.6.0", - "espree": "^3.4.0", - "esquery": "^1.0.0", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "glob": "^7.0.3", - "globals": "^9.14.0", - "ignore": "^3.2.0", - "imurmurhash": "^0.1.4", - "inquirer": "^0.12.0", - "is-my-json-valid": "^2.10.0", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.5.1", - "json-stable-stringify": "^1.0.0", - "levn": "^0.3.0", - "lodash": "^4.0.0", - "mkdirp": "^0.5.0", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.1", - "pluralize": "^1.2.1", - "progress": "^1.1.8", - "require-uncached": "^1.0.2", - "shelljs": "^0.7.5", - "strip-bom": "^3.0.0", - "strip-json-comments": "~2.0.1", - "table": "^3.7.8", - "text-table": "~0.2.0", - "user-home": "^2.0.0" - } - }, - "eslint-config-standard-jsx": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.2.tgz", - "integrity": "sha512-F8fRh2WFnTek7dZH9ZaE0PCBwdVGkwVWZmizla/DDNOmg7Tx6B/IlK5+oYpiX29jpu73LszeJj5i1axEZv6VMw==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", - "integrity": "sha512-HI8ShtDIy7gON76Nr3bu4zl0DuCLPo1Fud9P2lltOQKeiAS2r5/o/l3y+V8HJ1cDLFSz+tHu7/V9fI5jirwlbw==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "object-assign": "^4.0.1", - "resolve": "^1.1.6" - } - }, - "eslint-plugin-import": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", - "integrity": "sha512-8HLeIYzOH4eltevxf+iC9Dtz/91yaeOqtlba5srcpQWLrv57F5NNG1RNLqAbpWJWDD4BxKuKjUveJY9W6Tbswg==", - "dev": true, - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.2.0", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.2.0", - "eslint-module-utils": "^2.0.0", - "has": "^1.0.1", - "lodash.cond": "^4.3.0", - "minimatch": "^3.0.3", - "pkg-up": "^1.0.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-plugin-react": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", - "integrity": "sha512-vFfMSxJynKlgOhIVjhlZyibVUg442Aiv3482XPkgdYV90T8nD2QvxGXILZGwZHYMQ/l+A/De14O9D0qjDelSrg==", - "dev": true, - "requires": { - "array.prototype.find": "^2.0.1", - "doctrine": "^1.2.2", - "has": "^1.0.1", - "jsx-ast-utils": "^1.3.4", - "object.assign": "^4.0.4" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dev": true, - "requires": { - "jsonify": "^0.0.1" - } - }, - "jsx-ast-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", - "integrity": "sha512-0LwSmMlQjjUdXsdlyYhEfBJCn2Chm0zgUBmfmf1++KUULh+JOdlzrZfiwe2zmlVJx44UF+KX/B/odBoeK9hxmw==", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "os-tmpdir": "~1.0.2" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + } + } + }, + "sonic-boom": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.7.tgz", + "integrity": "sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg==", + "dev": true, + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "sort-object-keys": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", + "dev": true + }, + "sort-package-json": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.57.0.tgz", + "integrity": "sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==", + "dev": true, + "requires": { + "detect-indent": "^6.0.0", + "detect-newline": "3.1.0", + "git-hooks-list": "1.0.3", + "globby": "10.0.0", + "is-plain-obj": "2.1.0", + "sort-object-keys": "^1.1.3" + }, + "dependencies": { + "globby": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", + "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "semver": "^6.0.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "isexe": "^2.0.0" } } } }, - "standard-engine": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-7.0.0.tgz", - "integrity": "sha512-d/NYzmZxQRxbcoCqlbI9gEMPYq7TLsU6Ywpki54xhedEd0GC4G02j1B7mlexb7HovqRtAtcUPTLQx2MnCO/uyA==", + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, "requires": { - "deglob": "^2.1.0", - "get-stdin": "^5.0.1", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "readable-stream": "^3.0.0" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" + }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -36130,127 +33122,6 @@ "acorn-node": "^1.2.0" } }, - "table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==", - "dev": true, - "requires": { - "ajv": "^4.7.0", - "ajv-keywords": "^1.0.0", - "chalk": "^1.1.1", - "lodash": "^4.0.0", - "slice-ansi": "0.0.4", - "string-width": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==", - "dev": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha512-vuBv+fm2s6cqUyey2A7qYcvsik+GMDJsw8BARP2sDE76cqmaZVarsvHf7Vx6VJ0Xk8gLl+u3MoAPf6gKzJefeA==", - "dev": true, - "requires": {} - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dev": true, - "requires": { - "jsonify": "^0.0.1" - } - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "tachyons": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/tachyons/-/tachyons-4.12.0.tgz", @@ -36669,12 +33540,6 @@ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -36892,12 +33757,6 @@ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -36960,15 +33819,6 @@ "nan": "^2.14.2" } }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0" - } - }, "util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -37598,12 +34448,6 @@ "triple-beam": "^1.3.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -37684,15 +34528,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", From 7119348a619b439995a892e21691f47dc0886c7e Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Thu, 13 Jul 2023 14:33:51 +0200 Subject: [PATCH 31/38] Small updates --- packages/block/CHANGELOG.md | 2 +- packages/blockchain/CHANGELOG.md | 2 +- packages/blockchain/README.md | 2 +- packages/common/CHANGELOG.md | 2 +- packages/ethash/CHANGELOG.md | 2 +- packages/evm/CHANGELOG.md | 2 +- packages/genesis/CHANGELOG.md | 2 +- packages/rlp/CHANGELOG.md | 2 +- packages/statemanager/CHANGELOG.md | 2 +- packages/trie/CHANGELOG.md | 2 +- packages/tx/CHANGELOG.md | 2 +- packages/util/CHANGELOG.md | 2 +- packages/vm/CHANGELOG.md | 2 +- packages/wallet/CHANGELOG.md | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/block/CHANGELOG.md b/packages/block/CHANGELOG.md index b4aec813e7..2b30000498 100644 --- a/packages/block/CHANGELOG.md +++ b/packages/block/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 5.0.0-rc.1 - 2023-07-13 +## 5.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/blockchain/CHANGELOG.md b/packages/blockchain/CHANGELOG.md index 45b65c9269..0de859175d 100644 --- a/packages/blockchain/CHANGELOG.md +++ b/packages/blockchain/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 7.0.0-rc.1 - 2023-07-13 +## 7.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/blockchain/README.md b/packages/blockchain/README.md index 406c7ee125..774a70d1bd 100644 --- a/packages/blockchain/README.md +++ b/packages/blockchain/README.md @@ -73,7 +73,7 @@ Starting with v6 there is a dedicated consensus class for each type of supported - `validateDifficulty(header: BlockHeader): Promise` - `newBlock(block: Block, commonAncestor?: BlockHeader, ancientHeaders?: BlockHeader[]): Promise` -#### Custom Conensus Algorithms +#### Custom Consensus Algorithms Also part of V6, you can also create a custom consensus class implementing the above interface and pass it into the `Blockchain` constructor using the `consensus` option at instantiation. See [this test script](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/test/customConsensus.spec.ts) for a complete example of how write and use a custom consensus implementation. diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 1688c40d91..2d162bab19 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 4.0.0-rc.1 - 2023-07-13 +## 4.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/ethash/CHANGELOG.md b/packages/ethash/CHANGELOG.md index e799e87439..32ee712349 100644 --- a/packages/ethash/CHANGELOG.md +++ b/packages/ethash/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 3.0.0-rc.1 - 2023-07-13 +## 3.0.0-rc.1 - 2023-07-18 ### Hybrid CJS/ESM Build diff --git a/packages/evm/CHANGELOG.md b/packages/evm/CHANGELOG.md index 08779c4813..5717c2c9df 100644 --- a/packages/evm/CHANGELOG.md +++ b/packages/evm/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 2.0.0-rc.1 - 2023-07-13 +## 2.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/genesis/CHANGELOG.md b/packages/genesis/CHANGELOG.md index 7ed5eb9c1a..cfeba75b22 100644 --- a/packages/genesis/CHANGELOG.md +++ b/packages/genesis/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 0.1.0-rc.1 - 2023-07-13 +## 0.1.0-rc.1 - 2023-07-18 Initial release. diff --git a/packages/rlp/CHANGELOG.md b/packages/rlp/CHANGELOG.md index 3096399aaf..03ae11e115 100644 --- a/packages/rlp/CHANGELOG.md +++ b/packages/rlp/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 5.0.0-rc.1 - 2023-07-13 +## 5.0.0-rc.1 - 2023-07-18 ### Hybrid CJS/ESM Build diff --git a/packages/statemanager/CHANGELOG.md b/packages/statemanager/CHANGELOG.md index b1fa4435b4..c146eafbca 100644 --- a/packages/statemanager/CHANGELOG.md +++ b/packages/statemanager/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 2.0.0-rc.1 - 2023-07-13 +## 2.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/trie/CHANGELOG.md b/packages/trie/CHANGELOG.md index a17bc1d8c2..08dbb4ee66 100644 --- a/packages/trie/CHANGELOG.md +++ b/packages/trie/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 6.0.0-rc.1 - 2023-07-13 +## 6.0.0-rc.1 - 2023-07-18 ### New Trie Node Cache diff --git a/packages/tx/CHANGELOG.md b/packages/tx/CHANGELOG.md index 2b6ed4f499..8c5b3ceb45 100644 --- a/packages/tx/CHANGELOG.md +++ b/packages/tx/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 5.0.0-rc.1 - 2023-07-13 +## 5.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/util/CHANGELOG.md b/packages/util/CHANGELOG.md index 759f16cdac..11cad526c0 100644 --- a/packages/util/CHANGELOG.md +++ b/packages/util/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 9.0.0-rc.1 - 2023-07-13 +## 9.0.0-rc.1 - 2023-07-18 ### Hybrid CJS/ESM Build diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index 0e47a83e33..60525f5dd1 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 7.0.0-rc.1 - 2023-07-13 +## 7.0.0-rc.1 - 2023-07-18 ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork diff --git a/packages/wallet/CHANGELOG.md b/packages/wallet/CHANGELOG.md index 7610b83eb6..f35e767915 100644 --- a/packages/wallet/CHANGELOG.md +++ b/packages/wallet/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 2.0.0-rc.1 - 2023-07-13 +## 2.0.0-rc.1 - 2023-07-18 ### New Package Name and General Library Update From 8edead825edd19cdec71bf09e42ae71c8c35e072 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 10:58:30 +0200 Subject: [PATCH 32/38] Add CHANGELOG introduction sections --- packages/block/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/blockchain/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/common/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/devp2p/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/ethash/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/evm/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/statemanager/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/trie/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/tx/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/util/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/vm/CHANGELOG.md | 26 ++++++++++++++++++++++++++ 11 files changed, 286 insertions(+) diff --git a/packages/block/CHANGELOG.md b/packages/block/CHANGELOG.md index 2b30000498..04ab8aeda1 100644 --- a/packages/block/CHANGELOG.md +++ b/packages/block/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 5.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/blockchain/CHANGELOG.md b/packages/blockchain/CHANGELOG.md index 0de859175d..037b5aa041 100644 --- a/packages/blockchain/CHANGELOG.md +++ b/packages/blockchain/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 7.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 2d162bab19..1a6e7cd55e 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 4.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/devp2p/CHANGELOG.md b/packages/devp2p/CHANGELOG.md index dc4c673157..fdd1c8e02b 100644 --- a/packages/devp2p/CHANGELOG.md +++ b/packages/devp2p/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 6.0.0 - 2023-07-11 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/ethash/CHANGELOG.md b/packages/ethash/CHANGELOG.md index 32ee712349..4af6c751f0 100644 --- a/packages/ethash/CHANGELOG.md +++ b/packages/ethash/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 3.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Hybrid CJS/ESM Build We now provide both a CommonJS and an ESM build for all our libraries. 🥳 This transition was a huge undertaking and should make the usage of our libraries in the browser a lot more straight-forward, see PR [#2685](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2685), [#2783](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2783), [#2786](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2786), [#2764](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2764), [#2804](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2804) and [#2809](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2809) (and others). We rewrote the whole set of imports and exports within the libraries, updated or completely removed a lot of dependencies along the way and removed the usage of all native Node.js primitives (like `https` or `util`). diff --git a/packages/evm/CHANGELOG.md b/packages/evm/CHANGELOG.md index 5717c2c9df..35bdbd88fc 100644 --- a/packages/evm/CHANGELOG.md +++ b/packages/evm/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 2.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/statemanager/CHANGELOG.md b/packages/statemanager/CHANGELOG.md index c146eafbca..6ea748d871 100644 --- a/packages/statemanager/CHANGELOG.md +++ b/packages/statemanager/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 2.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/trie/CHANGELOG.md b/packages/trie/CHANGELOG.md index 08dbb4ee66..10bc8717da 100644 --- a/packages/trie/CHANGELOG.md +++ b/packages/trie/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 6.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### New Trie Node Cache There is a new permanent trie node cache which can be leveraged to make Trie operations significantly faster, see PR [#2667](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2667). Since this also increases base-memory usage of a trie instantiation, this new cache is mainly intended to be used in rather long-lived trie scenarios. diff --git a/packages/tx/CHANGELOG.md b/packages/tx/CHANGELOG.md index 8c5b3ceb45..402ebb3fa9 100644 --- a/packages/tx/CHANGELOG.md +++ b/packages/tx/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 5.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). diff --git a/packages/util/CHANGELOG.md b/packages/util/CHANGELOG.md index 11cad526c0..3cc2b8f021 100644 --- a/packages/util/CHANGELOG.md +++ b/packages/util/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 9.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Hybrid CJS/ESM Build We now provide both a CommonJS and an ESM build for all our libraries. 🥳 This transition was a huge undertaking and should make the usage of our libraries in the browser a lot more straight-forward, see PR [#2685](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2685), [#2783](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2783), [#2786](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2786), [#2764](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2764), [#2804](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2804) and [#2809](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2809) (and others). We rewrote the whole set of imports and exports within the libraries, updated or completely removed a lot of dependencies along the way and removed the usage of all native Node.js primitives (like `https` or `util`). diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index 60525f5dd1..ef9e60c835 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## 7.0.0-rc.1 - 2023-07-18 +This is the release candidate (RC1) for the upcoming breaking releases on the various EthereumJS libraries. The associated release notes below are the main source of information on the changeset, also for the upcoming final releases, where we'll just provide change addition summaries + references to these RC1 notes. + +At time of the RC1 releases there is/was no plan for a second RC round and breaking releases following relatively shorty (2-3 weeks) after the RC1 round. Things may change though depending on the feedback we'll receive. + +### Introduction + +This round of breaking releases brings the EthereumJS libraries to the browser. Finally! 🤩 + +While you could use our libraries in the browser libraries before, there had been caveats. + +WE HAVE ELIMINATED ALL OF THEM. + +The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. + +Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. + +This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 + +This will allow for easy-to-setup browser applications both around the existing as well as the upcoming Ethereum EL protocol stack in the future. 🏄🏾‍♂️ We are beyond excitement to see what you guys will be building with this for "Browser-Ethereum". 🤓 + +Browser is not the only thing though why this release round is exciting: default Shanghai hardfork, full Cancun support, significantly smaller bundle sizes for various libraries, new database abstractions, a simpler to use EVM, API clean-ups throughout the whole stack. These are just the most prominent additional things here to mention which will make the developer heart beat a bit faster hopefully when you are scanning to the vast release notes for every of the 15 (!) releases! 🧑🏽‍💻 + +So: jump right in and enjoy. We can't wait to hear your feedback and see if you agree that these releases are as good as we think they are. 🙂 ❤️ + +The EthereumJS Team + ### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). From 8504f6529462a38ea300b7b6f54cdd8b7194e548 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 11:06:29 +0200 Subject: [PATCH 33/38] Adjust Cancun HF CHANGELOG note (all EIPs included) --- packages/block/CHANGELOG.md | 6 +++--- packages/blockchain/CHANGELOG.md | 6 +++--- packages/common/CHANGELOG.md | 6 +++--- packages/devp2p/CHANGELOG.md | 6 +++--- packages/evm/CHANGELOG.md | 6 +++--- packages/statemanager/CHANGELOG.md | 6 +++--- packages/tx/CHANGELOG.md | 6 +++--- packages/vm/CHANGELOG.md | 6 +++--- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/block/CHANGELOG.md b/packages/block/CHANGELOG.md index 04ab8aeda1..bac18b78ad 100644 --- a/packages/block/CHANGELOG.md +++ b/packages/block/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### New API to set Hardforks diff --git a/packages/blockchain/CHANGELOG.md b/packages/blockchain/CHANGELOG.md index 037b5aa041..b50ef208c7 100644 --- a/packages/blockchain/CHANGELOG.md +++ b/packages/blockchain/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### Database Abstraction / Removed LevelDB Dependency diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 1a6e7cd55e..b5495ad700 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### New API to set Hardforks diff --git a/packages/devp2p/CHANGELOG.md b/packages/devp2p/CHANGELOG.md index fdd1c8e02b..2046be2dc5 100644 --- a/packages/devp2p/CHANGELOG.md +++ b/packages/devp2p/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### Improved Typing / API Changes diff --git a/packages/evm/CHANGELOG.md b/packages/evm/CHANGELOG.md index 35bdbd88fc..3263407f35 100644 --- a/packages/evm/CHANGELOG.md +++ b/packages/evm/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### EEI Removal / Standalone EVM diff --git a/packages/statemanager/CHANGELOG.md b/packages/statemanager/CHANGELOG.md index 6ea748d871..645820bd12 100644 --- a/packages/statemanager/CHANGELOG.md +++ b/packages/statemanager/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### StateManager / Cache Refactoring diff --git a/packages/tx/CHANGELOG.md b/packages/tx/CHANGELOG.md index 402ebb3fa9..c876a4dac7 100644 --- a/packages/tx/CHANGELOG.md +++ b/packages/tx/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### API Validation Methods Clean-Up diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index ef9e60c835..9e7a3b845c 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -34,7 +34,7 @@ So: jump right in and enjoy. We can't wait to hear your feedback and see if you The EthereumJS Team -### Default Shanghai HF / Merge -> Paris Renaming / Cancun Hardfork +### Default Shanghai HF / Merge -> Paris Renaming / Full Cancun Hardfork Support The Shanghai hardfork is now the default HF in `@ethereumjs/common` and therefore for all libraries who use a Common-based HF setting internally (e.g. Tx, Block or EVM), see PR [#2655](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2655). @@ -45,14 +45,14 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Paris }) ``` -And third on hardforks 🙂: while not all Cancun EIPs are finalized yet, Cancun is now an officially selectable hardfork in our libraries (see PR [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659)) and can be activated with: +And third on hardforks 🙂: the upcoming Cancun hardfork is now fully supported and all EIPs are included (see PRs [#2659](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2659) and [#2892](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2892)). The Cancun HF can be activated with: ```typescript import { Chain, Common, Hardfork } from '@ethereumjs/common' const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) ``` -Note that EIPs added to `Cancun` in `Common` are aligned with the EIPs added to Cancun-related devnets, so currently only `EIP-4844` activates when setting the hardfork. +Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. ### EEI Removal / Standalone EVM From 83fb97b9ad305976d606fa48b9b5729f53d75fb5 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 11:31:00 +0200 Subject: [PATCH 34/38] Bring release notes up to date --- packages/client/CHANGELOG.md | 5 ++++- packages/devp2p/CHANGELOG.md | 14 ++++++++++++-- packages/evm/CHANGELOG.md | 2 ++ packages/genesis/CHANGELOG.md | 2 +- packages/vm/CHANGELOG.md | 2 ++ 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index 22d2cb52f0..e836e038e4 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -31,6 +31,8 @@ The following changes are included: - Merge get blobs engine api into `getPayloadV3`, PR [#2650](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2650) - Update eip4844 blocks/txs to decoupled blobs spec, PR [#2567](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2567) - Update the kzg validation and replace trusted setup with latest (devnet6), PR [#2756](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2756) +- Fix new payload excessDataGas/4844 validation, PR [#2784](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2784) +- Add `shouldOverrideBuilder` flag for `getPayloadV3`, PR [#2891](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2891) ### Other Changes @@ -43,8 +45,9 @@ The following changes are included: - Fix `newPayloadV3` engine API validations, PR [#2762](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2762) - Fixes for block and blob building uncovered in devnet6, PR [#2763](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2763) - Discard blob txs with missing blobs for block building, PR [#2765](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2765) -- Fix new payload excessDataGas/4844 validation, PR [#2784](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2784) - Remove unused `libp2p` transport layer (preserved for future re-introduction if there is demand 🙂), PR [#2758](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2758) +- Optimize engine API `newPayload` block executions, PR [#2787](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2787) +- Improve engine API `newPayload` and `forkChoiceUpdated` block executions, PR [#2880](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2880) ## 0.7.1 - 2023-04-20 diff --git a/packages/devp2p/CHANGELOG.md b/packages/devp2p/CHANGELOG.md index 2046be2dc5..7ffb839207 100644 --- a/packages/devp2p/CHANGELOG.md +++ b/packages/devp2p/CHANGELOG.md @@ -54,16 +54,26 @@ const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Cancun }) Note that not all Cancun EIPs are in a `FINAL` EIP state though and particularly `EIP-4844` will likely still receive some changes. +### ETH/67 and ETH/68 Support + +Support for both `ETH/67` (see PR [#2263](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2263)) and `ETH/68` (see PR [#2828](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2828)) have been added to the library. + +The [ETH/67](https://github.com/ethereum/devp2p/blob/master/caps/eth.md#eth67-eip-4938-march-2022) protocol version removes `GetNodeData` and `NodeData` messages, now largely substituted by the `SNAP` protocol. + +The [ETH/68](https://github.com/ethereum/devp2p/blob/master/caps/eth.md#eth68-eip-5793-october-2022) protocol version "changes the `NewPooledTransactionHashes` message to include types and sizes of the announced transactions". + ### Improved Typing / API Changes -Typing for the `devp2p` library has been significantly improved with PR [#2863](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2863). +Typing for the `devp2p` library has been significantly improved with PR [#2863](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2863) and the API has been consolidated along PR [#2889(https://github.com/ethereumjs/ethereumjs-monorepo/pull/2889). -This goes along with the following API changes: +There are the following distinct API changes: - Types and interfaces generally have been consolidated in a `types.ts` file (as in the other EthereumJS libraries) - Rename: `devp2p.DISCONNECT_REASONS` -> `devp2p.DISCONNECT_REASON` - Rename: `EthProtocol` -> `ProtocolType` (e.g. `ProtocolType.ETH`) +Beyond all `_*` methods and properties are now explicitly marked as `protected` (to leave some room for extensibility) in TypeScript which makes the API easier to use in IDEs and the like and avoids accidental accesses. + ### Hybrid CJS/ESM Build We now provide both a CommonJS and an ESM build for all our libraries. 🥳 This transition was a huge undertaking and should make the usage of our libraries in the browser a lot more straight-forward, see PR [#2685](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2685), [#2783](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2783), [#2786](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2786), [#2764](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2764), [#2804](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2804) and [#2809](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2809) (and others). We rewrote the whole set of imports and exports within the libraries, updated or completely removed a lot of dependencies along the way and removed the usage of all native Node.js primitives (like `https` or `util`). diff --git a/packages/evm/CHANGELOG.md b/packages/evm/CHANGELOG.md index 3263407f35..352e32c3aa 100644 --- a/packages/evm/CHANGELOG.md +++ b/packages/evm/CHANGELOG.md @@ -214,10 +214,12 @@ Please therefore check you code base on updating and ensure that values you are - Support for `Node.js 16` has been removed (minimal version: `Node.js 18`), PR [#2859](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2859) - Replace `rustbn.js` with wasm-compiled `rustbn-wasm` module, PR [#2834](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2834) +- Consistent usage of an `EVMInterface` for easier EVM adoption, PR [#2869](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2869) - Move KZG precompile address from `0x14` to `0x0a`, PR [#2811](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2811) - Breaking: The `copy()` method has been renamed to `shallowCopy()` (same underlying state DB), PR [#2826](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2826) - Breaking: following properties have been renamed and the underscore removed: `_allowUnlimitedContractSize`, `allowUnlimitedInitCodeSize`, `_transientStorage`, PR [#2857](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2857) - Fix the gasCost logs in op code trace (`step` event) to better match Geth output and reflect dynamic gas changes, PR [#2686](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2686) +- EIP-1153 TLOAD TSTORE update opcode byte, PR [#2884](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2884) - EVM runCode/runCall type cleanup, PR [#2861](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2861) - Better error handling for contract creation errors, PR [#2723](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2723) diff --git a/packages/genesis/CHANGELOG.md b/packages/genesis/CHANGELOG.md index cfeba75b22..08036e8f67 100644 --- a/packages/genesis/CHANGELOG.md +++ b/packages/genesis/CHANGELOG.md @@ -10,6 +10,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) Initial release. -This package contains all genesis state files (currently for Goerli, Mainnet and Sepolia) previously included in the `@ethereumjs/blockchain` package, see PR [#2768](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2768) and [#2815](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2815) for package introduction. +This package contains all genesis state files (currently for Goerli, Mainnet and Sepolia) previously included in the `@ethereumjs/blockchain` package, see PR [#2768](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2768), [#2815](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2815 and [#2886](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2886)) for package introduction. This is to reduce bundle and distribution sizes for other packages, mainly Blockchain, EVM and VM, since genesis state information (particularly the large Mainnet state) is often not necessary for large parts of API usage. diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index 9e7a3b845c..e2eaf45376 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -228,9 +228,11 @@ Please therefore check you code base on updating and ensure that values you are - Support for `Node.js 16` has been removed (minimal version: `Node.js 18`), PR [#2859](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2859) - Replace `rustbn.js` with wasm-compiled `rustbn-wasm` module (in EVM), PR [#2834](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2834) +- Consistent usage of an `EVMInterface` for easier EVM adoption, PR [#2869](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2869) - Move KZG precompile address (in EVM) from `0x14` to `0x0a`, PR [#2811](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2811) - Breaking: The `copy()` method has been renamed to `shallowCopy()` (same underlying state DB), PR [#2826](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2826) - Breaking: `VM._common` property has been renamed to `VM.common`, PR [#2857](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2857) +- EIP-1153 TLOAD TSTORE update opcode byte (EVM), PR [#2884](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2884) ## 6.4.2 - 2023-04-20 From c96d3342b590e1197c4b7a98d6392c79890e5287 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 11:33:47 +0200 Subject: [PATCH 35/38] Rebuild Block, Common docs --- packages/block/docs/README.md | 5 +- packages/block/docs/classes/BlockHeader.md | 26 +- .../block/docs/interfaces/JsonRpcBlock.md | 11 + packages/common/docs/README.md | 139 +- packages/common/docs/classes/Common.md | 1524 ++--------------- packages/common/docs/enums/Chain.md | 6 +- .../common/docs/enums/ConsensusAlgorithm.md | 6 +- packages/common/docs/enums/ConsensusType.md | 6 +- packages/common/docs/enums/CustomChain.md | 27 +- packages/common/docs/enums/Hardfork.md | 70 +- .../docs/interfaces/BootstrapNodeConfig.md | 14 +- .../common/docs/interfaces/ChainConfig.md | 22 +- packages/common/docs/interfaces/CommonOpts.md | 14 +- .../docs/interfaces/CustomCommonOpts.md | 12 +- .../interfaces/EVMStateManagerInterface.md | 480 ++++++ .../docs/interfaces/GenesisBlockConfig.md | 27 +- .../common/docs/interfaces/GethConfigOpts.md | 18 +- .../common/docs/interfaces/HardforkByOpts.md | 41 + .../common/docs/interfaces/HardforkConfig.md | 10 +- .../docs/interfaces/StateManagerInterface.md | 349 ++++ .../common/docs/interfaces/StorageDump.md | 7 + 21 files changed, 1273 insertions(+), 1541 deletions(-) create mode 100644 packages/common/docs/interfaces/EVMStateManagerInterface.md create mode 100644 packages/common/docs/interfaces/HardforkByOpts.md create mode 100644 packages/common/docs/interfaces/StateManagerInterface.md create mode 100644 packages/common/docs/interfaces/StorageDump.md diff --git a/packages/block/docs/README.md b/packages/block/docs/README.md index a134cca7da..428fe99880 100644 --- a/packages/block/docs/README.md +++ b/packages/block/docs/README.md @@ -79,6 +79,7 @@ ___ | `gasLimit` | `PrefixedHexString` | | `gasUsed` | `PrefixedHexString` | | `logsBloom` | `PrefixedHexString` | +| `parentBeaconBlockRoot?` | `PrefixedHexString` | | `parentHash` | `PrefixedHexString` | | `prevRandao` | `PrefixedHexString` | | `receiptsRoot` | `PrefixedHexString` | @@ -89,7 +90,7 @@ ___ #### Defined in -[types.ts:205](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L205) +[types.ts:206](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L206) ___ @@ -130,7 +131,7 @@ ___ #### Defined in -[types.ts:197](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L197) +[types.ts:198](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L198) ___ diff --git a/packages/block/docs/classes/BlockHeader.md b/packages/block/docs/classes/BlockHeader.md index 6d5caa6faa..553c4d64e7 100644 --- a/packages/block/docs/classes/BlockHeader.md +++ b/packages/block/docs/classes/BlockHeader.md @@ -388,7 +388,7 @@ in conjunction with [cliqueIsEpochTransition](BlockHeader.md#cliqueisepochtransi #### Defined in -[header.ts:835](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L835) +[header.ts:838](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L838) ___ @@ -405,7 +405,7 @@ Returns extra seal data #### Defined in -[header.ts:799](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L799) +[header.ts:802](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L802) ___ @@ -422,7 +422,7 @@ Returns extra vanity data #### Defined in -[header.ts:790](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L790) +[header.ts:793](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L793) ___ @@ -439,7 +439,7 @@ header (only clique PoA, throws otherwise) #### Defined in -[header.ts:778](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L778) +[header.ts:781](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L781) ___ @@ -455,7 +455,7 @@ PoA clique signature hash without the seal. #### Defined in -[header.ts:767](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L767) +[header.ts:770](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L770) ___ @@ -471,7 +471,7 @@ Returns the signer address #### Defined in -[header.ts:872](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L872) +[header.ts:875](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L875) ___ @@ -496,7 +496,7 @@ Verifies the signature of the block (last 65 bytes of extraData field) #### Defined in -[header.ts:860](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L860) +[header.ts:863](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L863) ___ @@ -512,7 +512,7 @@ Return a compact error string representation of the object #### Defined in -[header.ts:955](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L955) +[header.ts:958](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L958) ___ @@ -534,7 +534,7 @@ Returns the canonical difficulty for this block. #### Defined in -[header.ts:694](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L694) +[header.ts:697](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L697) ___ @@ -568,7 +568,7 @@ Returns the hash of the block header. #### Defined in -[header.ts:662](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L662) +[header.ts:665](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L665) ___ @@ -584,7 +584,7 @@ Checks if the block header is a genesis header. #### Defined in -[header.ts:676](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L676) +[header.ts:679](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L679) ___ @@ -616,7 +616,7 @@ Returns the rlp encoding of the block header. #### Defined in -[header.ts:889](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L889) +[header.ts:892](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L892) ___ @@ -632,7 +632,7 @@ Returns the block header in JSON format. #### Defined in -[header.ts:896](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L896) +[header.ts:899](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L899) ___ diff --git a/packages/block/docs/interfaces/JsonRpcBlock.md b/packages/block/docs/interfaces/JsonRpcBlock.md index 72648b9f52..24ff5cd178 100644 --- a/packages/block/docs/interfaces/JsonRpcBlock.md +++ b/packages/block/docs/interfaces/JsonRpcBlock.md @@ -19,6 +19,7 @@ - [mixHash](JsonRpcBlock.md#mixhash) - [nonce](JsonRpcBlock.md#nonce) - [number](JsonRpcBlock.md#number) +- [parentBeaconBlockRoot](JsonRpcBlock.md#parentbeaconblockroot) - [parentHash](JsonRpcBlock.md#parenthash) - [receiptsRoot](JsonRpcBlock.md#receiptsroot) - [sha3Uncles](JsonRpcBlock.md#sha3uncles) @@ -164,6 +165,16 @@ ___ ___ +### parentBeaconBlockRoot + +• `Optional` **parentBeaconBlockRoot**: `string` + +#### Defined in + +[types.ts:194](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/types.ts#L194) + +___ + ### parentHash • **parentHash**: `string` diff --git a/packages/common/docs/README.md b/packages/common/docs/README.md index 91d7dd443d..cc538f9344 100644 --- a/packages/common/docs/README.md +++ b/packages/common/docs/README.md @@ -24,15 +24,30 @@ - [ChainsConfig](interfaces/ChainsConfig.md) - [CommonOpts](interfaces/CommonOpts.md) - [CustomCommonOpts](interfaces/CustomCommonOpts.md) +- [EVMStateManagerInterface](interfaces/EVMStateManagerInterface.md) - [GenesisBlockConfig](interfaces/GenesisBlockConfig.md) - [GethConfigOpts](interfaces/GethConfigOpts.md) +- [HardforkByOpts](interfaces/HardforkByOpts.md) - [HardforkConfig](interfaces/HardforkConfig.md) +- [StateManagerInterface](interfaces/StateManagerInterface.md) +- [StorageDump](interfaces/StorageDump.md) ### Type Aliases +- [AccessList](README.md#accesslist) +- [AccessListBytes](README.md#accesslistbytes) +- [AccessListBytesItem](README.md#accesslistbytesitem) +- [AccessListItem](README.md#accesslistitem) +- [AccountFields](README.md#accountfields) - [CasperConfig](README.md#casperconfig) - [CliqueConfig](README.md#cliqueconfig) - [EthashConfig](README.md#ethashconfig) +- [Proof](README.md#proof) +- [StorageProof](README.md#storageproof) + +### Variables + +- [ChainGenesis](README.md#chaingenesis) ### Functions @@ -40,13 +55,70 @@ ## Type Aliases +### AccessList + +Ƭ **AccessList**: [`AccessListItem`](README.md#accesslistitem)[] + +#### Defined in + +[interfaces.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L39) + +___ + +### AccessListBytes + +Ƭ **AccessListBytes**: [`AccessListBytesItem`](README.md#accesslistbytesitem)[] + +#### Defined in + +[interfaces.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L38) + +___ + +### AccessListBytesItem + +Ƭ **AccessListBytesItem**: [`Uint8Array`, `Uint8Array`[]] + +#### Defined in + +[interfaces.ts:37](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L37) + +___ + +### AccessListItem + +Ƭ **AccessListItem**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `address` | `PrefixedHexString` | +| `storageKeys` | `PrefixedHexString`[] | + +#### Defined in + +[interfaces.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L29) + +___ + +### AccountFields + +Ƭ **AccountFields**: `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> + +#### Defined in + +[interfaces.ts:7](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L7) + +___ + ### CasperConfig Ƭ **CasperConfig**: `Object` #### Defined in -[packages/common/src/types.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L17) +[types.ts:18](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L18) ___ @@ -63,7 +135,7 @@ ___ #### Defined in -[packages/common/src/types.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L10) +[types.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L11) ___ @@ -73,7 +145,59 @@ ___ #### Defined in -[packages/common/src/types.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L15) +[types.ts:16](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L16) + +___ + +### Proof + +Ƭ **Proof**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `accountProof` | `PrefixedHexString`[] | +| `address` | `PrefixedHexString` | +| `balance` | `PrefixedHexString` | +| `codeHash` | `PrefixedHexString` | +| `nonce` | `PrefixedHexString` | +| `storageHash` | `PrefixedHexString` | +| `storageProof` | [`StorageProof`](README.md#storageproof)[] | + +#### Defined in + +[interfaces.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L15) + +___ + +### StorageProof + +Ƭ **StorageProof**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `key` | `PrefixedHexString` | +| `proof` | `PrefixedHexString`[] | +| `value` | `PrefixedHexString` | + +#### Defined in + +[interfaces.ts:9](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L9) + +## Variables + +### ChainGenesis + +• `Const` **ChainGenesis**: `Record`<[`Chain`](enums/Chain.md), `GenesisState`\> + +GenesisState info about well known ethereum chains + +#### Defined in + +[enums.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L23) ## Functions @@ -102,12 +226,13 @@ parsed params | `bootstrapNodes` | `never`[] | | `chainId` | `number` | | `consensus` | { `algorithm`: `string` = 'clique'; `clique`: { `epoch`: `any` ; `period`: `any` } ; `ethash`: `undefined` = {}; `type`: `string` = 'poa' } \| { `algorithm`: `string` = 'ethash'; `clique`: `undefined` ; `ethash`: {} = {}; `type`: `string` = 'pow' } | -| `genesis` | { `baseFeePerGas`: `string` ; `coinbase`: `string` ; `difficulty`: `number` ; `extraData`: `string` ; `gasLimit`: `number` ; `mixHash`: `string` ; `nonce`: `string` ; `timestamp`: `string` } | +| `genesis` | { `baseFeePerGas`: `string` ; `coinbase`: `string` ; `difficulty`: `string` ; `excessDataGas`: `string` ; `extraData`: `string` ; `gasLimit`: `string` ; `mixHash`: `string` ; `nonce`: `string` ; `timestamp`: `string` } | | `genesis.baseFeePerGas` | `string` | | `genesis.coinbase` | `string` | -| `genesis.difficulty` | `number` | +| `genesis.difficulty` | `string` | +| `genesis.excessDataGas` | `string` | | `genesis.extraData` | `string` | -| `genesis.gasLimit` | `number` | +| `genesis.gasLimit` | `string` | | `genesis.mixHash` | `string` | | `genesis.nonce` | `string` | | `genesis.timestamp` | `string` | @@ -118,4 +243,4 @@ parsed params #### Defined in -[packages/common/src/utils.ts:196](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/utils.ts#L196) +[utils.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/utils.ts#L199) diff --git a/packages/common/docs/classes/Common.md b/packages/common/docs/classes/Common.md index bdaad8bf80..82080b5dc7 100644 --- a/packages/common/docs/classes/Common.md +++ b/packages/common/docs/classes/Common.md @@ -9,12 +9,6 @@ Use the [custom](Common.md#custom) static constructor for creating simple custom chain [Common](Common.md) objects (more complete custom chain setups can be created via the main constructor and the [customChains](../interfaces/CommonOpts.md#customchains) parameter). -## Hierarchy - -- `EventEmitter` - - ↳ **`Common`** - ## Table of contents ### Constructors @@ -24,17 +18,11 @@ can be created via the main constructor and the [customChains](../interfaces/Com ### Properties - [DEFAULT\_HARDFORK](Common.md#default_hardfork) -- [captureRejectionSymbol](Common.md#capturerejectionsymbol) -- [captureRejections](Common.md#capturerejections) -- [defaultMaxListeners](Common.md#defaultmaxlisteners) -- [errorMonitor](Common.md#errormonitor) +- [events](Common.md#events) ### Methods -- [\_calcForkHash](Common.md#_calcforkhash) -- [\_getHardfork](Common.md#_gethardfork) - [activeOnBlock](Common.md#activeonblock) -- [addListener](Common.md#addlistener) - [bootstrapNodes](Common.md#bootstrapnodes) - [chainId](Common.md#chainid) - [chainName](Common.md#chainname) @@ -45,12 +33,9 @@ can be created via the main constructor and the [customChains](../interfaces/Com - [dnsNetworks](Common.md#dnsnetworks) - [eipBlock](Common.md#eipblock) - [eips](Common.md#eips) -- [emit](Common.md#emit) -- [eventNames](Common.md#eventnames) - [forkHash](Common.md#forkhash) - [genesis](Common.md#genesis) -- [getHardforkByBlockNumber](Common.md#gethardforkbyblocknumber) -- [getMaxListeners](Common.md#getmaxlisteners) +- [getHardforkBy](Common.md#gethardforkby) - [gteHardfork](Common.md#gtehardfork) - [hardfork](Common.md#hardfork) - [hardforkBlock](Common.md#hardforkblock) @@ -61,40 +46,21 @@ can be created via the main constructor and the [customChains](../interfaces/Com - [hardforkTimestamp](Common.md#hardforktimestamp) - [hardforks](Common.md#hardforks) - [isActivatedEIP](Common.md#isactivatedeip) -- [isHardforkBlock](Common.md#ishardforkblock) -- [isNextHardforkBlock](Common.md#isnexthardforkblock) -- [listenerCount](Common.md#listenercount) -- [listeners](Common.md#listeners) - [networkId](Common.md#networkid) -- [nextHardforkBlock](Common.md#nexthardforkblock) - [nextHardforkBlockOrTimestamp](Common.md#nexthardforkblockortimestamp) -- [off](Common.md#off) -- [on](Common.md#on) -- [once](Common.md#once) - [param](Common.md#param) - [paramByBlock](Common.md#parambyblock) - [paramByEIP](Common.md#parambyeip) - [paramByHardfork](Common.md#parambyhardfork) -- [prependListener](Common.md#prependlistener) -- [prependOnceListener](Common.md#prependoncelistener) -- [rawListeners](Common.md#rawlisteners) -- [removeAllListeners](Common.md#removealllisteners) -- [removeListener](Common.md#removelistener) - [setChain](Common.md#setchain) - [setEIPs](Common.md#seteips) - [setForkHashes](Common.md#setforkhashes) - [setHardfork](Common.md#sethardfork) -- [setHardforkByBlockNumber](Common.md#sethardforkbyblocknumber) -- [setMaxListeners](Common.md#setmaxlisteners) -- [\_getInitializedChains](Common.md#_getinitializedchains) +- [setHardforkBy](Common.md#sethardforkby) - [custom](Common.md#custom) - [fromGethGenesis](Common.md#fromgethgenesis) -- [getEventListeners](Common.md#geteventlisteners) +- [getInitializedChains](Common.md#getinitializedchains) - [isSupportedChainId](Common.md#issupportedchainid) -- [listenerCount](Common.md#listenercount-1) -- [on](Common.md#on-1) -- [once](Common.md#once-1) -- [setMaxListeners](Common.md#setmaxlisteners-1) ## Constructors @@ -108,13 +74,9 @@ can be created via the main constructor and the [customChains](../interfaces/Com | :------ | :------ | | `opts` | [`CommonOpts`](../interfaces/CommonOpts.md) | -#### Overrides - -EventEmitter.constructor - #### Defined in -[packages/common/src/common.ts:227](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L227) +[common.ts:225](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L225) ## Properties @@ -124,125 +86,20 @@ EventEmitter.constructor #### Defined in -[packages/common/src/common.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L43) - -___ - -### captureRejectionSymbol - -▪ `Static` `Readonly` **captureRejectionSymbol**: typeof [`captureRejectionSymbol`](Common.md#capturerejectionsymbol) - -#### Inherited from - -EventEmitter.captureRejectionSymbol - -#### Defined in - -node_modules/@types/node/events.d.ts:291 - -___ - -### captureRejections - -▪ `Static` **captureRejections**: `boolean` - -Sets or gets the default captureRejection value for all emitters. - -#### Inherited from - -EventEmitter.captureRejections - -#### Defined in - -node_modules/@types/node/events.d.ts:296 - -___ - -### defaultMaxListeners - -▪ `Static` **defaultMaxListeners**: `number` - -#### Inherited from - -EventEmitter.defaultMaxListeners - -#### Defined in - -node_modules/@types/node/events.d.ts:297 +[common.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L49) ___ -### errorMonitor - -▪ `Static` `Readonly` **errorMonitor**: typeof [`errorMonitor`](Common.md#errormonitor) - -This symbol shall be used to install a listener for only monitoring `'error'` -events. Listeners installed using this symbol are called before the regular -`'error'` listeners are called. - -Installing a listener using this symbol does not change the behavior once an -`'error'` event is emitted, therefore the process will still crash if no -regular `'error'` listener is installed. +### events -#### Inherited from - -EventEmitter.errorMonitor +• **events**: `EventEmitter` #### Defined in -node_modules/@types/node/events.d.ts:290 +[common.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L58) ## Methods -### \_calcForkHash - -▸ **_calcForkHash**(`hardfork`, `genesisHash`): `string` - -Internal helper function to calculate a fork hash - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `hardfork` | `string` | Hardfork name | -| `genesisHash` | `Buffer` | Genesis block hash of the chain | - -#### Returns - -`string` - -Fork hash as hex string - -#### Defined in - -[packages/common/src/common.ts:831](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L831) - -___ - -### \_getHardfork - -▸ **_getHardfork**(`hardfork`): ``null`` \| [`HardforkConfig`](../interfaces/HardforkConfig.md) - -Internal helper function, returns the params for the given hardfork for the chain set - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `hardfork` | `string` | Hardfork name | - -#### Returns - -``null`` \| [`HardforkConfig`](../interfaces/HardforkConfig.md) - -Dictionary with hardfork params or null if hardfork not on chain - -#### Defined in - -[packages/common/src/common.ts:445](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L445) - -___ - ### activeOnBlock ▸ **activeOnBlock**(`blockNumber`): `boolean` @@ -263,38 +120,7 @@ True if HF is active on block number #### Defined in -[packages/common/src/common.ts:620](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L620) - -___ - -### addListener - -▸ **addListener**(`eventName`, `listener`): [`Common`](Common.md) - -Alias for `emitter.on(eventName, listener)`. - -**`Since`** - -v0.1.26 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `eventName` | `string` \| `symbol` | -| `listener` | (...`args`: `any`[]) => `void` | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.addListener - -#### Defined in - -node_modules/@types/node/events.d.ts:317 +[common.ts:611](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L611) ___ @@ -312,7 +138,7 @@ Dict with bootstrap nodes #### Defined in -[packages/common/src/common.ts:936](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L936) +[common.ts:861](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L861) ___ @@ -330,7 +156,7 @@ chain Id #### Defined in -[packages/common/src/common.ts:960](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L960) +[common.ts:885](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L885) ___ @@ -348,7 +174,7 @@ chain name (lower case) #### Defined in -[packages/common/src/common.ts:968](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L968) +[common.ts:893](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L893) ___ @@ -370,7 +196,7 @@ Note: This value can update along a Hardfork. #### Defined in -[packages/common/src/common.ts:1016](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L1016) +[common.ts:941](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L941) ___ @@ -396,7 +222,7 @@ Note: This value can update along a Hardfork. #### Defined in -[packages/common/src/common.ts:1042](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L1042) +[common.ts:967](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L967) ___ @@ -415,7 +241,7 @@ Note: This value can update along a Hardfork. #### Defined in -[packages/common/src/common.ts:994](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L994) +[common.ts:919](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L919) ___ @@ -431,7 +257,7 @@ Returns a deep copy of this [Common](Common.md) instance. #### Defined in -[packages/common/src/common.ts:1061](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L1061) +[common.ts:986](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L986) ___ @@ -449,7 +275,7 @@ Array of DNS ENR urls #### Defined in -[packages/common/src/common.ts:944](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L944) +[common.ts:869](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L869) ___ @@ -473,7 +299,7 @@ Block number or null if unscheduled #### Defined in -[packages/common/src/common.ts:683](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L683) +[common.ts:674](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L674) ___ @@ -491,112 +317,7 @@ List of EIPs #### Defined in -[packages/common/src/common.ts:984](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L984) - -___ - -### emit - -▸ **emit**(`eventName`, ...`args`): `boolean` - -Synchronously calls each of the listeners registered for the event named`eventName`, in the order they were registered, passing the supplied arguments -to each. - -Returns `true` if the event had listeners, `false` otherwise. - -```js -const EventEmitter = require('events'); -const myEmitter = new EventEmitter(); - -// First listener -myEmitter.on('event', function firstListener() { - console.log('Helloooo! first listener'); -}); -// Second listener -myEmitter.on('event', function secondListener(arg1, arg2) { - console.log(`event with parameters ${arg1}, ${arg2} in second listener`); -}); -// Third listener -myEmitter.on('event', function thirdListener(...args) { - const parameters = args.join(', '); - console.log(`event with parameters ${parameters} in third listener`); -}); - -console.log(myEmitter.listeners('event')); - -myEmitter.emit('event', 1, 2, 3, 4, 5); - -// Prints: -// [ -// [Function: firstListener], -// [Function: secondListener], -// [Function: thirdListener] -// ] -// Helloooo! first listener -// event with parameters 1, 2 in second listener -// event with parameters 1, 2, 3, 4, 5 in third listener -``` - -**`Since`** - -v0.1.26 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `eventName` | `string` \| `symbol` | -| `...args` | `any`[] | - -#### Returns - -`boolean` - -#### Inherited from - -EventEmitter.emit - -#### Defined in - -node_modules/@types/node/events.d.ts:573 - -___ - -### eventNames - -▸ **eventNames**(): (`string` \| `symbol`)[] - -Returns an array listing the events for which the emitter has registered -listeners. The values in the array are strings or `Symbol`s. - -```js -const EventEmitter = require('events'); -const myEE = new EventEmitter(); -myEE.on('foo', () => {}); -myEE.on('bar', () => {}); - -const sym = Symbol('symbol'); -myEE.on(sym, () => {}); - -console.log(myEE.eventNames()); -// Prints: [ 'foo', 'bar', Symbol(symbol) ] -``` - -**`Since`** - -v6.0.0 - -#### Returns - -(`string` \| `symbol`)[] - -#### Inherited from - -EventEmitter.eventNames - -#### Defined in - -node_modules/@types/node/events.d.ts:632 +[common.ts:909](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L909) ___ @@ -611,7 +332,7 @@ Returns an eth/64 compliant fork hash (EIP-2124) | Name | Type | Description | | :------ | :------ | :------ | | `hardfork?` | `string` | Hardfork name, optional if HF set | -| `genesisHash?` | `Buffer` | Genesis block hash of the chain, optional if already defined and not needed to be calculated | +| `genesisHash?` | `Uint8Array` | Genesis block hash of the chain, optional if already defined and not needed to be calculated | #### Returns @@ -619,7 +340,7 @@ Returns an eth/64 compliant fork hash (EIP-2124) #### Defined in -[packages/common/src/common.ts:870](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L870) +[common.ts:795](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L795) ___ @@ -637,16 +358,16 @@ Genesis dictionary #### Defined in -[packages/common/src/common.ts:920](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L920) +[common.ts:845](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L845) ___ -### getHardforkByBlockNumber +### getHardforkBy -▸ **getHardforkByBlockNumber**(`blockNumber`, `td?`, `timestamp?`): `string` +▸ **getHardforkBy**(`opts`): `string` -Returns the hardfork based on the block number or an optional -total difficulty (Merge HF) provided. +Returns the hardfork either based on block numer (older HFs) or +timestamp (Shanghai upwards). An optional TD takes precedence in case the corresponding HF block is set to `null` or otherwise needs to match (if not an error @@ -654,11 +375,9 @@ will be thrown). #### Parameters -| Name | Type | Description | -| :------ | :------ | :------ | -| `blockNumber` | `BigIntLike` | | -| `td?` | `BigIntLike` | : total difficulty of the parent block (for block hf) OR of the chain latest (for chain hf) | -| `timestamp?` | `BigIntLike` | - | +| Name | Type | +| :------ | :------ | +| `opts` | [`HardforkByOpts`](../interfaces/HardforkByOpts.md) | #### Returns @@ -668,32 +387,7 @@ The name of the HF #### Defined in -[packages/common/src/common.ts:312](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L312) - -___ - -### getMaxListeners - -▸ **getMaxListeners**(): `number` - -Returns the current max listener value for the `EventEmitter` which is either -set by `emitter.setMaxListeners(n)` or defaults to [defaultMaxListeners](Common.md#defaultmaxlisteners). - -**`Since`** - -v1.0.0 - -#### Returns - -`number` - -#### Inherited from - -EventEmitter.getMaxListeners - -#### Defined in - -node_modules/@types/node/events.d.ts:489 +[common.ts:309](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L309) ___ @@ -717,7 +411,7 @@ True if hardfork set is greater than hardfork provided #### Defined in -[packages/common/src/common.ts:651](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L651) +[common.ts:642](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L642) ___ @@ -735,7 +429,7 @@ Hardfork name #### Defined in -[packages/common/src/common.ts:952](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L952) +[common.ts:877](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L877) ___ @@ -759,7 +453,7 @@ Block number or null if unscheduled #### Defined in -[packages/common/src/common.ts:660](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L660) +[common.ts:651](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L651) ___ @@ -781,7 +475,7 @@ Array with hardfork data (name, block, forkHash) #### Defined in -[packages/common/src/common.ts:892](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L892) +[common.ts:817](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L817) ___ @@ -806,7 +500,7 @@ True if HF1 gte HF2 #### Defined in -[packages/common/src/common.ts:631](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L631) +[common.ts:622](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L622) ___ @@ -831,7 +525,7 @@ True if HF is active on block number #### Defined in -[packages/common/src/common.ts:605](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L605) +[common.ts:596](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L596) ___ @@ -855,7 +549,7 @@ Total difficulty or null if no set #### Defined in -[packages/common/src/common.ts:701](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L701) +[common.ts:692](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L692) ___ @@ -875,7 +569,7 @@ ___ #### Defined in -[packages/common/src/common.ts:669](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L669) +[common.ts:660](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L660) ___ @@ -893,7 +587,7 @@ Array with arrays of hardforks #### Defined in -[packages/common/src/common.ts:928](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L928) +[common.ts:853](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L853) ___ @@ -920,757 +614,191 @@ by the [eips](../interfaces/CommonOpts.md#eips) constructor option #### Defined in -[packages/common/src/common.ts:584](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L584) +[common.ts:575](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L575) ___ -### isHardforkBlock - -▸ **isHardforkBlock**(`blockNumber`, `hardfork?`): `boolean` - -True if block number provided is the hardfork (given or set) change block - -**`Deprecated`** +### networkId -#### Parameters +▸ **networkId**(): `bigint` -| Name | Type | Description | -| :------ | :------ | :------ | -| `blockNumber` | `BigIntLike` | Number of the block to check | -| `hardfork?` | `string` | Hardfork name, optional if HF set | +Returns the Id of current network #### Returns -`boolean` +`bigint` -True if blockNumber is HF block +network Id #### Defined in -[packages/common/src/common.ts:717](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L717) +[common.ts:901](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L901) ___ -### isNextHardforkBlock - -▸ **isNextHardforkBlock**(`blockNumber`, `hardfork?`): `boolean` +### nextHardforkBlockOrTimestamp -True if block number provided is the hardfork change block following the hardfork given or set +▸ **nextHardforkBlockOrTimestamp**(`hardfork?`): ``null`` \| `bigint` -**`Deprecated`** +Returns the change block for the next hardfork after the hardfork provided or set #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `blockNumber` | `BigIntLike` | Number of the block to check | | `hardfork?` | `string` | Hardfork name, optional if HF set | #### Returns -`boolean` +``null`` \| `bigint` -True if blockNumber is HF block +Block timestamp, number or null if not available #### Defined in -[packages/common/src/common.ts:817](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L817) +[common.ts:706](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L706) ___ -### listenerCount - -▸ **listenerCount**(`eventName`): `number` +### param -Returns the number of listeners listening to the event named `eventName`. +▸ **param**(`topic`, `name`): `bigint` -**`Since`** +Returns a parameter for the current chain setup -v3.2.0 +If the parameter is present in an EIP, the EIP always takes precedence. +Otherwise the parameter if taken from the latest applied HF with +a change on the respective parameter. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `eventName` | `string` \| `symbol` | The name of the event being listened for | +| `topic` | `string` | Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow') | +| `name` | `string` | Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic) | #### Returns -`number` - -#### Inherited from +`bigint` -EventEmitter.listenerCount +The value requested or `BigInt(0)` if not found #### Defined in -node_modules/@types/node/events.d.ts:579 +[common.ts:481](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L481) ___ -### listeners - -▸ **listeners**(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -console.log(util.inspect(server.listeners('connection'))); -// Prints: [ [Function] ] -``` +### paramByBlock -**`Since`** +▸ **paramByBlock**(`topic`, `name`, `blockNumber`, `td?`, `timestamp?`): `bigint` -v0.1.26 +Returns a parameter for the hardfork active on block number or +optional provided total difficulty (Merge HF) #### Parameters -| Name | Type | -| :------ | :------ | -| `eventName` | `string` \| `symbol` | +| Name | Type | Description | +| :------ | :------ | :------ | +| `topic` | `string` | Parameter topic | +| `name` | `string` | Parameter name | +| `blockNumber` | `BigIntLike` | Block number | +| `td?` | `BigIntLike` | Total difficulty * | +| `timestamp?` | `BigIntLike` | - | #### Returns -`Function`[] - -#### Inherited from +`bigint` -EventEmitter.listeners +The value requested or `BigInt(0)` if not found #### Defined in -node_modules/@types/node/events.d.ts:502 +[common.ts:555](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L555) ___ -### networkId +### paramByEIP -▸ **networkId**(): `bigint` +▸ **paramByEIP**(`topic`, `name`, `eip`): `undefined` \| `bigint` -Returns the Id of current network +Returns a parameter corresponding to an EIP + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `topic` | `string` | Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow') | +| `name` | `string` | Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic) | +| `eip` | `number` | Number of the EIP | #### Returns -`bigint` +`undefined` \| `bigint` -network Id +The value requested or `undefined` if not found #### Defined in -[packages/common/src/common.ts:976](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L976) +[common.ts:530](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L530) ___ -### nextHardforkBlock - -▸ **nextHardforkBlock**(`hardfork?`): ``null`` \| `bigint` +### paramByHardfork -Returns the change block for the next hardfork after the hardfork provided or set +▸ **paramByHardfork**(`topic`, `name`, `hardfork`): `bigint` -**`Deprecated`** +Returns the parameter corresponding to a hardfork #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `hardfork?` | `string` | Hardfork name, optional if HF set | +| `topic` | `string` | Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow') | +| `name` | `string` | Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic) | +| `hardfork` | `string` | Hardfork name | #### Returns -``null`` \| `bigint` +`bigint` -Block number or null if not available +The value requested or `BigInt(0)` if not found #### Defined in -[packages/common/src/common.ts:779](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L779) +[common.ts:499](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L499) ___ -### nextHardforkBlockOrTimestamp +### setChain -▸ **nextHardforkBlockOrTimestamp**(`hardfork?`): ``null`` \| `bigint` +▸ **setChain**(`chain`): [`ChainConfig`](../interfaces/ChainConfig.md) -Returns the change block for the next hardfork after the hardfork provided or set +Sets the chain #### Parameters | Name | Type | Description | | :------ | :------ | :------ | -| `hardfork?` | `string` | Hardfork name, optional if HF set | +| `chain` | `string` \| `number` \| `bigint` \| `object` | String ('mainnet') or Number (1) chain representation. Or, a Dictionary of chain parameters for a private network. | #### Returns -``null`` \| `bigint` +[`ChainConfig`](../interfaces/ChainConfig.md) -Block timestamp, number or null if not available +The dictionary with parameters set as chain #### Defined in -[packages/common/src/common.ts:729](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L729) +[common.ts:251](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L251) ___ -### off - -▸ **off**(`eventName`, `listener`): [`Common`](Common.md) - -Alias for `emitter.removeListener()`. +### setEIPs -**`Since`** +▸ **setEIPs**(`eips?`): `void` -v10.0.0 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `eventName` | `string` \| `symbol` | -| `listener` | (...`args`: `any`[]) => `void` | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.off - -#### Defined in - -node_modules/@types/node/events.d.ts:462 - -___ - -### on - -▸ **on**(`eventName`, `listener`): [`Common`](Common.md) - -Adds the `listener` function to the end of the listeners array for the -event named `eventName`. No checks are made to see if the `listener` has -already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple -times. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -const myEE = new EventEmitter(); -myEE.on('foo', () => console.log('a')); -myEE.prependListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -**`Since`** - -v0.1.101 - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `eventName` | `string` \| `symbol` | The name of the event. | -| `listener` | (...`args`: `any`[]) => `void` | The callback function | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.on - -#### Defined in - -node_modules/@types/node/events.d.ts:348 - -___ - -### once - -▸ **once**(`eventName`, `listener`): [`Common`](Common.md) - -Adds a **one-time**`listener` function for the event named `eventName`. The -next time `eventName` is triggered, this listener is removed and then invoked. - -```js -server.once('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The`emitter.prependOnceListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -const myEE = new EventEmitter(); -myEE.once('foo', () => console.log('a')); -myEE.prependOnceListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -**`Since`** - -v0.3.0 - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `eventName` | `string` \| `symbol` | The name of the event. | -| `listener` | (...`args`: `any`[]) => `void` | The callback function | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.once - -#### Defined in - -node_modules/@types/node/events.d.ts:377 - -___ - -### param - -▸ **param**(`topic`, `name`): `bigint` - -Returns a parameter for the current chain setup - -If the parameter is present in an EIP, the EIP always takes precedence. -Otherwise the parameter if taken from the latest applied HF with -a change on the respective parameter. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `topic` | `string` | Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow') | -| `name` | `string` | Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic) | - -#### Returns - -`bigint` - -The value requested or `BigInt(0)` if not found - -#### Defined in - -[packages/common/src/common.ts:490](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L490) - -___ - -### paramByBlock - -▸ **paramByBlock**(`topic`, `name`, `blockNumber`, `td?`, `timestamp?`): `bigint` - -Returns a parameter for the hardfork active on block number or -optional provided total difficulty (Merge HF) - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `topic` | `string` | Parameter topic | -| `name` | `string` | Parameter name | -| `blockNumber` | `BigIntLike` | Block number | -| `td?` | `BigIntLike` | Total difficulty * | -| `timestamp?` | `BigIntLike` | - | - -#### Returns - -`bigint` - -The value requested or `BigInt(0)` if not found - -#### Defined in - -[packages/common/src/common.ts:564](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L564) - -___ - -### paramByEIP - -▸ **paramByEIP**(`topic`, `name`, `eip`): `undefined` \| `bigint` - -Returns a parameter corresponding to an EIP - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `topic` | `string` | Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow') | -| `name` | `string` | Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic) | -| `eip` | `number` | Number of the EIP | - -#### Returns - -`undefined` \| `bigint` - -The value requested or `undefined` if not found - -#### Defined in - -[packages/common/src/common.ts:539](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L539) - -___ - -### paramByHardfork - -▸ **paramByHardfork**(`topic`, `name`, `hardfork`): `bigint` - -Returns the parameter corresponding to a hardfork - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `topic` | `string` | Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow') | -| `name` | `string` | Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic) | -| `hardfork` | `string` | Hardfork name | - -#### Returns - -`bigint` - -The value requested or `BigInt(0)` if not found - -#### Defined in - -[packages/common/src/common.ts:508](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L508) - -___ - -### prependListener - -▸ **prependListener**(`eventName`, `listener`): [`Common`](Common.md) - -Adds the `listener` function to the _beginning_ of the listeners array for the -event named `eventName`. No checks are made to see if the `listener` has -already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple -times. - -```js -server.prependListener('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -**`Since`** - -v6.0.0 - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `eventName` | `string` \| `symbol` | The name of the event. | -| `listener` | (...`args`: `any`[]) => `void` | The callback function | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.prependListener - -#### Defined in - -node_modules/@types/node/events.d.ts:597 - -___ - -### prependOnceListener - -▸ **prependOnceListener**(`eventName`, `listener`): [`Common`](Common.md) - -Adds a **one-time**`listener` function for the event named `eventName` to the_beginning_ of the listeners array. The next time `eventName` is triggered, this -listener is removed, and then invoked. - -```js -server.prependOnceListener('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -**`Since`** - -v6.0.0 - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `eventName` | `string` \| `symbol` | The name of the event. | -| `listener` | (...`args`: `any`[]) => `void` | The callback function | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.prependOnceListener - -#### Defined in - -node_modules/@types/node/events.d.ts:613 - -___ - -### rawListeners - -▸ **rawListeners**(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`, -including any wrappers (such as those created by `.once()`). - -```js -const emitter = new EventEmitter(); -emitter.once('log', () => console.log('log once')); - -// Returns a new Array with a function `onceWrapper` which has a property -// `listener` which contains the original listener bound above -const listeners = emitter.rawListeners('log'); -const logFnWrapper = listeners[0]; - -// Logs "log once" to the console and does not unbind the `once` event -logFnWrapper.listener(); - -// Logs "log once" to the console and removes the listener -logFnWrapper(); - -emitter.on('log', () => console.log('log persistently')); -// Will return a new Array with a single function bound by `.on()` above -const newListeners = emitter.rawListeners('log'); - -// Logs "log persistently" twice -newListeners[0](); -emitter.emit('log'); -``` - -**`Since`** - -v9.4.0 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `eventName` | `string` \| `symbol` | - -#### Returns - -`Function`[] - -#### Inherited from - -EventEmitter.rawListeners - -#### Defined in - -node_modules/@types/node/events.d.ts:532 - -___ - -### removeAllListeners - -▸ **removeAllListeners**(`event?`): [`Common`](Common.md) - -Removes all listeners, or those of the specified `eventName`. - -It is bad practice to remove listeners added elsewhere in the code, -particularly when the `EventEmitter` instance was created by some other -component or module (e.g. sockets or file streams). - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -**`Since`** - -v0.1.26 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `event?` | `string` \| `symbol` | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.removeAllListeners - -#### Defined in - -node_modules/@types/node/events.d.ts:473 - -___ - -### removeListener - -▸ **removeListener**(`eventName`, `listener`): [`Common`](Common.md) - -Removes the specified `listener` from the listener array for the event named`eventName`. - -```js -const callback = (stream) => { - console.log('someone connected!'); -}; -server.on('connection', callback); -// ... -server.removeListener('connection', callback); -``` - -`removeListener()` will remove, at most, one instance of a listener from the -listener array. If any single listener has been added multiple times to the -listener array for the specified `eventName`, then `removeListener()` must be -called multiple times to remove each instance. - -Once an event is emitted, all listeners attached to it at the -time of emitting are called in order. This implies that any`removeListener()` or `removeAllListeners()` calls _after_ emitting and_before_ the last listener finishes execution will -not remove them from`emit()` in progress. Subsequent events behave as expected. - -```js -const myEmitter = new MyEmitter(); - -const callbackA = () => { - console.log('A'); - myEmitter.removeListener('event', callbackB); -}; - -const callbackB = () => { - console.log('B'); -}; - -myEmitter.on('event', callbackA); - -myEmitter.on('event', callbackB); - -// callbackA removes listener callbackB but it will still be called. -// Internal listener array at time of emit [callbackA, callbackB] -myEmitter.emit('event'); -// Prints: -// A -// B - -// callbackB is now removed. -// Internal listener array [callbackA] -myEmitter.emit('event'); -// Prints: -// A -``` - -Because listeners are managed using an internal array, calling this will -change the position indices of any listener registered _after_ the listener -being removed. This will not impact the order in which listeners are called, -but it means that any copies of the listener array as returned by -the `emitter.listeners()` method will need to be recreated. - -When a single function has been added as a handler multiple times for a single -event (as in the example below), `removeListener()` will remove the most -recently added instance. In the example the `once('ping')`listener is removed: - -```js -const ee = new EventEmitter(); - -function pong() { - console.log('pong'); -} - -ee.on('ping', pong); -ee.once('ping', pong); -ee.removeListener('ping', pong); - -ee.emit('ping'); -ee.emit('ping'); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -**`Since`** - -v0.1.26 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `eventName` | `string` \| `symbol` | -| `listener` | (...`args`: `any`[]) => `void` | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.removeListener - -#### Defined in - -node_modules/@types/node/events.d.ts:457 - -___ - -### setChain - -▸ **setChain**(`chain`): [`ChainConfig`](../interfaces/ChainConfig.md) - -Sets the chain - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `chain` | `string` \| `number` \| `bigint` \| `object` | String ('mainnet') or Number (1) chain representation. Or, a Dictionary of chain parameters for a private network. | - -#### Returns - -[`ChainConfig`](../interfaces/ChainConfig.md) - -The dictionary with parameters set as chain - -#### Defined in - -[packages/common/src/common.ts:252](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L252) - -___ - -### setEIPs - -▸ **setEIPs**(`eips?`): `void` - -Sets the active EIPs +Sets the active EIPs #### Parameters @@ -1684,7 +812,7 @@ Sets the active EIPs #### Defined in -[packages/common/src/common.ts:457](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L457) +[common.ts:448](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L448) ___ @@ -1698,7 +826,7 @@ Sets any missing forkHashes on the passed-in [Common](Common.md) instance | Name | Type | Description | | :------ | :------ | :------ | -| `genesisHash` | `Buffer` | The genesis block hash | +| `genesisHash` | `Uint8Array` | The genesis block hash | #### Returns @@ -1706,7 +834,7 @@ Sets any missing forkHashes on the passed-in [Common](Common.md) instance #### Defined in -[packages/common/src/common.ts:904](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L904) +[common.ts:829](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L829) ___ @@ -1728,16 +856,16 @@ Sets the hardfork to get params for #### Defined in -[packages/common/src/common.ts:283](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L283) +[common.ts:282](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L282) ___ -### setHardforkByBlockNumber +### setHardforkBy -▸ **setHardforkByBlockNumber**(`blockNumber`, `td?`, `timestamp?`): `string` +▸ **setHardforkBy**(`opts`): `string` -Sets a new hardfork based on the block number or an optional -total difficulty (Merge HF) provided. +Sets a new hardfork either based on block numer (older HFs) or +timestamp (Shanghai upwards). An optional TD takes precedence in case the corresponding HF block is set to `null` or otherwise needs to match (if not an error @@ -1747,9 +875,7 @@ will be thrown). | Name | Type | | :------ | :------ | -| `blockNumber` | `BigIntLike` | -| `td?` | `BigIntLike` | -| `timestamp?` | `BigIntLike` | +| `opts` | [`HardforkByOpts`](../interfaces/HardforkByOpts.md) | #### Returns @@ -1759,62 +885,7 @@ The name of the HF set #### Defined in -[packages/common/src/common.ts:430](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L430) - -___ - -### setMaxListeners - -▸ **setMaxListeners**(`n`): [`Common`](Common.md) - -By default `EventEmitter`s will print a warning if more than `10` listeners are -added for a particular event. This is a useful default that helps finding -memory leaks. The `emitter.setMaxListeners()` method allows the limit to be -modified for this specific `EventEmitter` instance. The value can be set to`Infinity` (or `0`) to indicate an unlimited number of listeners. - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -**`Since`** - -v0.3.5 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `n` | `number` | - -#### Returns - -[`Common`](Common.md) - -#### Inherited from - -EventEmitter.setMaxListeners - -#### Defined in - -node_modules/@types/node/events.d.ts:483 - -___ - -### \_getInitializedChains - -▸ `Static` **_getInitializedChains**(`customChains?`): [`ChainsConfig`](../interfaces/ChainsConfig.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `customChains?` | [`ChainConfig`](../interfaces/ChainConfig.md)[] | - -#### Returns - -[`ChainsConfig`](../interfaces/ChainsConfig.md) - -#### Defined in - -[packages/common/src/common.ts:1067](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L1067) +[common.ts:425](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L425) ___ @@ -1855,7 +926,7 @@ the `@ethereumjs/tx` library to a Layer-2 chain). #### Defined in -[packages/common/src/common.ts:76](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L76) +[common.ts:84](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L84) ___ @@ -1880,61 +951,27 @@ Common #### Defined in -[packages/common/src/common.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L177) +[common.ts:175](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L175) ___ -### getEventListeners - -▸ `Static` **getEventListeners**(`emitter`, `name`): `Function`[] +### getInitializedChains -Returns a copy of the array of listeners for the event named `eventName`. - -For `EventEmitter`s this behaves exactly the same as calling `.listeners` on -the emitter. - -For `EventTarget`s this is the only way to get the event listeners for the -event target. This is useful for debugging and diagnostic purposes. - -```js -const { getEventListeners, EventEmitter } = require('events'); - -{ - const ee = new EventEmitter(); - const listener = () => console.log('Events are fun'); - ee.on('foo', listener); - getEventListeners(ee, 'foo'); // [listener] -} -{ - const et = new EventTarget(); - const listener = () => console.log('Events are fun'); - et.addEventListener('foo', listener); - getEventListeners(et, 'foo'); // [listener] -} -``` - -**`Since`** - -v15.2.0 +▸ `Static` **getInitializedChains**(`customChains?`): [`ChainsConfig`](../interfaces/ChainsConfig.md) #### Parameters | Name | Type | | :------ | :------ | -| `emitter` | `EventEmitter` \| `DOMEventTarget` | -| `name` | `string` \| `symbol` | +| `customChains?` | [`ChainConfig`](../interfaces/ChainConfig.md)[] | #### Returns -`Function`[] - -#### Inherited from - -EventEmitter.getEventListeners +[`ChainsConfig`](../interfaces/ChainsConfig.md) #### Defined in -node_modules/@types/node/events.d.ts:262 +[common.ts:992](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L992) ___ @@ -1958,307 +995,4 @@ boolean #### Defined in -[packages/common/src/common.ts:199](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L199) - -___ - -### listenerCount - -▸ `Static` **listenerCount**(`emitter`, `eventName`): `number` - -A class method that returns the number of listeners for the given `eventName`registered on the given `emitter`. - -```js -const { EventEmitter, listenerCount } = require('events'); -const myEmitter = new EventEmitter(); -myEmitter.on('event', () => {}); -myEmitter.on('event', () => {}); -console.log(listenerCount(myEmitter, 'event')); -// Prints: 2 -``` - -**`Since`** - -v0.9.12 - -**`Deprecated`** - -Since v3.2.0 - Use `listenerCount` instead. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `emitter` | `EventEmitter` | The emitter to query | -| `eventName` | `string` \| `symbol` | The event name | - -#### Returns - -`number` - -#### Inherited from - -EventEmitter.listenerCount - -#### Defined in - -node_modules/@types/node/events.d.ts:234 - -___ - -### on - -▸ `Static` **on**(`emitter`, `eventName`, `options?`): `AsyncIterableIterator`<`any`\> - -```js -const { on, EventEmitter } = require('events'); - -(async () => { - const ee = new EventEmitter(); - - // Emit later on - process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - }); - - for await (const event of on(ee, 'foo')) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] - } - // Unreachable here -})(); -``` - -Returns an `AsyncIterator` that iterates `eventName` events. It will throw -if the `EventEmitter` emits `'error'`. It removes all listeners when -exiting the loop. The `value` returned by each iteration is an array -composed of the emitted event arguments. - -An `AbortSignal` can be used to cancel waiting on events: - -```js -const { on, EventEmitter } = require('events'); -const ac = new AbortController(); - -(async () => { - const ee = new EventEmitter(); - - // Emit later on - process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - }); - - for await (const event of on(ee, 'foo', { signal: ac.signal })) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] - } - // Unreachable here -})(); - -process.nextTick(() => ac.abort()); -``` - -**`Since`** - -v13.6.0, v12.16.0 - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `emitter` | `EventEmitter` | - | -| `eventName` | `string` | The name of the event being listened for | -| `options?` | `StaticEventEmitterOptions` | - | - -#### Returns - -`AsyncIterableIterator`<`any`\> - -that iterates `eventName` events emitted by the `emitter` - -#### Inherited from - -EventEmitter.on - -#### Defined in - -node_modules/@types/node/events.d.ts:217 - -___ - -### once - -▸ `Static` **once**(`emitter`, `eventName`, `options?`): `Promise`<`any`[]\> - -Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given -event or that is rejected if the `EventEmitter` emits `'error'` while waiting. -The `Promise` will resolve with an array of all the arguments emitted to the -given event. - -This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event -semantics and does not listen to the `'error'` event. - -```js -const { once, EventEmitter } = require('events'); - -async function run() { - const ee = new EventEmitter(); - - process.nextTick(() => { - ee.emit('myevent', 42); - }); - - const [value] = await once(ee, 'myevent'); - console.log(value); - - const err = new Error('kaboom'); - process.nextTick(() => { - ee.emit('error', err); - }); - - try { - await once(ee, 'myevent'); - } catch (err) { - console.log('error happened', err); - } -} - -run(); -``` - -The special handling of the `'error'` event is only used when `events.once()`is used to wait for another event. If `events.once()` is used to wait for the -'`error'` event itself, then it is treated as any other kind of event without -special handling: - -```js -const { EventEmitter, once } = require('events'); - -const ee = new EventEmitter(); - -once(ee, 'error') - .then(([err]) => console.log('ok', err.message)) - .catch((err) => console.log('error', err.message)); - -ee.emit('error', new Error('boom')); - -// Prints: ok boom -``` - -An `AbortSignal` can be used to cancel waiting for the event: - -```js -const { EventEmitter, once } = require('events'); - -const ee = new EventEmitter(); -const ac = new AbortController(); - -async function foo(emitter, event, signal) { - try { - await once(emitter, event, { signal }); - console.log('event emitted!'); - } catch (error) { - if (error.name === 'AbortError') { - console.error('Waiting for the event was canceled!'); - } else { - console.error('There was an error', error.message); - } - } -} - -foo(ee, 'foo', ac.signal); -ac.abort(); // Abort waiting for the event -ee.emit('foo'); // Prints: Waiting for the event was canceled! -``` - -**`Since`** - -v11.13.0, v10.16.0 - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `emitter` | `NodeEventTarget` | -| `eventName` | `string` \| `symbol` | -| `options?` | `StaticEventEmitterOptions` | - -#### Returns - -`Promise`<`any`[]\> - -#### Inherited from - -EventEmitter.once - -#### Defined in - -node_modules/@types/node/events.d.ts:157 - -▸ `Static` **once**(`emitter`, `eventName`, `options?`): `Promise`<`any`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `emitter` | `DOMEventTarget` | -| `eventName` | `string` | -| `options?` | `StaticEventEmitterOptions` | - -#### Returns - -`Promise`<`any`[]\> - -#### Inherited from - -EventEmitter.once - -#### Defined in - -node_modules/@types/node/events.d.ts:158 - -___ - -### setMaxListeners - -▸ `Static` **setMaxListeners**(`n?`, ...`eventTargets`): `void` - -```js -const { - setMaxListeners, - EventEmitter -} = require('events'); - -const target = new EventTarget(); -const emitter = new EventEmitter(); - -setMaxListeners(5, target, emitter); -``` - -**`Since`** - -v15.4.0 - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `n?` | `number` | A non-negative number. The maximum number of listeners per `EventTarget` event. | -| `...eventTargets` | (`EventEmitter` \| `DOMEventTarget`)[] | - | - -#### Returns - -`void` - -#### Inherited from - -EventEmitter.setMaxListeners - -#### Defined in - -node_modules/@types/node/events.d.ts:280 +[common.ts:197](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/common.ts#L197) diff --git a/packages/common/docs/enums/Chain.md b/packages/common/docs/enums/Chain.md index 6670768ded..07fb5268e2 100644 --- a/packages/common/docs/enums/Chain.md +++ b/packages/common/docs/enums/Chain.md @@ -18,7 +18,7 @@ #### Defined in -[packages/common/src/enums.ts:5](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L5) +[enums.ts:5](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L5) ___ @@ -28,7 +28,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:2](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L2) +[enums.ts:4](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L4) ___ @@ -38,4 +38,4 @@ ___ #### Defined in -[packages/common/src/enums.ts:6](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L6) +[enums.ts:6](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L6) diff --git a/packages/common/docs/enums/ConsensusAlgorithm.md b/packages/common/docs/enums/ConsensusAlgorithm.md index 8ac344d6e1..eab4fbf638 100644 --- a/packages/common/docs/enums/ConsensusAlgorithm.md +++ b/packages/common/docs/enums/ConsensusAlgorithm.md @@ -18,7 +18,7 @@ #### Defined in -[packages/common/src/enums.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L39) +[enums.ts:68](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L68) ___ @@ -28,7 +28,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:38](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L38) +[enums.ts:67](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L67) ___ @@ -38,4 +38,4 @@ ___ #### Defined in -[packages/common/src/enums.ts:37](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L37) +[enums.ts:66](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L66) diff --git a/packages/common/docs/enums/ConsensusType.md b/packages/common/docs/enums/ConsensusType.md index 350d895328..18f8a63631 100644 --- a/packages/common/docs/enums/ConsensusType.md +++ b/packages/common/docs/enums/ConsensusType.md @@ -18,7 +18,7 @@ #### Defined in -[packages/common/src/enums.ts:33](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L33) +[enums.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L62) ___ @@ -28,7 +28,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L31) +[enums.ts:60](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L60) ___ @@ -38,4 +38,4 @@ ___ #### Defined in -[packages/common/src/enums.ts:32](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L32) +[enums.ts:61](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L61) diff --git a/packages/common/docs/enums/CustomChain.md b/packages/common/docs/enums/CustomChain.md index addbf16f4f..f5a91f34d0 100644 --- a/packages/common/docs/enums/CustomChain.md +++ b/packages/common/docs/enums/CustomChain.md @@ -7,7 +7,6 @@ ### Enumeration Members - [ArbitrumOne](CustomChain.md#arbitrumone) -- [ArbitrumRinkebyTestnet](CustomChain.md#arbitrumrinkebytestnet) - [OptimisticEthereum](CustomChain.md#optimisticethereum) - [OptimisticKovan](CustomChain.md#optimistickovan) - [PolygonMainnet](CustomChain.md#polygonmainnet) @@ -26,21 +25,7 @@ Arbitrum One - mainnet for Arbitrum roll-up #### Defined in -[packages/common/src/enums.ts:69](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L69) - -___ - -### ArbitrumRinkebyTestnet - -• **ArbitrumRinkebyTestnet** = ``"arbitrum-rinkeby-testnet"`` - -Arbitrum Rinkeby Testnet - -- [Documentation](https://developer.offchainlabs.com/docs/public_testnet) - -#### Defined in - -[packages/common/src/enums.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L62) +[enums.ts:91](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L91) ___ @@ -54,7 +39,7 @@ Optimistic Ethereum - mainnet for Optimism roll-up #### Defined in -[packages/common/src/enums.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L90) +[enums.ts:112](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L112) ___ @@ -68,7 +53,7 @@ Optimistic Kovan - testnet for Optimism roll-up #### Defined in -[packages/common/src/enums.ts:83](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L83) +[enums.ts:105](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L105) ___ @@ -82,7 +67,7 @@ Polygon (Matic) Mainnet #### Defined in -[packages/common/src/enums.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L48) +[enums.ts:77](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L77) ___ @@ -96,7 +81,7 @@ Polygon (Matic) Mumbai Testnet #### Defined in -[packages/common/src/enums.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L55) +[enums.ts:84](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L84) ___ @@ -110,4 +95,4 @@ xDai EVM sidechain with a native stable token #### Defined in -[packages/common/src/enums.ts:76](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L76) +[enums.ts:98](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L98) diff --git a/packages/common/docs/enums/Hardfork.md b/packages/common/docs/enums/Hardfork.md index 143608ef66..db5e234fc1 100644 --- a/packages/common/docs/enums/Hardfork.md +++ b/packages/common/docs/enums/Hardfork.md @@ -9,6 +9,7 @@ - [ArrowGlacier](Hardfork.md#arrowglacier) - [Berlin](Hardfork.md#berlin) - [Byzantium](Hardfork.md#byzantium) +- [Cancun](Hardfork.md#cancun) - [Chainstart](Hardfork.md#chainstart) - [Constantinople](Hardfork.md#constantinople) - [Dao](Hardfork.md#dao) @@ -16,12 +17,11 @@ - [Homestead](Hardfork.md#homestead) - [Istanbul](Hardfork.md#istanbul) - [London](Hardfork.md#london) -- [Merge](Hardfork.md#merge) - [MergeForkIdTransition](Hardfork.md#mergeforkidtransition) - [MuirGlacier](Hardfork.md#muirglacier) +- [Paris](Hardfork.md#paris) - [Petersburg](Hardfork.md#petersburg) - [Shanghai](Hardfork.md#shanghai) -- [Cancun](Hardfork.md#Cancun) - [SpuriousDragon](Hardfork.md#spuriousdragon) - [TangerineWhistle](Hardfork.md#tangerinewhistle) @@ -33,7 +33,7 @@ #### Defined in -[packages/common/src/enums.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L22) +[enums.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L51) ___ @@ -43,7 +43,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L20) +[enums.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L49) ___ @@ -53,7 +53,17 @@ ___ #### Defined in -[packages/common/src/enums.ts:15](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L15) +[enums.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L44) + +___ + +### Cancun + +• **Cancun** = ``"cancun"`` + +#### Defined in + +[enums.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L56) ___ @@ -63,7 +73,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:10](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L10) +[enums.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L39) ___ @@ -73,7 +83,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:16](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L16) +[enums.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L45) ___ @@ -83,7 +93,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:12](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L12) +[enums.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L41) ___ @@ -93,7 +103,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L23) +[enums.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L52) ___ @@ -103,7 +113,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:11](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L11) +[enums.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L40) ___ @@ -113,7 +123,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:18](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L18) +[enums.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L47) ___ @@ -123,17 +133,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L21) - -___ - -### Merge - -• **Merge** = ``"merge"`` - -#### Defined in - -[packages/common/src/enums.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L25) +[enums.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L50) ___ @@ -143,7 +143,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L24) +[enums.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L53) ___ @@ -153,37 +153,37 @@ ___ #### Defined in -[packages/common/src/enums.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L19) +[enums.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L48) ___ -### Petersburg +### Paris -• **Petersburg** = ``"petersburg"`` +• **Paris** = ``"paris"`` #### Defined in -[packages/common/src/enums.ts:17](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L17) +[enums.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L54) ___ -### Shanghai +### Petersburg -• **Shanghai** = ``"shanghai"`` +• **Petersburg** = ``"petersburg"`` #### Defined in -[packages/common/src/enums.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L26) +[enums.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L46) ___ -### Cancun +### Shanghai -• **Cancun** = ``"cancun"`` +• **Shanghai** = ``"shanghai"`` #### Defined in -[packages/common/src/enums.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L27) +[enums.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L55) ___ @@ -193,7 +193,7 @@ ___ #### Defined in -[packages/common/src/enums.ts:14](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L14) +[enums.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L43) ___ @@ -203,4 +203,4 @@ ___ #### Defined in -[packages/common/src/enums.ts:13](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L13) +[enums.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/enums.ts#L42) diff --git a/packages/common/docs/interfaces/BootstrapNodeConfig.md b/packages/common/docs/interfaces/BootstrapNodeConfig.md index ad42892496..86616aba33 100644 --- a/packages/common/docs/interfaces/BootstrapNodeConfig.md +++ b/packages/common/docs/interfaces/BootstrapNodeConfig.md @@ -22,7 +22,7 @@ #### Defined in -[packages/common/src/types.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L59) +[types.ts:61](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L61) ___ @@ -32,7 +32,7 @@ ___ #### Defined in -[packages/common/src/types.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L62) +[types.ts:64](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L64) ___ @@ -42,7 +42,7 @@ ___ #### Defined in -[packages/common/src/types.ts:60](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L60) +[types.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L62) ___ @@ -52,7 +52,7 @@ ___ #### Defined in -[packages/common/src/types.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L56) +[types.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L58) ___ @@ -62,7 +62,7 @@ ___ #### Defined in -[packages/common/src/types.ts:61](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L61) +[types.ts:63](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L63) ___ @@ -72,7 +72,7 @@ ___ #### Defined in -[packages/common/src/types.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L58) +[types.ts:60](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L60) ___ @@ -82,4 +82,4 @@ ___ #### Defined in -[packages/common/src/types.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L57) +[types.ts:59](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L59) diff --git a/packages/common/docs/interfaces/ChainConfig.md b/packages/common/docs/interfaces/ChainConfig.md index 0238ad43bb..884dd36514 100644 --- a/packages/common/docs/interfaces/ChainConfig.md +++ b/packages/common/docs/interfaces/ChainConfig.md @@ -26,7 +26,7 @@ #### Defined in -[packages/common/src/types.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L27) +[types.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L28) ___ @@ -36,7 +36,7 @@ ___ #### Defined in -[packages/common/src/types.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L20) +[types.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L21) ___ @@ -46,7 +46,7 @@ ___ #### Defined in -[packages/common/src/types.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L23) +[types.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L24) ___ @@ -66,7 +66,7 @@ ___ #### Defined in -[packages/common/src/types.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L29) +[types.ts:30](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L30) ___ @@ -76,7 +76,7 @@ ___ #### Defined in -[packages/common/src/types.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L22) +[types.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L23) ___ @@ -86,7 +86,7 @@ ___ #### Defined in -[packages/common/src/types.ts:28](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L28) +[types.ts:29](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L29) ___ @@ -96,7 +96,7 @@ ___ #### Defined in -[packages/common/src/types.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L25) +[types.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L26) ___ @@ -106,7 +106,7 @@ ___ #### Defined in -[packages/common/src/types.ts:26](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L26) +[types.ts:27](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L27) ___ @@ -116,7 +116,7 @@ ___ #### Defined in -[packages/common/src/types.ts:19](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L19) +[types.ts:20](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L20) ___ @@ -126,7 +126,7 @@ ___ #### Defined in -[packages/common/src/types.ts:21](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L21) +[types.ts:22](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L22) ___ @@ -136,4 +136,4 @@ ___ #### Defined in -[packages/common/src/types.ts:24](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L24) +[types.ts:25](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L25) diff --git a/packages/common/docs/interfaces/CommonOpts.md b/packages/common/docs/interfaces/CommonOpts.md index a8b0118fe6..0ff3056ed4 100644 --- a/packages/common/docs/interfaces/CommonOpts.md +++ b/packages/common/docs/interfaces/CommonOpts.md @@ -31,7 +31,7 @@ passed in via [customChains](CommonOpts.md#customchains). #### Defined in -[packages/common/src/types.ts:92](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L92) +[types.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L90) ___ @@ -51,7 +51,7 @@ const common = new Common({ chain: 'myCustomChain1', customChains: [ myCustomCha #### Defined in -[packages/common/src/types.ts:104](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L104) +[types.ts:102](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L102) ___ @@ -60,11 +60,7 @@ ___ • `Optional` **eips**: `number`[] Selected EIPs which can be activated, please use an array for instantiation -(e.g. `eips: [ 2537, ]`) - -Currently supported: - -- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS12-381 precompiles +(e.g. `eips: [ 1559, 3860 ]`) #### Inherited from @@ -72,7 +68,7 @@ BaseOpts.eips #### Defined in -[packages/common/src/types.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L80) +[types.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L78) ___ @@ -90,4 +86,4 @@ BaseOpts.hardfork #### Defined in -[packages/common/src/types.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L71) +[types.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L73) diff --git a/packages/common/docs/interfaces/CustomCommonOpts.md b/packages/common/docs/interfaces/CustomCommonOpts.md index 0c4231f58d..531fec7d9c 100644 --- a/packages/common/docs/interfaces/CustomCommonOpts.md +++ b/packages/common/docs/interfaces/CustomCommonOpts.md @@ -29,7 +29,7 @@ a standard chain used to base the custom chain params on. #### Defined in -[packages/common/src/types.ts:115](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L115) +[types.ts:113](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L113) ___ @@ -38,11 +38,7 @@ ___ • `Optional` **eips**: `number`[] Selected EIPs which can be activated, please use an array for instantiation -(e.g. `eips: [ 2537, ]`) - -Currently supported: - -- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS12-381 precompiles +(e.g. `eips: [ 1559, 3860 ]`) #### Inherited from @@ -50,7 +46,7 @@ BaseOpts.eips #### Defined in -[packages/common/src/types.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L80) +[types.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L78) ___ @@ -68,4 +64,4 @@ BaseOpts.hardfork #### Defined in -[packages/common/src/types.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L71) +[types.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L73) diff --git a/packages/common/docs/interfaces/EVMStateManagerInterface.md b/packages/common/docs/interfaces/EVMStateManagerInterface.md new file mode 100644 index 0000000000..212f5efca2 --- /dev/null +++ b/packages/common/docs/interfaces/EVMStateManagerInterface.md @@ -0,0 +1,480 @@ +[@ethereumjs/common](../README.md) / EVMStateManagerInterface + +# Interface: EVMStateManagerInterface + +## Hierarchy + +- [`StateManagerInterface`](StateManagerInterface.md) + + ↳ **`EVMStateManagerInterface`** + +## Table of contents + +### Properties + +- [originalStorageCache](EVMStateManagerInterface.md#originalstoragecache) + +### Methods + +- [checkpoint](EVMStateManagerInterface.md#checkpoint) +- [clearContractStorage](EVMStateManagerInterface.md#clearcontractstorage) +- [commit](EVMStateManagerInterface.md#commit) +- [deleteAccount](EVMStateManagerInterface.md#deleteaccount) +- [dumpStorage](EVMStateManagerInterface.md#dumpstorage) +- [generateCanonicalGenesis](EVMStateManagerInterface.md#generatecanonicalgenesis) +- [getAccount](EVMStateManagerInterface.md#getaccount) +- [getContractCode](EVMStateManagerInterface.md#getcontractcode) +- [getContractStorage](EVMStateManagerInterface.md#getcontractstorage) +- [getProof](EVMStateManagerInterface.md#getproof) +- [getStateRoot](EVMStateManagerInterface.md#getstateroot) +- [hasStateRoot](EVMStateManagerInterface.md#hasstateroot) +- [modifyAccountFields](EVMStateManagerInterface.md#modifyaccountfields) +- [putAccount](EVMStateManagerInterface.md#putaccount) +- [putContractCode](EVMStateManagerInterface.md#putcontractcode) +- [putContractStorage](EVMStateManagerInterface.md#putcontractstorage) +- [revert](EVMStateManagerInterface.md#revert) +- [setStateRoot](EVMStateManagerInterface.md#setstateroot) +- [shallowCopy](EVMStateManagerInterface.md#shallowcopy) + +## Properties + +### originalStorageCache + +• **originalStorageCache**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `clear` | () => `void` | +| `get` | (`address`: `Address`, `key`: `Uint8Array`) => `Promise`<`Uint8Array`\> | + +#### Defined in + +[interfaces.ts:62](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L62) + +## Methods + +### checkpoint + +▸ **checkpoint**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[checkpoint](StateManagerInterface.md#checkpoint) + +#### Defined in + +[interfaces.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L51) + +___ + +### clearContractStorage + +▸ **clearContractStorage**(`address`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[clearContractStorage](StateManagerInterface.md#clearcontractstorage) + +#### Defined in + +[interfaces.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L50) + +___ + +### commit + +▸ **commit**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[commit](StateManagerInterface.md#commit) + +#### Defined in + +[interfaces.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L52) + +___ + +### deleteAccount + +▸ **deleteAccount**(`address`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[deleteAccount](StateManagerInterface.md#deleteaccount) + +#### Defined in + +[interfaces.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L44) + +___ + +### dumpStorage + +▸ **dumpStorage**(`address`): `Promise`<[`StorageDump`](StorageDump.md)\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<[`StorageDump`](StorageDump.md)\> + +#### Defined in + +[interfaces.ts:67](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L67) + +___ + +### generateCanonicalGenesis + +▸ **generateCanonicalGenesis**(`initState`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `initState` | `any` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:68](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L68) + +___ + +### getAccount + +▸ **getAccount**(`address`): `Promise`<`undefined` \| `Account`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`undefined` \| `Account`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[getAccount](StateManagerInterface.md#getaccount) + +#### Defined in + +[interfaces.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L42) + +___ + +### getContractCode + +▸ **getContractCode**(`address`): `Promise`<`Uint8Array`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[getContractCode](StateManagerInterface.md#getcontractcode) + +#### Defined in + +[interfaces.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L47) + +___ + +### getContractStorage + +▸ **getContractStorage**(`address`, `key`): `Promise`<`Uint8Array`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `key` | `Uint8Array` | + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[getContractStorage](StateManagerInterface.md#getcontractstorage) + +#### Defined in + +[interfaces.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L48) + +___ + +### getProof + +▸ **getProof**(`address`, `storageSlots?`): `Promise`<[`Proof`](../README.md#proof)\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `storageSlots?` | `Uint8Array`[] | + +#### Returns + +`Promise`<[`Proof`](../README.md#proof)\> + +#### Overrides + +[StateManagerInterface](StateManagerInterface.md).[getProof](StateManagerInterface.md#getproof) + +#### Defined in + +[interfaces.ts:69](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L69) + +___ + +### getStateRoot + +▸ **getStateRoot**(): `Promise`<`Uint8Array`\> + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[getStateRoot](StateManagerInterface.md#getstateroot) + +#### Defined in + +[interfaces.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L54) + +___ + +### hasStateRoot + +▸ **hasStateRoot**(`root`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `root` | `Uint8Array` | + +#### Returns + +`Promise`<`boolean`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[hasStateRoot](StateManagerInterface.md#hasstateroot) + +#### Defined in + +[interfaces.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L57) + +___ + +### modifyAccountFields + +▸ **modifyAccountFields**(`address`, `accountFields`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `accountFields` | `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[modifyAccountFields](StateManagerInterface.md#modifyaccountfields) + +#### Defined in + +[interfaces.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L45) + +___ + +### putAccount + +▸ **putAccount**(`address`, `account?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `account?` | `Account` | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[putAccount](StateManagerInterface.md#putaccount) + +#### Defined in + +[interfaces.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L43) + +___ + +### putContractCode + +▸ **putContractCode**(`address`, `value`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `value` | `Uint8Array` | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[putContractCode](StateManagerInterface.md#putcontractcode) + +#### Defined in + +[interfaces.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L46) + +___ + +### putContractStorage + +▸ **putContractStorage**(`address`, `key`, `value`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `key` | `Uint8Array` | +| `value` | `Uint8Array` | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[putContractStorage](StateManagerInterface.md#putcontractstorage) + +#### Defined in + +[interfaces.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L49) + +___ + +### revert + +▸ **revert**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[revert](StateManagerInterface.md#revert) + +#### Defined in + +[interfaces.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L53) + +___ + +### setStateRoot + +▸ **setStateRoot**(`stateRoot`, `clearCache?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `stateRoot` | `Uint8Array` | +| `clearCache?` | `boolean` | + +#### Returns + +`Promise`<`void`\> + +#### Inherited from + +[StateManagerInterface](StateManagerInterface.md).[setStateRoot](StateManagerInterface.md#setstateroot) + +#### Defined in + +[interfaces.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L55) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`EVMStateManagerInterface`](EVMStateManagerInterface.md) + +#### Returns + +[`EVMStateManagerInterface`](EVMStateManagerInterface.md) + +#### Overrides + +[StateManagerInterface](StateManagerInterface.md).[shallowCopy](StateManagerInterface.md#shallowcopy) + +#### Defined in + +[interfaces.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L71) diff --git a/packages/common/docs/interfaces/GenesisBlockConfig.md b/packages/common/docs/interfaces/GenesisBlockConfig.md index 772d87551e..d6b5aa3c59 100644 --- a/packages/common/docs/interfaces/GenesisBlockConfig.md +++ b/packages/common/docs/interfaces/GenesisBlockConfig.md @@ -8,6 +8,7 @@ - [baseFeePerGas](GenesisBlockConfig.md#basefeepergas) - [difficulty](GenesisBlockConfig.md#difficulty) +- [excessDataGas](GenesisBlockConfig.md#excessdatagas) - [extraData](GenesisBlockConfig.md#extradata) - [gasLimit](GenesisBlockConfig.md#gaslimit) - [nonce](GenesisBlockConfig.md#nonce) @@ -21,17 +22,27 @@ #### Defined in -[packages/common/src/types.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L44) +[types.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L45) ___ ### difficulty -• **difficulty**: `number` +• **difficulty**: `string` \| `number` #### Defined in -[packages/common/src/types.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L41) +[types.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L42) + +___ + +### excessDataGas + +• `Optional` **excessDataGas**: `string` + +#### Defined in + +[types.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L46) ___ @@ -41,17 +52,17 @@ ___ #### Defined in -[packages/common/src/types.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L43) +[types.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L44) ___ ### gasLimit -• **gasLimit**: `number` +• **gasLimit**: `string` \| `number` #### Defined in -[packages/common/src/types.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L40) +[types.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L41) ___ @@ -61,7 +72,7 @@ ___ #### Defined in -[packages/common/src/types.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L42) +[types.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L43) ___ @@ -71,4 +82,4 @@ ___ #### Defined in -[packages/common/src/types.ts:39](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L39) +[types.ts:40](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L40) diff --git a/packages/common/docs/interfaces/GethConfigOpts.md b/packages/common/docs/interfaces/GethConfigOpts.md index 4d5688c3d1..0066ce8c8e 100644 --- a/packages/common/docs/interfaces/GethConfigOpts.md +++ b/packages/common/docs/interfaces/GethConfigOpts.md @@ -26,7 +26,7 @@ #### Defined in -[packages/common/src/types.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L119) +[types.ts:117](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L117) ___ @@ -35,11 +35,7 @@ ___ • `Optional` **eips**: `number`[] Selected EIPs which can be activated, please use an array for instantiation -(e.g. `eips: [ 2537, ]`) - -Currently supported: - -- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS12-381 precompiles +(e.g. `eips: [ 1559, 3860 ]`) #### Inherited from @@ -47,17 +43,17 @@ BaseOpts.eips #### Defined in -[packages/common/src/types.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L80) +[types.ts:78](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L78) ___ ### genesisHash -• `Optional` **genesisHash**: `Buffer` +• `Optional` **genesisHash**: `Uint8Array` #### Defined in -[packages/common/src/types.ts:120](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L120) +[types.ts:118](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L118) ___ @@ -75,7 +71,7 @@ BaseOpts.hardfork #### Defined in -[packages/common/src/types.ts:71](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L71) +[types.ts:73](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L73) ___ @@ -85,4 +81,4 @@ ___ #### Defined in -[packages/common/src/types.ts:121](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L121) +[types.ts:119](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L119) diff --git a/packages/common/docs/interfaces/HardforkByOpts.md b/packages/common/docs/interfaces/HardforkByOpts.md new file mode 100644 index 0000000000..1d520cf211 --- /dev/null +++ b/packages/common/docs/interfaces/HardforkByOpts.md @@ -0,0 +1,41 @@ +[@ethereumjs/common](../README.md) / HardforkByOpts + +# Interface: HardforkByOpts + +## Table of contents + +### Properties + +- [blockNumber](HardforkByOpts.md#blocknumber) +- [td](HardforkByOpts.md#td) +- [timestamp](HardforkByOpts.md#timestamp) + +## Properties + +### blockNumber + +• `Optional` **blockNumber**: `BigIntLike` + +#### Defined in + +[types.ts:123](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L123) + +___ + +### td + +• `Optional` **td**: `BigIntLike` + +#### Defined in + +[types.ts:125](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L125) + +___ + +### timestamp + +• `Optional` **timestamp**: `BigIntLike` + +#### Defined in + +[types.ts:124](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L124) diff --git a/packages/common/docs/interfaces/HardforkConfig.md b/packages/common/docs/interfaces/HardforkConfig.md index 2c1f539a76..cb3f74548f 100644 --- a/packages/common/docs/interfaces/HardforkConfig.md +++ b/packages/common/docs/interfaces/HardforkConfig.md @@ -20,7 +20,7 @@ #### Defined in -[packages/common/src/types.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L49) +[types.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L51) ___ @@ -30,7 +30,7 @@ ___ #### Defined in -[packages/common/src/types.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L52) +[types.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L54) ___ @@ -40,7 +40,7 @@ ___ #### Defined in -[packages/common/src/types.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L48) +[types.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L50) ___ @@ -50,7 +50,7 @@ ___ #### Defined in -[packages/common/src/types.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L51) +[types.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L53) ___ @@ -60,4 +60,4 @@ ___ #### Defined in -[packages/common/src/types.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L50) +[types.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/types.ts#L52) diff --git a/packages/common/docs/interfaces/StateManagerInterface.md b/packages/common/docs/interfaces/StateManagerInterface.md new file mode 100644 index 0000000000..579e03fa1c --- /dev/null +++ b/packages/common/docs/interfaces/StateManagerInterface.md @@ -0,0 +1,349 @@ +[@ethereumjs/common](../README.md) / StateManagerInterface + +# Interface: StateManagerInterface + +## Hierarchy + +- **`StateManagerInterface`** + + ↳ [`EVMStateManagerInterface`](EVMStateManagerInterface.md) + +## Table of contents + +### Methods + +- [checkpoint](StateManagerInterface.md#checkpoint) +- [clearContractStorage](StateManagerInterface.md#clearcontractstorage) +- [commit](StateManagerInterface.md#commit) +- [deleteAccount](StateManagerInterface.md#deleteaccount) +- [getAccount](StateManagerInterface.md#getaccount) +- [getContractCode](StateManagerInterface.md#getcontractcode) +- [getContractStorage](StateManagerInterface.md#getcontractstorage) +- [getProof](StateManagerInterface.md#getproof) +- [getStateRoot](StateManagerInterface.md#getstateroot) +- [hasStateRoot](StateManagerInterface.md#hasstateroot) +- [modifyAccountFields](StateManagerInterface.md#modifyaccountfields) +- [putAccount](StateManagerInterface.md#putaccount) +- [putContractCode](StateManagerInterface.md#putcontractcode) +- [putContractStorage](StateManagerInterface.md#putcontractstorage) +- [revert](StateManagerInterface.md#revert) +- [setStateRoot](StateManagerInterface.md#setstateroot) +- [shallowCopy](StateManagerInterface.md#shallowcopy) + +## Methods + +### checkpoint + +▸ **checkpoint**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L51) + +___ + +### clearContractStorage + +▸ **clearContractStorage**(`address`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:50](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L50) + +___ + +### commit + +▸ **commit**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:52](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L52) + +___ + +### deleteAccount + +▸ **deleteAccount**(`address`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:44](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L44) + +___ + +### getAccount + +▸ **getAccount**(`address`): `Promise`<`undefined` \| `Account`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`undefined` \| `Account`\> + +#### Defined in + +[interfaces.ts:42](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L42) + +___ + +### getContractCode + +▸ **getContractCode**(`address`): `Promise`<`Uint8Array`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Defined in + +[interfaces.ts:47](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L47) + +___ + +### getContractStorage + +▸ **getContractStorage**(`address`, `key`): `Promise`<`Uint8Array`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `key` | `Uint8Array` | + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Defined in + +[interfaces.ts:48](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L48) + +___ + +### getProof + +▸ `Optional` **getProof**(`address`, `storageSlots`): `Promise`<[`Proof`](../README.md#proof)\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `storageSlots` | `Uint8Array`[] | + +#### Returns + +`Promise`<[`Proof`](../README.md#proof)\> + +#### Defined in + +[interfaces.ts:56](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L56) + +___ + +### getStateRoot + +▸ **getStateRoot**(): `Promise`<`Uint8Array`\> + +#### Returns + +`Promise`<`Uint8Array`\> + +#### Defined in + +[interfaces.ts:54](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L54) + +___ + +### hasStateRoot + +▸ **hasStateRoot**(`root`): `Promise`<`boolean`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `root` | `Uint8Array` | + +#### Returns + +`Promise`<`boolean`\> + +#### Defined in + +[interfaces.ts:57](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L57) + +___ + +### modifyAccountFields + +▸ **modifyAccountFields**(`address`, `accountFields`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `accountFields` | `Partial`<`Pick`<`Account`, ``"nonce"`` \| ``"balance"`` \| ``"storageRoot"`` \| ``"codeHash"``\>\> | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:45](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L45) + +___ + +### putAccount + +▸ **putAccount**(`address`, `account?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `account?` | `Account` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:43](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L43) + +___ + +### putContractCode + +▸ **putContractCode**(`address`, `value`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `value` | `Uint8Array` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:46](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L46) + +___ + +### putContractStorage + +▸ **putContractStorage**(`address`, `key`, `value`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `address` | `Address` | +| `key` | `Uint8Array` | +| `value` | `Uint8Array` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:49](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L49) + +___ + +### revert + +▸ **revert**(): `Promise`<`void`\> + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L53) + +___ + +### setStateRoot + +▸ **setStateRoot**(`stateRoot`, `clearCache?`): `Promise`<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `stateRoot` | `Uint8Array` | +| `clearCache?` | `boolean` | + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[interfaces.ts:55](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L55) + +___ + +### shallowCopy + +▸ **shallowCopy**(): [`StateManagerInterface`](StateManagerInterface.md) + +#### Returns + +[`StateManagerInterface`](StateManagerInterface.md) + +#### Defined in + +[interfaces.ts:58](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/src/interfaces.ts#L58) diff --git a/packages/common/docs/interfaces/StorageDump.md b/packages/common/docs/interfaces/StorageDump.md new file mode 100644 index 0000000000..bf60737548 --- /dev/null +++ b/packages/common/docs/interfaces/StorageDump.md @@ -0,0 +1,7 @@ +[@ethereumjs/common](../README.md) / StorageDump + +# Interface: StorageDump + +## Indexable + +▪ [key: `string`]: `string` From d49fde334d33ae8b39c27b10bc278681cd3d5bb2 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 11:39:58 +0200 Subject: [PATCH 36/38] Rebuild Ethash docs --- packages/ethash/docs/README.md | 17 ++----- packages/ethash/docs/classes/Ethash.md | 70 +++++++++++++------------- packages/ethash/docs/classes/Miner.md | 10 ++-- 3 files changed, 43 insertions(+), 54 deletions(-) diff --git a/packages/ethash/docs/README.md b/packages/ethash/docs/README.md index c3a7a91830..7b580a06d0 100644 --- a/packages/ethash/docs/README.md +++ b/packages/ethash/docs/README.md @@ -11,21 +11,10 @@ ### Type Aliases -- [EthashCacheDB](README.md#ethashcachedb) - [Solution](README.md#solution) ## Type Aliases -### EthashCacheDB - -Ƭ **EthashCacheDB**: `AbstractLevel`<`string` \| `Buffer` \| `Uint8Array`, `string` \| `Buffer`, { `cache`: `Buffer`[] ; `cacheSize`: `number` ; `fullSize`: `number` ; `seed`: `Buffer` }\> - -#### Defined in - -[index.ts:149](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L149) - -___ - ### Solution Ƭ **Solution**: `Object` @@ -34,9 +23,9 @@ ___ | Name | Type | | :------ | :------ | -| `mixHash` | `Buffer` | -| `nonce` | `Buffer` | +| `mixHash` | `Uint8Array` | +| `nonce` | `Uint8Array` | #### Defined in -[index.ts:31](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L31) +[index.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L41) diff --git a/packages/ethash/docs/classes/Ethash.md b/packages/ethash/docs/classes/Ethash.md index e95cf06294..7a9ffc0e09 100644 --- a/packages/ethash/docs/classes/Ethash.md +++ b/packages/ethash/docs/classes/Ethash.md @@ -40,31 +40,31 @@ | Name | Type | | :------ | :------ | -| `cacheDB?` | [`EthashCacheDB`](../README.md#ethashcachedb) | +| `cacheDB?` | `DB`<`number`, `DBObject`\> | #### Defined in -[index.ts:169](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L169) +[index.ts:168](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L168) ## Properties ### cache -• **cache**: `Buffer`[] +• **cache**: `Uint8Array`[] #### Defined in -[index.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L163) +[index.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L162) ___ ### cacheDB -• `Optional` **cacheDB**: [`EthashCacheDB`](../README.md#ethashcachedb) +• `Optional` **cacheDB**: `DB`<`number`, `DBObject`\> #### Defined in -[index.ts:162](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L162) +[index.ts:161](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L161) ___ @@ -74,7 +74,7 @@ ___ #### Defined in -[index.ts:166](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L166) +[index.ts:165](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L165) ___ @@ -84,7 +84,7 @@ ___ #### Defined in -[index.ts:161](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L161) +[index.ts:160](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L160) ___ @@ -94,7 +94,7 @@ ___ #### Defined in -[index.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L164) +[index.ts:163](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L163) ___ @@ -104,17 +104,17 @@ ___ #### Defined in -[index.ts:165](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L165) +[index.ts:164](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L164) ___ ### seed -• `Optional` **seed**: `Buffer` +• `Optional` **seed**: `Uint8Array` #### Defined in -[index.ts:167](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L167) +[index.ts:166](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L166) ## Methods @@ -134,27 +134,27 @@ ___ #### Defined in -[index.ts:341](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L341) +[index.ts:368](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L368) ___ ### cacheHash -▸ **cacheHash**(): `Buffer` +▸ **cacheHash**(): `Uint8Array` #### Returns -`Buffer` +`Uint8Array` #### Defined in -[index.ts:250](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L250) +[index.ts:256](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L256) ___ ### calcDatasetItem -▸ **calcDatasetItem**(`i`): `Buffer` +▸ **calcDatasetItem**(`i`): `Uint8Array` #### Parameters @@ -164,11 +164,11 @@ ___ #### Returns -`Buffer` +`Uint8Array` #### Defined in -[index.ts:198](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L198) +[index.ts:196](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L196) ___ @@ -193,27 +193,27 @@ To mine a `BlockHeader` or `Block`, use the one-liner `await ethash.getMiner(blo #### Defined in -[index.ts:337](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L337) +[index.ts:364](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L364) ___ ### headerHash -▸ **headerHash**(`rawHeader`): `Buffer` +▸ **headerHash**(`rawHeader`): `Uint8Array` #### Parameters | Name | Type | | :------ | :------ | -| `rawHeader` | `Buffer`[] | +| `rawHeader` | `Uint8Array`[] | #### Returns -`Buffer` +`Uint8Array` #### Defined in -[index.ts:254](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L254) +[index.ts:271](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L271) ___ @@ -235,28 +235,28 @@ Loads the seed and cache given a block number. #### Defined in -[index.ts:261](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L261) +[index.ts:278](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L278) ___ ### mkcache -▸ **mkcache**(`cacheSize`, `seed`): `Buffer`[] +▸ **mkcache**(`cacheSize`, `seed`): `Uint8Array`[] #### Parameters | Name | Type | | :------ | :------ | | `cacheSize` | `number` | -| `seed` | `Buffer` | +| `seed` | `Uint8Array` | #### Returns -`Buffer`[] +`Uint8Array`[] #### Defined in -[index.ts:177](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L177) +[index.ts:176](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L176) ___ @@ -268,8 +268,8 @@ ___ | Name | Type | | :------ | :------ | -| `val` | `Buffer` | -| `nonce` | `Buffer` | +| `val` | `Uint8Array` | +| `nonce` | `Uint8Array` | | `fullSize?` | `number` | #### Returns @@ -278,12 +278,12 @@ ___ | Name | Type | | :------ | :------ | -| `hash` | `Buffer` | -| `mix` | `Buffer` | +| `hash` | `Uint8Array` | +| `mix` | `Uint8Array` | #### Defined in -[index.ts:211](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L211) +[index.ts:210](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L210) ___ @@ -303,4 +303,4 @@ ___ #### Defined in -[index.ts:352](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L352) +[index.ts:378](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L378) diff --git a/packages/ethash/docs/classes/Miner.md b/packages/ethash/docs/classes/Miner.md index 4f09fc1ce5..924d1420a2 100644 --- a/packages/ethash/docs/classes/Miner.md +++ b/packages/ethash/docs/classes/Miner.md @@ -35,7 +35,7 @@ Create a Miner object #### Defined in -[index.ts:53](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L53) +[index.ts:63](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L63) ## Properties @@ -45,7 +45,7 @@ Create a Miner object #### Defined in -[index.ts:41](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L41) +[index.ts:51](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L51) ## Methods @@ -69,7 +69,7 @@ Iterate `iterations` times over nonces to find a valid PoW. Caches solution if o #### Defined in -[index.ts:103](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L103) +[index.ts:113](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L113) ___ @@ -94,7 +94,7 @@ Iterate `iterations` time over nonces, returns a `BlockHeader` or `Block` if a s #### Defined in -[index.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L80) +[index.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L90) ___ @@ -110,4 +110,4 @@ Stop the miner on the next iteration #### Defined in -[index.ts:70](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L70) +[index.ts:80](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/ethash/src/index.ts#L80) From bc4f842566582f5a35ed2a124eb53fd16be11acf Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 12:17:32 +0200 Subject: [PATCH 37/38] Small updates and corrections --- packages/block/CHANGELOG.md | 2 +- packages/blockchain/CHANGELOG.md | 2 +- packages/common/CHANGELOG.md | 2 +- packages/devp2p/CHANGELOG.md | 2 +- packages/devp2p/README.md | 2 +- packages/ethash/CHANGELOG.md | 2 +- packages/evm/CHANGELOG.md | 2 +- packages/statemanager/CHANGELOG.md | 2 +- packages/trie/CHANGELOG.md | 2 +- packages/tx/CHANGELOG.md | 2 +- packages/util/CHANGELOG.md | 2 +- packages/vm/CHANGELOG.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/block/CHANGELOG.md b/packages/block/CHANGELOG.md index bac18b78ad..a62365c9c8 100644 --- a/packages/block/CHANGELOG.md +++ b/packages/block/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/blockchain/CHANGELOG.md b/packages/blockchain/CHANGELOG.md index b50ef208c7..6b2dbd9874 100644 --- a/packages/blockchain/CHANGELOG.md +++ b/packages/blockchain/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index b5495ad700..c03915c59f 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/devp2p/CHANGELOG.md b/packages/devp2p/CHANGELOG.md index 7ffb839207..46c5e95b0b 100644 --- a/packages/devp2p/CHANGELOG.md +++ b/packages/devp2p/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/devp2p/README.md b/packages/devp2p/README.md index 3b7ab7acca..7ebfbf233c 100644 --- a/packages/devp2p/README.md +++ b/packages/devp2p/README.md @@ -14,7 +14,7 @@ This library bundles different components for lower-level peer-to-peer connectio - Distributed Peer Table (DPT) / v4 Node Discovery / DNS Discovery - RLPx Transport Protocol -- Ethereum Wire Protocol (ETH/66) +- Ethereum Wire Protocol (ETH/68) - Light Ethereum Subprotocol (LES/4) ## Usage diff --git a/packages/ethash/CHANGELOG.md b/packages/ethash/CHANGELOG.md index 4af6c751f0..2a5180fa09 100644 --- a/packages/ethash/CHANGELOG.md +++ b/packages/ethash/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/evm/CHANGELOG.md b/packages/evm/CHANGELOG.md index 352e32c3aa..378a82e441 100644 --- a/packages/evm/CHANGELOG.md +++ b/packages/evm/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/statemanager/CHANGELOG.md b/packages/statemanager/CHANGELOG.md index 645820bd12..2858e36efa 100644 --- a/packages/statemanager/CHANGELOG.md +++ b/packages/statemanager/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/trie/CHANGELOG.md b/packages/trie/CHANGELOG.md index 10bc8717da..027f2549af 100644 --- a/packages/trie/CHANGELOG.md +++ b/packages/trie/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/tx/CHANGELOG.md b/packages/tx/CHANGELOG.md index c876a4dac7..fb64ac916b 100644 --- a/packages/tx/CHANGELOG.md +++ b/packages/tx/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/util/CHANGELOG.md b/packages/util/CHANGELOG.md index 3cc2b8f021..320315beb9 100644 --- a/packages/util/CHANGELOG.md +++ b/packages/util/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index e2eaf45376..e6d9bbd6bb 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -22,7 +22,7 @@ WE HAVE ELIMINATED ALL OF THEM. The largest two undertakings: First: we have rewritten all (half) of our API and elimited the usage of Node.js specific `Buffer` all over the place and have rewritten with using `Uint8Array` byte objects. Second: we went throuh our whole stack, rewrote imports and exports, replaced and updated dependencies all over and are now able to provide a hybrid CommonJS/ESM build, for all libraries. Both of these things are huge. -Together with some few other modifications this now allows to run each (maybe adding an asterisk \* for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. +Together with some few other modifications this now allows to run each (maybe adding an asterisk for client and devp2p) of our libraries directly in the browser - more or less without any modifications - see the `examples/browser.html` file in each package folder for an easy to set up example. This is generally a big thing for Ethereum cause this brings the full Ethereum Execution Layer (EL) protocol stack to the browser in an easy accessible way for developers, for the first time ever! 🎉 From 708c3915e1eec809f9e30565d892eccd0d948728 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Mon, 17 Jul 2023 12:24:09 +0200 Subject: [PATCH 38/38] More small corrections --- packages/common/README.md | 10 +++++----- packages/evm/README.md | 10 +++++----- packages/evm/src/types.ts | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/common/README.md b/packages/common/README.md index f75193a9dd..401f21d1eb 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -269,7 +269,7 @@ library supported: - `london` (`Hardfork.London`) (since `v2.4.0`) - `merge` (`Hardfork.Merge`) (`DEFAULT_HARDFORK`) (since `v2.5.0`) - `shanghai` (`Hardfork.Shanghai`) (since `v3.1.0`) -- `cancun` (`Hardfork.Cancun`) (since `v4.0.0`) (not yet EIP-complete) +- `cancun` (`Hardfork.Cancun`) (since `v4.0.0`) ### Future Hardforks @@ -304,7 +304,7 @@ const c = new Common({ chain: Chain.Mainnet, eips: [4844] }) The following EIPs are currently supported: -- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (`experimental`) +- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (Cancun) - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain - [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines for the EVM (`outdated`) - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (removed in v4.0.0, see latest v3 release) @@ -326,11 +326,11 @@ The following EIPs are currently supported: - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai) - [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022 - [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) -- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM +- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM (Cancun) - [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun) (`experimental`) - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai) -- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction -- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction +- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction (Cancun) +- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction (Cancun) ### Bootstrap Nodes diff --git a/packages/evm/README.md b/packages/evm/README.md index ce84e83d7e..53a750ce2f 100644 --- a/packages/evm/README.md +++ b/packages/evm/README.md @@ -179,7 +179,7 @@ Currently the following hardfork rules are supported: - `arrowGlacier` (only `mainnet`) (`v5.6.0`+) - `merge` - `shanghai` (`v2.0.0`+) -- `cancun` (isolated EIPs, see EIP section below) (`v2.0.0`+) +- `cancun` (`v2.0.0`+) Default: `shanghai` (taken from `Common.DEFAULT_HARDFORK`) @@ -201,7 +201,7 @@ const vm = new VM({ common }) Currently supported EIPs: -- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (`experimental`) +- [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (Cancun) - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain - [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines for the EVM (`outdated`) - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (removed in v4.0.0, see latest v3 release) @@ -223,11 +223,11 @@ Currently supported EIPs: - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai) - [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022 - [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) -- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM +- [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM (Cancun) - [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun) (`experimental`) - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai) -- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction -- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction +- [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction (Cancun) +- [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction (Cancun) ### EIP-4844 Shard Blob Transactions Support diff --git a/packages/evm/src/types.ts b/packages/evm/src/types.ts index 3c46983550..ced5e363c6 100644 --- a/packages/evm/src/types.ts +++ b/packages/evm/src/types.ts @@ -167,7 +167,7 @@ export interface EVMOpts { * * ### Supported EIPs * - * - [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (`experimental`) + * - [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (Cancun) * - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain * - [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines for the EVM (`outdated`) * - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (removed in v4.0.0, see latest v3 release) @@ -189,11 +189,11 @@ export interface EVMOpts { * - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai) * - [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022 * - [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) - * - [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM + * - [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM (Cancun) * - [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun) (`experimental`) * - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai) - * - [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction - * - [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction + * - [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction (Cancun) + * - [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction (Cancun) * * *Annotations:* *