-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
An entry in the Proxy.proxies storage map cannot be decoded #453
Comments
Kian also pointed me to https://github.com/paritytech/polkadot-sdk/pull/1805/files and https://paritytech.github.io/polkadot-sdk/master/asset_hub_westend_runtime/struct.DeleteUndecodableStorage.html, which may help. One thought in this case was that the storage entry in Proxy.proxies that fails does in fact decode without errors, but it leaves some undecoded bytes at the end that weren't decoded. If we have a CI check in place (@kianenigma was it this one?: https://github.com/polkadot-fellows/runtimes/blob/main/.github/workflows/check-migrations.yml#L88) to test that storage can be decoded, it'd be worth making sure that it is actually running and that it checks that all bytes are consumed during decoding. |
The relay decode checks are broken, i think because of nompools or something? runtimes/.github/workflows/check-migrations.yml Lines 64 to 65 in e6b9132
But this disables them for all pallets...
Yea i can fix this. PS: Huh, looks like we use |
Hello!
While working on decoding historic storage entries, I ran into an issue whereby the storage entry in
Proxy.Proxies
keyed by account ID (twox64_concated)0x0E6DE68B13B82479FBE988AB9ECB16BAD446B67B993CDD9198CD41C7C6259C49
and with value0x0898c8a3d01da9877b7b30877c717ae8f2a7e726cefa176c5dfcdcebc9b6a122230098c8a3d01da9877b7b30877c717ae8f2a7e726cefa176c5dfcdcebc9b6a1222304005109bd2e0000000000000000000000
fails to decode. it decodes OK in spec version 18, and starts failing to decode as of spec version 23 and until the present day by the looks of it.See polkadot-js/api#5974 for more details.
The value type for this map in spec version 18 is
(Vec<(T::AccountId, T::ProxyType)>, BalanceOf<T>)
.The value type as of spec version 23 is
(Vec<ProxyDefinition<T::AccountId, T::ProxyType, T::BlockNumber>>, BalanceOf<T>)
, whereProxyDefinition
is:In other words, the size of the value type grew by 4 bytes when this
delay: BlockNumber
field was added (and then the tuple turned to a struct).In my tests, the value of this field never changed when the type did, and so the value is unable to be decoded to this day.
Should a storage migration be applied to remove this entry from the map?
The text was updated successfully, but these errors were encountered: