Comments (8)
@shrpne do you have a script or repo to reproduce? using your code snippet works for me and I don't run into the error, it returns the publicKey fine for me.
from ethereumjs-util.
You can try it on my project. Try to run this test directly https://github.com/MinterTeam/minterjs-util/blob/ethereum-7/test/public.test.js#L13 or run npm run jest
If it is not suitable, then I can try to make a minimal test case later.
But I still don't understand, how such code can run without problems:
const privateToPublic = function(privateKey: Buffer): Buffer {
assertIsBuffer(privateKey)
publicKeyCreate(privateKey, false)
}
function publicKeyCreate (seckey, compressed = true, output) {
isUint8Array('private key', seckey, 32)
/* ... */
},
Because privateKey
can't be a Buffer
and a Uint8Array
at the same time.
from ethereumjs-util.
@shrpne a Node.js Buffer
is a special type of Uint8Array
and actually inherits from the Uint8Array
class, see e.g. this explanation.
You can test this e.g. with the following code snippet in ts-node
:
> let t = Buffer.alloc(0)
undefined
> t
<Buffer >
> Buffer.isBuffer(t)
true
> t instanceof Uint8Array
true
This is also the code executed in the assertions from the function calls in your example above.
from ethereumjs-util.
Thank you for clarification
Looks like it is an issue with jest-environment-jsdom@26
, which is a part of the latest jest
jestjs/jest#7780 (comment)
from ethereumjs-util.
Ok, will close here.
from ethereumjs-util.
@holgerd77 could this be Buffer.isBuffer(buf)
instead of an instanceof
check, for duck typing?
from ethereumjs-util.
i worked around this by adding jest-environment-jsdom@25
as a dev dep
from ethereumjs-util.
@kumavis did a bit of a first read on duck typing - e.g. https://realpython.com/lessons/duck-typing/ - but have no great experience with the concept. Please just open a new issue if you think this is worth a change to make (everyone else of course as well).
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
- Buffer error with keccak256 related to abi.encodePacked HOT 8
- Crashes on node:12-alpine HOT 3
- [bug] hash.ts not work on alpine linux image HOT 2
- BN re-export failure HOT 1
- 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.