encodeUint64(asset_id) doesn't work - General - Algorand

encodeUint64(asset_id) doesn’t work

post by salman.haider on Dec 21, 2022

I’m trying to push the assetID to app.Args by encoding it to uint64 but its giving error

console.log(algosdk.encodeUint64(12345))

It was working fine recently but now it giving issues.


uint64.ts:17 Uncaught TypeError: buf.writeBigUInt64BE is not a function
    at Module.encodeUint64 (uint64.ts:17:1)
    at App.tsx:16:1
    at invokePassiveEffectCreate (react-dom.development.js:23487:1)
    at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
    at flushPassiveEffectsImpl (react-dom.development.js:23574:1)
    at unstable_runWithPriority (scheduler.development.js:468:1)
    at runWithPriority$1 (react-dom.development.js:11276:1)
    at flushPassiveEffects (react-dom.development.js:23447:1)
    at react-dom.development.js:23324:1
    at workLoop (scheduler.development.js:417:1)
    at flushWork (scheduler.development.js:390:1)
    at MessagePort.performWorkUntilDeadline (scheduler.development.js:157:1)

post by scholtz on Dec 21, 2022

i am using algosdk 1.24.1 without any issue…

appArgs.push(algosdk.encodeUint64(123)); works for me well…

You probably installed some dependency which downgraded/changed buffer library?

post by salman.haider on Dec 21, 2022

I did use this version just 2 minutes ago and still got same error

post by fabrice on Dec 21, 2022

Which version of node JS and algosdk are you using?

Are you using browserify or similar?

You may need to upgrade some of those.

post by salman.haider on Dec 21, 2022

node 14.17.0 and algosdk 1.24.1

post by scholtz on Dec 21, 2022

i am using node v16.18.1 …

post by fabrice on Dec 21, 2022

It looks like node v14.10 or after should work as this function was added in v14.10:

https://nodejs.org/api/buffer.html#bufwritebiguint64bevalue-offset

So my guess is that you’re using a framework/toolchain that is somewhat not providing this function.

It looks you are using react, but which toolchain are you using:

create react app, next.js, gatsby, vite

?

Which version?

Maybe posting package.json may help.

post by AnishRane on Jan 5, 2023

@fabrice I am also facing same issue with algosdk 1.24.1 and node version 18.12.1, getting error on algosdk.encodeUint64() method

post by scholtz on Jan 5, 2023

i suggest to put this into your test cases


it("encodeUint64", function () {
    expect(Buffer.from(algosdk.encodeUint64(123)).toString("hex")).toBe("000000000000007b");
    expect(Buffer.from(algosdk.encodeUint64(123123123123123)).toString("hex")).toBe("00006ffad60473b3");
  });

if it fails, there is issue with algosdk or some dependencies… if it goes through the issue is somewhere else

post by fabrice on Jan 5, 2023

Can you show the exact error?

Are you using a framework such as create-react-app, next.js, gatsby, vite…?

Can you try to add the test suggested by @scholtz above?

Can you post your package.json (e.g., in Github gist)?

Can you create a fresh project with only algosdk and an index.js file that just test encodeUint64 and nothing else?