storage keys and values should be big endian (#277)

Storage keys and values are big endian. Keeping them LE was a pre-mature
optimization because for the contract itself it this is a no-op and thus
not observable. However we should consider the storage layout as part of
the contract ABI. The endianness of transient storage values are still
kept as-is.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
This commit is contained in:
xermicus
2025-04-07 10:34:44 +02:00
committed by GitHub
parent 80f94b5c76
commit 7d8fa75a0f
8 changed files with 196 additions and 88 deletions
+2 -6
View File
@@ -106,14 +106,10 @@ impl SpecsAction {
};
for (key, expected) in storage {
let mut key = **key;
let mut expected = **expected;
key.reverse();
expected.reverse();
actions.push(Self::VerifyStorage {
contract: account_pvm.clone(),
key,
expected,
key: **key,
expected: **expected,
});
}