use-ink / ink

Polkadot's ink! to write smart contracts.
https://use.ink
Apache License 2.0
1.35k stars 428 forks source link

Serialize storage keys in metadata as SCALE encoded #2048

Closed ascjones closed 10 months ago

ascjones commented 10 months ago

Storage keys are SCALE encoded for storage access, so the layout keys in the metadata should also be serialized in the same way. At the moment they are BE encoded.

:warning: BREAKING metadata change :warning:

Client tools which use the layout keys will need to adapt to this change by decoding from LE bytes instead of BE bytes.

github-actions[bot] commented 10 months ago

🦑 📈 ink! Example Contracts ‒ Changes Report 📉 🦑

These are the results when building the integration-tests/* contracts from this branch with cargo-contract and comparing them to ink! master:

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
basic-contract-caller 3.207 3.207 0 0 :heavy_minus_sign:
basic-contract-caller/other-contract 1.581 1.581 0 0 :heavy_minus_sign:
call-builder-return-value 8.904 8.904 0 0 :heavy_minus_sign:
call-runtime 2.013 2.013 0 0 :heavy_minus_sign:
conditional-compilation 1.453 1.453 0 0 :heavy_minus_sign:
contract-storage 7.336 7.336 0 0 :heavy_minus_sign:
contract-terminate 1.336 1.336 0 0 :heavy_minus_sign:
contract-transfer 1.693 1.693 0 0 :heavy_minus_sign:
custom-allocator 7.652 7.652 0 0 :heavy_minus_sign:
dns 7.321 7.321 0 0 :heavy_minus_sign:
e2e-call-runtime 1.302 1.302 0 0 :heavy_minus_sign:
e2e-runtime-only-backend 1.879 1.879 0 0 :heavy_minus_sign:
erc1155 14.123 14.129 0.006 0.0424839 :chart_with_upwards_trend:
erc20 6.918 6.918 0 0 :heavy_minus_sign:
erc721 9.816 9.816 0 0 :heavy_minus_sign:
events 5.006 5.006 0 0 :heavy_minus_sign:
flipper 1.637 1.637 0 0 :heavy_minus_sign:
incrementer 1.504 1.504 0 0 :heavy_minus_sign:
lang-err-integration-tests/call-builder-delegate 2.561 2.561 0 0 :heavy_minus_sign:
lang-err-integration-tests/call-builder 5.087 5.087 0 0 :heavy_minus_sign:
lang-err-integration-tests/constructors-return-value 1.987 1.987 0 0 :heavy_minus_sign:
lang-err-integration-tests/contract-ref 4.568 4.568 0 0 :heavy_minus_sign:
lang-err-integration-tests/integration-flipper 1.815 1.815 0 0 :heavy_minus_sign:
lazyvec-integration-test 4.553 4.553 0 0 :heavy_minus_sign:
mapping-integration-tests 7.919 7.919 0 0 :heavy_minus_sign:
mother 12.756 12.756 0 0 :heavy_minus_sign:
multi-contract-caller 6.155 6.155 0 0 :heavy_minus_sign:
multi-contract-caller/accumulator 1.378 1.378 0 0 :heavy_minus_sign:
multi-contract-caller/adder 1.908 1.908 0 0 :heavy_minus_sign:
multi-contract-caller/subber 1.928 1.928 0 0 :heavy_minus_sign:
multisig 21.621 21.621 0 0 :heavy_minus_sign:
payment-channel 5.653 5.653 0 0 :heavy_minus_sign:
sr25519-verification 1.148 1.148 0 0 :heavy_minus_sign:
static-buffer 1.649 1.649 0 0 :heavy_minus_sign:
trait-dyn-cross-contract-calls 2.706 2.706 0 0 :heavy_minus_sign:
trait-dyn-cross-contract-calls/contracts/incrementer 1.549 1.549 0 0 :heavy_minus_sign:
trait-erc20 7.294 7.294 0 0 :heavy_minus_sign:
trait-flipper 1.453 1.453 0 0 :heavy_minus_sign:
trait-incrementer 1.614 1.614 0 0 :heavy_minus_sign:
upgradeable-contracts/delegator 3.152 3.152 0 0 :heavy_minus_sign:
upgradeable-contracts/delegator/delegatee 1.613 1.613 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash 1.747 1.747 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash/updated-incrementer 1.726 1.726 0 0 :heavy_minus_sign:
wildcard-selector 2.852 2.852 0 0 :heavy_minus_sign:

Link to the run | Last update: Mon Jan 8 15:24:19 CET 2024