multiformats / js-cid

CID implementation in JavaScript
MIT License
97 stars 39 forks source link

Buffer instead of Uint8Array #126

Closed xmaysonnave closed 4 years ago

xmaysonnave commented 4 years ago

I lately upgrade js-cid from 0.8.3 to 1.0.0 who is a major upgarde as Uint8Array are used instead of Buffer.

However it appears that js-multibase do not always return Uint8Arrays. I've a set of tests who crashed immediately when upgraded

ipfs cidv0 to ipfs cidv1 (base58btc, dag-pb) and vice versa ipns cidv0 to ipns cidv1 (base58btc, dag-pb) to (base32, libp2p-key) and vice versa ipns cidv1 to ipns cidv1 (base32, libp2p-key) to (base36, lip2p-key) and vice versa

According to : https://github.com/multiformats/js-multibase/blob/master/src/constants.js

base58btc (dag-pb) who is used in IPFS cidv0 returns a Buffer base36 (libp2p-key) who is used in IPNS cidv1 returns a Buffer

Thanks

vmx commented 4 years ago

There are still issues that should get fixed with https://github.com/multiformats/js-multibase/pull/64.

In the meantime the good news are, that Node.js Buffer is also a Uint8Array. So if you your code works with Uint8Arrays, it should automatically work even if a Node.js Buffer is returned.

xmaysonnave commented 4 years ago

I'm glad that you are aware of this issue. The proposed PR seems to address the problem. Thanks for the hint though.

jacobheun commented 4 years ago

multiformats/js-multibase#64 has been merged and released, can this be closed are does anything need to be updated here?

vmx commented 4 years ago

@jacobheun thanks for pinging, I've released 1.0.1 which should be fully Node.js Buffer free.