Open jasonpaulos opened 1 year ago
https://github.com/algorand/js-algorand-sdk/issues/742 doesn't use buffers
Some things will still require Buffer usage in node (like base64 encoding), but we can investigate ways to have an alternative code path for browsers.
@jasonpaulos why does base64 encoding require it?
@algoanne require is a bit of a strong word, but using Buffer
for base64 encoding is likely the easiest/most efficient option for node, so that's why I suggested continuing to use it there. It is however not a strict requirement.
Summary
We use the npm buffer package to allow our library to use node's
Buffer
class in the browser.I think we should stop doing this for a few reasons:
Buffer
usage seems to be encoding and decoding base64. We should be able to do this in the browser withoutBuffer
.Suggestions
Instead of relying on a browser
Buffer
implementation, we could make better use ofUint8Array
andDataview
, which are supported in both node and browser. Some things will still requireBuffer
usage in node (like base64 encoding), but we can investigate ways to have an alternative code path for browsers.There are a few public APIs which reference
Buffer
, so changing these would likely have to wait for a major release of the library.