Files
pezkuwi-subxt/substrate/frame
Piet 32a974088c TryDecodeEntireState check for storage types and pallets (#1805)
### This PR is a port of this [PR for
substrate](https://github.com/paritytech/substrate/pull/13013) by
@kianenigma

Add infrastructure needed to have a Pallet::decode_entire_state(), which
makes sure all "typed" storage items defined in the pallet are
decode-able.

This is not enforced in any way at the moment. Teams who wish to
integrate/use this in the try-runtime feature flag should add
frame_support::storage::migration::EnsureStateDecodes as the LAST ITEM
of the runtime's custom migrations, and pass it to frame-executive. This
will make it usable in try-runtime on-runtime-upgrade.

This now catches cases like
https://github.com/paritytech/polkadot-sdk/pull/1969:
```pre
ERROR runtime::executive] failed to decode the value at key: Failed to decode value at key: 0x94eadf0156a8ad5156507773d0471e4ab8ebad86f546c7e0b135a4212aace339. Storage info StorageInfo { pallet_name: Ok("ParaScheduler"), storage_name: Ok("AvailabilityCores"), prefix: Err(Utf8Error { valid_up_to: 0, error_len: Some(1) }), max_values: Some(1), max_size: None }. Raw value: Some("0x0c010101010101")
```

... or:

![image](https://github.com/paritytech/polkadot-sdk/assets/10380170/73052d4f-4da5-4b21-a8dd-b17004e5965e)

Closes #241

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
2023-11-06 19:40:14 +01:00
..
2023-11-06 12:54:37 +00:00
2023-10-26 21:55:49 +02:00
2023-11-05 23:35:40 +01:00
2023-10-24 17:59:38 +02:00
2023-10-24 17:59:38 +02:00
2023-10-24 17:59:38 +02:00
2023-10-27 21:43:51 +02:00
2023-10-24 17:59:38 +02:00
2023-10-27 11:38:16 +02:00
2023-10-24 17:59:38 +02:00
2023-10-27 21:43:51 +02:00
2023-10-27 21:43:51 +02:00
2023-08-29 13:39:41 +02:00
2023-11-06 14:44:53 +02:00
2023-10-27 11:38:16 +02:00
2023-09-04 12:02:32 +03:00

FRAME

The FRAME development environment provides modules (called "pallets") and support libraries that you can use, modify, and extend to build the runtime logic to suit the needs of your blockchain.

Documentation

https://docs.substrate.io/reference/frame-pallets/

Issues

https://github.com/orgs/paritytech/projects/40