Comments (8)
This issue caught my attention, as I thought that maybe the new keccack
version was broken. This is the first release with an N-API based dependency, so something may have been wrong.
The problem comes from using keccakFromString
here: https://github.com/naszam/oz-merkle-support/blob/master/test/merkleTree.js
That function is intended to hash utf8 encoded strings. What you want to do is transform hex encoded data into buffers, and then hash that. keccak(toBuffer(data))
would do it.
I tried this change in your repo and it fixed it.
from ethereumjs-util.
from ethereumjs-util.
hey @naszam, thanks for sharing. could you let us know exactly what error you are encountering, and a minimal case to reproduce the issue?
from ethereumjs-util.
@naszam Read the OZ thread and I see that the maintainer responding to your question says
I had to use the v6.2 release of ethereumjs-util rather than the v7 as I was getting errors that I didn’t explore
.. and then links to the release notes.
Do you have an example stack-trace for the error?
In v7, the methods are type-strict - it's possible you just need to input parameters with the correct data type for the method you're calling. For example, keccak256
now requires a buffer input by default. And there are convenience methods like keccakFromString
that will hash a string.
from ethereumjs-util.
This is a repo I've created to reproduce the issue:
https://github.com/naszam/oz-merkle-support
from ethereumjs-util.
- cloned https://github.com/naszam/oz-merkle-support
npm i
- launched ganache-cli separately
npx truffle test
Error: Could not find @openzeppelin/contracts/cryptography/MerkleProof.sol from any sources; imported from /Users/cgewecke/code/oz-merkle-support/contracts/MyContract.sol
at /usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-resolver/index.js:76:1
at /usr/local/lib/node_modules/truffle/build/webpack:/~/async/internal/onlyOnce.js:12:1
at next (/usr/local/lib/node_modules/truffle/build/webpack:/~/async/whilst.js:68:1)
at /usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-resolver/index.js:64:1
at /usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-resolver/fs.js:85:1
at /usr/local/lib/node_modules/truffle/build/webpack:/~/async/internal/once.js:12:1
at replenish (/usr/local/lib/node_modules/truffle/build/webpack:/~/async/internal/eachOfLimit.js:61:1)
at iterateeCallback (/usr/local/lib/node_modules/truffle/build/webpack:/~/async/internal/eachOfLimit.js:50:1)
at /usr/local/lib/node_modules/truffle/build/webpack:/~/async/internal/onlyOnce.js:12:1
at ReadFileContext.callback (/usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-resolver/fs.js:81:1)
at FSReqCallback.readFileAfterOpen [as oncomplete] (fs.js:256:13)
Would be helpful if you could show an error stack trace referencing ethereumjs-util in this issue and indicate which part of your reproduction case triggers it.
from ethereumjs-util.
Sorry OpenZeppelin wasn't included.
Just committed!
from ethereumjs-util.
Thanks @alcuadrado! 🙌
from ethereumjs-util.
Related Issues (20)
- Split tests from index.js into separate files HOT 3
- Update TypeDoc and typedoc-plugin-markdown dev dependencies
- Examples in README for different categories
- Add basic API tests for re-exports
- Browser compatible elliptic alternative to secp256k1 HOT 2
- [Util v7| Tracking Issue for BN.js v4 and v5 interoperability issues HOT 2
- Crashes on node:12-alpine HOT 3
- [bug] hash.ts not work on alpine linux image HOT 2
- BN re-export failure HOT 1
- Error: Expected private key to be an Uint8Array HOT 8
- Node crashes when require ethereumjs-util in worker threads HOT 5
- Extend Address class to handle BN HOT 7
- Cannot read property 'fromRpcSig' of undefined HOT 2
- Memory leak HOT 2
- How to use ecrecover? HOT 8
- bnToRlp: misleading name HOT 1
- Upgrade ethereumjs-config to v2, switch from Coveralls to CodeCov
- ethereumjs-util v8 Release Planning HOT 1
- housekeeping: remove use of deprecated assert methods HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ethereumjs-util.