@ethereumjs/trie v6.1.0
Extended EIP-1186 Proof Functionality
This release complements on EIP-1186 proof functionality, see PR #2949 and #3267.
A new static Trie.createFromProof()
constructor now allows for an easier instantiation of a trie given an EIP-1186 conformant proof, which can be created from an existing trie using the trie.createProof()
method.
There are also new static methods for the verification of proofs, namely Trie.verifyProof()
to verify a proof for a single key as well as Trie.verifyRangeProof()
for a range of keys.
Additionally all proof related functionality is now better documented and there are README examples allowing for an easier entry to the topic.
Also note that along with this release round there is additional higher level proof functionality available shipped within the @ethereumjs/statemanager
package.
WASM Crypto Support
With this release round there is a new way to replace the native JS crypto primitives used within the EthereumJS ecosystem by custom/other implementations in a controlled fashion, see PR #3192.
This can e.g. be used to replace time-consuming primitives like the commonly used keccak256
hash function with a more performant WASM based implementation, see @ethereumjs/common
README for some detailed guidance on how to use.
Self-Contained (and Working 🙂) README Examples
All code examples in the EthereumJS
monorepo library README files are now self-contained and can be executed "out of the box" by simply copying them over and running "as is", see tracking issue #3234 for an overview. Additionally all examples can now be found in their respective library examples folder (in fact the README examples are now auto-embedded from over there). As a nice side effect, all examples are now run in CI on new PRs and so do not risk getting outdated or broken over time.