So the Algorand docs say that ASA IDs are unsigned 64-bit integers. But if I try to pass a BigInt
to the makeAssetTransferTxnWithSuggestedParamsFromObject()
function, I get the error “Asset index must be a positive number and smaller than 2^53-1”. If I just turn it into an Int
instead, everything is fine.
The asset IDs returned from something like the Algoexplorer Indexer appear to be integers as well:
{
"asset": {
"created-at-round": 17183022,
"deleted": false,
"index": 393730434, // <------
"params": { ... }
},
"current-round": 18381128
}
When doing something like accountInformation()
for a given wallet, I’ve got setIntDecoding(algosdk.IntDecoding.BIGINT)
chained on there but everything is still returning an Int
. Confirming with typeof accountInfo.assets[0]['asset-id']
, for example, returns number
.
Is this not a problem if an ASA ID is ever larger than 2.1 billion? Are they just assigned in ascending numerical order, in which case it won’t be a problem for a (little) while?
I’m jumping through all kinds of hoops to get GraphQL to try and support BigInt
, but if it turns out they’re all just fine as Int
's then I’ll undo all that junk!
Thanks for any help!