You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's definitely a problem, but it's in the try_decimals part, not the conversion of that to a bigint. The problem is that the graph expects erc20 contracts to follow the erc20 standard, which includes defining decimals as uint8. The challenge is this particular contract does not follow the erc20 standard; its Decimals doesn't return a uint8, but instead a bytes32.
So, the bytes32 (0x0000000000000000000000000000000000000000000000000000000067e53c31) overflows the toI32() in graph-ts (now graph-tooling), as it expects the first 4 bytes of the array to be the number, not the last 4 bytes.
There's a couple of issues going on here:
Decimals really shouldn't be converted using an int32; a negative decimal value is an unwanted result.
There should be a safety valve around getting the decimals in case of unexpected (ie non-uint8) values.
Hi there,
We are experiencing an overflow error across multiple chains. Here's an example for ethereum:
Here’s the transaction.
This seems to also affecting https://info.uniswap.org/
It could be caused by this change ac71c01
The text was updated successfully, but these errors were encountered: