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
in the wild RPC providers (some) are returning account 'rentEpoch' as 18446744073709552000
there are multiple bug reports on various clients where deserialization is broken but the client libs switched to a big int to accommodate this
the solana-client crate can't parse this value currently as it exceeds u64.
invalid type: floating point 1.8446744073709552e19, expected u64
NB: despite the error message this is nothing to do with a float, serde_json overflows u64 and has to use f64 to print something.
@jordy25519 can you help me reproduce this? The Ore issue doesn't show a pubkey, and for the Solana-Go one, I'm able to use getAccountInfo from the terminal with curl and see the proper u64::MAX value in the response.
How can I find an account who will give me the response you shared here?
I can reproduce only with a getblock.io endpoint (but I don't know if its limited to that provider or not).
it is not consistent or tied to a specific account but can happen after a few repeated queries (which I assume is due to load balancing).
the apiVersion field of the response in my case shows: "apiVersion":"1.18.22"
Problem
in the wild RPC providers (some) are returning account 'rentEpoch' as
18446744073709552000
there are multiple bug reports on various clients where deserialization is broken but the client libs switched to a big int to accommodate this
the solana-client crate can't parse this value currently as it exceeds u64.
NB: despite the error message this is nothing to do with a float, serde_json overflows u64 and has to use f64 to print something.
example issues caused by this:
go client issue: gagliardetto/solana-go#172 (solved with BigInt)
rust client issue:: regolith-labs/ore#26 (unsolved)
Proposed Solution
Make it clear for solana protocol that maximum rent epoch should never be serialized as anything other than
18446744073709551615
otherwise accept the situation, then solana-client rpc needs special case deserialization to handle the above value
update example of raw value from RPC provider with curl:
The text was updated successfully, but these errors were encountered: