Skip to content

Conversation

@davidsemakula
Copy link
Collaborator

@davidsemakula davidsemakula commented Oct 10, 2025

Summary

Closes #_

  • [n] y/n | Does it introduce breaking changes?
  • [n] y/n | Is it dependent on a specific version of cargo-contract or pallet-revive?

Description

  • Add non-allocating Solidity ABI encoding implementations for result, error data, event data and topics
  • More efficient topic bytes conversion when emitting events

Checklist before requesting a review

  • I have added an entry to CHANGELOG.md
  • I have commented on my code, particularly in hard-to-understand areas
  • I have added tests that prove my fix is effective or that my feature works
  • Any dependent changes have been merged and published in downstream modules

@github-actions
Copy link

github-actions bot commented Oct 10, 2025

🦑 📈 ink! Example Contracts ‒ Changes Report 📉 🦑

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

Show contract sizes: PR vs master

Using the ABI denoted in the contract manifest.

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 16.708 15.385 -1.323 -7% 📉
./integration-tests/internal/builtin-precompiles 4.533 4.533 0 0%
./integration-tests/internal/call-builder-return-value 8.391 8.391 0 0%
./integration-tests/internal/data-hostfns 1.111 1.111 0 0%
./integration-tests/internal/e2e-runtime-only-backend 2.3 2.3 0 0%
./integration-tests/internal/gas-hostfns 1.161 1.162 0.001 0% 📈
./integration-tests/internal/lang-err/call-builder 6.423 6.423 0 0%
./integration-tests/internal/lang-err/call-builder-delegate 3.09 3.09 0 0%
./integration-tests/internal/lang-err/constructors-return-value 2.408 2.408 0 0%
./integration-tests/internal/lang-err/contract-ref 5.048 5.048 0 0%
./integration-tests/internal/lang-err/integration-flipper 2.024 2.024 0 0%
./integration-tests/internal/mapping 10.662 10.663 0.001 0% 📈
./integration-tests/internal/misc-evm-getters-hostfns 3.649 3.649 0 0%
./integration-tests/internal/misc-hostfns 2.136 2.136 0 0%
./integration-tests/internal/mother 14.833 15.185 0.352 2% 📈
./integration-tests/internal/overflow-safety 1.275 1.275 0 0%
./integration-tests/internal/own-code-hash 3.182 3.182 0 0%
./integration-tests/internal/sr25519-verification 0.818 0.818 0 0%
./integration-tests/internal/static-buffer 2.976 2.976 0 0%
./integration-tests/internal/storage-types 16.746 16.749 0.003 0% 📈
./integration-tests/internal/system-precompile 2.348 2.348 0 0%
./integration-tests/public/assets-precompile 14.036 13.739 -0.297 -1% 📉
./integration-tests/public/bytes 4.272 4.095 -0.177 -3% 📉
./integration-tests/public/complex-storage-structures 4.822 4.823 0.001 0% 📈
./integration-tests/public/conditional-compilation 1.692 1.692 0 0%
./integration-tests/public/contract-invocation 6.41 6.41 0 0%
./integration-tests/public/contract-invocation/contract1 2.032 2.032 0 0%
./integration-tests/public/contract-invocation/contract2 1.945 1.945 0 0%
./integration-tests/public/contract-invocation/virtual_contract 3.631 3.631 0 0%
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.919 1.919 0 0%
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.931 1.931 0 0%
./integration-tests/public/contract-storage 7.592 7.592 0 0%
./integration-tests/public/contract-terminate 0.863 0.863 0 0%
./integration-tests/public/contract-transfer 2.551 2.551 0 0%
./integration-tests/public/contract-xcm 28.643 28.641 -0.002 0% 📉
./integration-tests/public/cross-contract-calls 2.975 2.975 0 0%
./integration-tests/public/cross-contract-calls-advanced 7.255 7.256 0.001 0% 📈
./integration-tests/public/cross-contract-calls-advanced/other-contract 1.74 1.74 0 0%
./integration-tests/public/cross-contract-calls/other-contract 1.74 1.74 0 0%
./integration-tests/public/custom-allocator 3.24 3.24 0 0%
./integration-tests/public/custom-environment 2.499 2.514 0.015 1% 📈
./integration-tests/public/debugging-strategies 3.339 3.339 0 0%
./integration-tests/public/dns 9.759 9.325 -0.434 -3% 📉
./integration-tests/public/e2e-call-runtime 1.661 1.661 0 0%
./integration-tests/public/erc1155 20.262 19.567 -0.695 -2% 📉
./integration-tests/public/erc20 10.191 9.671 -0.52 -4% 📉
./integration-tests/public/erc721 11.531 10.971 -0.56 -4% 📉
./integration-tests/public/events 7.462 6.588 -0.874 -11% 📉
./integration-tests/public/fallible-setter 2.596 2.06 -0.536 -20% 📉
./integration-tests/public/flipper 1.74 1.74 0 0%
./integration-tests/public/fuzz-testing 1.727 1.727 0 0%
./integration-tests/public/incrementer 1.253 1.253 0 0%
./integration-tests/public/lazyvec 5.743 5.743 0 0%
./integration-tests/public/multi-contract-caller 10.046 10.046 0 0%
./integration-tests/public/multi-contract-caller/accumulator 1.113 1.113 0 0%
./integration-tests/public/multi-contract-caller/adder 2.348 2.349 0.001 0% 📈
./integration-tests/public/multi-contract-caller/subber 2.352 2.353 0.001 0% 📈
./integration-tests/public/multisig 26.487 25.263 -1.224 -4% 📉
./integration-tests/public/payment-channel 7.62 7.648 0.028 0% 📈
./integration-tests/public/precompile-demo 4.723 4.723 0 0%
./integration-tests/public/runtime-call-contract 1.743 1.743 0 0%
./integration-tests/public/trait-dyn-cross-contract-calls 3.309 3.309 0 0%
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 1.764 1.764 0 0%
./integration-tests/public/trait-erc20 10.591 9.99 -0.601 -5% 📉
./integration-tests/public/trait-flipper 1.693 1.693 0 0%
./integration-tests/public/trait-incrementer 1.835 1.835 0 0%
./integration-tests/public/upgradeable-contracts/delegator 6.262 6.262 0 0%
./integration-tests/public/upgradeable-contracts/delegator/delegatee 2.889 2.889 0 0%
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 2.889 2.889 0 0%
./integration-tests/public/upgradeable-contracts/set-code-hash 1.688 1.688 0 0%
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 1.688 1.688 0 0%
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 1.842 1.842 0 0%
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.866 1.866 0 0%
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 1.64 1.64 0 0%
./integration-tests/public/wildcard-selector 2.914 2.914 0 0%
./integration-tests/solidity-abi/events 10.973 10.404 -0.569 -4% 📉
./integration-tests/solidity-abi/sol-cross-contract 3.971 3.973 0.002 0% 📈
./integration-tests/solidity-abi/sol-cross-contract/other-contract-sol 2.103 2.069 -0.034 -1% 📉
./integration-tests/solidity-abi/sol-encoding 2.028 2.005 -0.023 0% 📉
./integration-tests/solidity-abi/solidity-calls-flipper 6.76 6.587 -0.173 -2% 📉
./integration-tests/solidity-abi/trait-dyn-cross-contract-calls 3.628 3.477 -0.151 -3% 📉
./integration-tests/solidity-abi/trait-dyn-cross-contract-calls/contracts/incrementer 1.616 1.795 0.179 11% 📈
./integration-tests/solidity-abi/trait-flipper 1.354 1.694 0.34 25% 📈
Show diagram
gantt
   dateFormat x
   axisFormat x
section  
./integration-tests/all-abi/events : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 16708 kb       : a1, 0, 16708
pr default abi - 15385 kb      : a1, 0, 15385
pr sol abi - 15385 kb      : a2, 0, 15385
pr all abi - 15385 kb     : a3, 0, 15385
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/builtin-precompiles : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 4533 kb       : a1, 0, 4533
pr default abi - 4533 kb      : a1, 0, 4533
pr sol abi - 5819 kb      : a2, 0, 5819
pr all abi - 7348 kb     : a3, 0, 7348
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/call-builder-return-value : a5, 0, 0
v5 default abi - 8924 kb       : a1, 0, 8924
master default abi - 8391 kb       : a1, 0, 8391
pr default abi - 8391 kb      : a1, 0, 8391
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/data-hostfns : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1111 kb       : a1, 0, 1111
pr default abi - 1111 kb      : a1, 0, 1111
pr sol abi - 1442 kb      : a2, 0, 1442
pr all abi - 1757 kb     : a3, 0, 1757
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/e2e-runtime-only-backend : a5, 0, 0
v5 default abi - 1925 kb       : a1, 0, 1925
master default abi - 2300 kb       : a1, 0, 2300
pr default abi - 2300 kb      : a1, 0, 2300
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/gas-hostfns : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1161 kb       : a1, 0, 1161
pr default abi - 1162 kb      : a1, 0, 1162
pr sol abi - 1496 kb      : a2, 0, 1496
pr all abi - 1902 kb     : a3, 0, 1902
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/lang-err/call-builder : a5, 0, 0
v5 default abi - 2612 kb       : a1, 0, 2612
master default abi - 6423 kb       : a1, 0, 6423
pr default abi - 6423 kb      : a1, 0, 6423
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/lang-err/call-builder-delegate : a5, 0, 0
v5 default abi - 2612 kb       : a1, 0, 2612
master default abi - 3090 kb       : a1, 0, 3090
pr default abi - 3090 kb      : a1, 0, 3090
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/lang-err/constructors-return-value : a5, 0, 0
v5 default abi - 2011 kb       : a1, 0, 2011
master default abi - 2408 kb       : a1, 0, 2408
pr default abi - 2408 kb      : a1, 0, 2408
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/lang-err/contract-ref : a5, 0, 0
v5 default abi - 5087 kb       : a1, 0, 5087
master default abi - 5048 kb       : a1, 0, 5048
pr default abi - 5048 kb      : a1, 0, 5048
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/lang-err/integration-flipper : a5, 0, 0
v5 default abi - 1910 kb       : a1, 0, 1910
master default abi - 2024 kb       : a1, 0, 2024
pr default abi - 2024 kb      : a1, 0, 2024
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/mapping : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 10662 kb       : a1, 0, 10662
pr default abi - 10663 kb      : a1, 0, 10663
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/misc-evm-getters-hostfns : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 3649 kb       : a1, 0, 3649
pr default abi - 3649 kb      : a1, 0, 3649
pr sol abi - 2970 kb      : a2, 0, 2970
pr all abi - 4904 kb     : a3, 0, 4904
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/misc-hostfns : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2136 kb       : a1, 0, 2136
pr default abi - 2136 kb      : a1, 0, 2136
pr sol abi - 2064 kb      : a2, 0, 2064
pr all abi - 2262 kb     : a3, 0, 2262
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/mother : a5, 0, 0
v5 default abi - 12681 kb       : a1, 0, 12681
master default abi - 14833 kb       : a1, 0, 14833
pr default abi - 15185 kb      : a1, 0, 15185
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/overflow-safety : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1275 kb       : a1, 0, 1275
pr default abi - 1275 kb      : a1, 0, 1275
pr sol abi - 2115 kb      : a2, 0, 2115
pr all abi - 2608 kb     : a3, 0, 2608
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/own-code-hash : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 3182 kb       : a1, 0, 3182
pr default abi - 3182 kb      : a1, 0, 3182
pr sol abi - 2526 kb      : a2, 0, 2526
pr all abi - 3732 kb     : a3, 0, 3732
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/sr25519-verification : a5, 0, 0
v5 default abi - 1082 kb       : a1, 0, 1082
master default abi - 818 kb       : a1, 0, 818
pr default abi - 818 kb      : a1, 0, 818
pr sol abi - 745 kb      : a2, 0, 745
pr all abi - 947 kb     : a3, 0, 947
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/static-buffer : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2976 kb       : a1, 0, 2976
pr default abi - 2976 kb      : a1, 0, 2976
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/storage-types : a5, 0, 0
v5 default abi - 11369 kb       : a1, 0, 11369
master default abi - 16746 kb       : a1, 0, 16746
pr default abi - 16749 kb      : a1, 0, 16749
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/system-precompile : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2348 kb       : a1, 0, 2348
pr default abi - 2348 kb      : a1, 0, 2348
pr sol abi - 2219 kb      : a2, 0, 2219
pr all abi - 2804 kb     : a3, 0, 2804
#nbsp; : a4, 0, 0

section  
./integration-tests/public/assets-precompile : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 14036 kb       : a1, 0, 14036
pr default abi - 13739 kb      : a1, 0, 13739
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/bytes : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 4272 kb       : a1, 0, 4272
pr default abi - 4095 kb      : a1, 0, 4095
pr sol abi - 4095 kb      : a2, 0, 4095
pr all abi - 6397 kb     : a3, 0, 6397
#nbsp; : a4, 0, 0

section  
./integration-tests/public/complex-storage-structures : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 4822 kb       : a1, 0, 4822
pr default abi - 4823 kb      : a1, 0, 4823
pr sol abi - 7232 kb      : a2, 0, 7232
pr all abi - 8872 kb     : a3, 0, 8872
#nbsp; : a4, 0, 0

section  
./integration-tests/public/conditional-compilation : a5, 0, 0
v5 default abi - 1460 kb       : a1, 0, 1460
master default abi - 1692 kb       : a1, 0, 1692
pr default abi - 1692 kb      : a1, 0, 1692
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-invocation : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 6410 kb       : a1, 0, 6410
pr default abi - 6410 kb      : a1, 0, 6410
pr sol abi - 7246 kb      : a2, 0, 7246
pr all abi - 10205 kb     : a3, 0, 10205
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-invocation/contract1 : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2032 kb       : a1, 0, 2032
pr default abi - 2032 kb      : a1, 0, 2032
pr sol abi - 1892 kb      : a2, 0, 1892
pr all abi - 2660 kb     : a3, 0, 2660
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-invocation/contract2 : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1945 kb       : a1, 0, 1945
pr default abi - 1945 kb      : a1, 0, 1945
pr sol abi - 1858 kb      : a2, 0, 1858
pr all abi - 2559 kb     : a3, 0, 2559
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-invocation/virtual_contract : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 3631 kb       : a1, 0, 3631
pr default abi - 3631 kb      : a1, 0, 3631
pr sol abi - 4849 kb      : a2, 0, 4849
pr all abi - 5645 kb     : a3, 0, 5645
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-invocation/virtual_contract_ver1 : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1919 kb       : a1, 0, 1919
pr default abi - 1919 kb      : a1, 0, 1919
pr sol abi - 1977 kb      : a2, 0, 1977
pr all abi - 2367 kb     : a3, 0, 2367
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-invocation/virtual_contract_ver2 : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1931 kb       : a1, 0, 1931
pr default abi - 1931 kb      : a1, 0, 1931
pr sol abi - 1990 kb      : a2, 0, 1990
pr all abi - 2394 kb     : a3, 0, 2394
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-storage : a5, 0, 0
v5 default abi - 7459 kb       : a1, 0, 7459
master default abi - 7592 kb       : a1, 0, 7592
pr default abi - 7592 kb      : a1, 0, 7592
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-terminate : a5, 0, 0
v5 default abi - 1314 kb       : a1, 0, 1314
master default abi - 863 kb       : a1, 0, 863
pr default abi - 863 kb      : a1, 0, 863
pr sol abi - 832 kb      : a2, 0, 832
pr all abi - 960 kb     : a3, 0, 960
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-transfer : a5, 0, 0
v5 default abi - 1520 kb       : a1, 0, 1520
master default abi - 2551 kb       : a1, 0, 2551
pr default abi - 2551 kb      : a1, 0, 2551
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 2933 kb     : a3, 0, 2933
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-xcm : a5, 0, 0
v5 default abi - 18805 kb       : a1, 0, 18805
master default abi - 28643 kb       : a1, 0, 28643
pr default abi - 28641 kb      : a1, 0, 28641
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/cross-contract-calls : a5, 0, 0
v5 default abi - 7471 kb       : a1, 0, 7471
master default abi - 2975 kb       : a1, 0, 2975
pr default abi - 2975 kb      : a1, 0, 2975
pr sol abi - 3062 kb      : a2, 0, 3062
pr all abi - 3317 kb     : a3, 0, 3317
#nbsp; : a4, 0, 0

section  
./integration-tests/public/cross-contract-calls-advanced : a5, 0, 0
v5 default abi - 7471 kb       : a1, 0, 7471
master default abi - 7255 kb       : a1, 0, 7255
pr default abi - 7256 kb      : a1, 0, 7256
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/cross-contract-calls-advanced/other-contract : a5, 0, 0
v5 default abi - 1591 kb       : a1, 0, 1591
master default abi - 1740 kb       : a1, 0, 1740
pr default abi - 1740 kb      : a1, 0, 1740
pr sol abi - 1895 kb      : a2, 0, 1895
pr all abi - 2333 kb     : a3, 0, 2333
#nbsp; : a4, 0, 0

section  
./integration-tests/public/cross-contract-calls/other-contract : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1740 kb       : a1, 0, 1740
pr default abi - 1740 kb      : a1, 0, 1740
pr sol abi - 1895 kb      : a2, 0, 1895
pr all abi - 2333 kb     : a3, 0, 2333
#nbsp; : a4, 0, 0

section  
./integration-tests/public/custom-allocator : a5, 0, 0
v5 default abi - 7993 kb       : a1, 0, 7993
master default abi - 3240 kb       : a1, 0, 3240
pr default abi - 3240 kb      : a1, 0, 3240
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/custom-environment : a5, 0, 0
v5 default abi - 2062 kb       : a1, 0, 2062
master default abi - 2499 kb       : a1, 0, 2499
pr default abi - 2514 kb      : a1, 0, 2514
pr sol abi - 1528 kb      : a2, 0, 1528
pr all abi - 2819 kb     : a3, 0, 2819
#nbsp; : a4, 0, 0

section  
./integration-tests/public/debugging-strategies : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 3339 kb       : a1, 0, 3339
pr default abi - 3339 kb      : a1, 0, 3339
pr sol abi - 3271 kb      : a2, 0, 3271
pr all abi - 4034 kb     : a3, 0, 4034
#nbsp; : a4, 0, 0

section  
./integration-tests/public/dns : a5, 0, 0
v5 default abi - 7142 kb       : a1, 0, 7142
master default abi - 9759 kb       : a1, 0, 9759
pr default abi - 9325 kb      : a1, 0, 9325
pr sol abi - 9441 kb      : a2, 0, 9441
pr all abi - 12439 kb     : a3, 0, 12439
#nbsp; : a4, 0, 0

section  
./integration-tests/public/e2e-call-runtime : a5, 0, 0
v5 default abi - 1182 kb       : a1, 0, 1182
master default abi - 1661 kb       : a1, 0, 1661
pr default abi - 1661 kb      : a1, 0, 1661
pr sol abi - 1545 kb      : a2, 0, 1545
pr all abi - 2122 kb     : a3, 0, 2122
#nbsp; : a4, 0, 0

section  
./integration-tests/public/erc1155 : a5, 0, 0
v5 default abi - 14566 kb       : a1, 0, 14566
master default abi - 20262 kb       : a1, 0, 20262
pr default abi - 19567 kb      : a1, 0, 19567
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 33239 kb     : a3, 0, 33239
#nbsp; : a4, 0, 0

section  
./integration-tests/public/erc20 : a5, 0, 0
v5 default abi - 6993 kb       : a1, 0, 6993
master default abi - 10191 kb       : a1, 0, 10191
pr default abi - 9671 kb      : a1, 0, 9671
pr sol abi - 11802 kb      : a2, 0, 11802
pr all abi - 15698 kb     : a3, 0, 15698
#nbsp; : a4, 0, 0

section  
./integration-tests/public/erc721 : a5, 0, 0
v5 default abi - 9754 kb       : a1, 0, 9754
master default abi - 11531 kb       : a1, 0, 11531
pr default abi - 10971 kb      : a1, 0, 10971
pr sol abi - 13172 kb      : a2, 0, 13172
pr all abi - 18207 kb     : a3, 0, 18207
#nbsp; : a4, 0, 0

section  
./integration-tests/public/events : a5, 0, 0
v5 default abi - 4955 kb       : a1, 0, 4955
master default abi - 7462 kb       : a1, 0, 7462
pr default abi - 6588 kb      : a1, 0, 6588
pr sol abi - 10657 kb      : a2, 0, 10657
pr all abi - 14481 kb     : a3, 0, 14481
#nbsp; : a4, 0, 0

section  
./integration-tests/public/fallible-setter : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2596 kb       : a1, 0, 2596
pr default abi - 2060 kb      : a1, 0, 2060
pr sol abi - 2060 kb      : a2, 0, 2060
pr all abi - 2603 kb     : a3, 0, 2603
#nbsp; : a4, 0, 0

section  
./integration-tests/public/flipper : a5, 0, 0
v5 default abi - 1701 kb       : a1, 0, 1701
master default abi - 1740 kb       : a1, 0, 1740
pr default abi - 1740 kb      : a1, 0, 1740
pr sol abi - 1895 kb      : a2, 0, 1895
pr all abi - 2333 kb     : a3, 0, 2333
#nbsp; : a4, 0, 0

section  
./integration-tests/public/fuzz-testing : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1727 kb       : a1, 0, 1727
pr default abi - 1727 kb      : a1, 0, 1727
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/incrementer : a5, 0, 0
v5 default abi - 1538 kb       : a1, 0, 1538
master default abi - 1253 kb       : a1, 0, 1253
pr default abi - 1253 kb      : a1, 0, 1253
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/lazyvec : a5, 0, 0
v5 default abi - 5103 kb       : a1, 0, 5103
master default abi - 5743 kb       : a1, 0, 5743
pr default abi - 5743 kb      : a1, 0, 5743
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/multi-contract-caller : a5, 0, 0
v5 default abi - 6420 kb       : a1, 0, 6420
master default abi - 10046 kb       : a1, 0, 10046
pr default abi - 10046 kb      : a1, 0, 10046
pr sol abi - 11992 kb      : a2, 0, 11992
pr all abi - 11151 kb     : a3, 0, 11151
#nbsp; : a4, 0, 0

section  
./integration-tests/public/multi-contract-caller/accumulator : a5, 0, 0
v5 default abi - 1363 kb       : a1, 0, 1363
master default abi - 1113 kb       : a1, 0, 1113
pr default abi - 1113 kb      : a1, 0, 1113
pr sol abi - 1694 kb      : a2, 0, 1694
pr all abi - 2260 kb     : a3, 0, 2260
#nbsp; : a4, 0, 0

section  
./integration-tests/public/multi-contract-caller/adder : a5, 0, 0
v5 default abi - 1733 kb       : a1, 0, 1733
master default abi - 2348 kb       : a1, 0, 2348
pr default abi - 2349 kb      : a1, 0, 2349
pr sol abi - 2462 kb      : a2, 0, 2462
pr all abi - 2648 kb     : a3, 0, 2648
#nbsp; : a4, 0, 0

section  
./integration-tests/public/multi-contract-caller/subber : a5, 0, 0
v5 default abi - 1751 kb       : a1, 0, 1751
master default abi - 2352 kb       : a1, 0, 2352
pr default abi - 2353 kb      : a1, 0, 2353
pr sol abi - 2466 kb      : a2, 0, 2466
pr all abi - 2665 kb     : a3, 0, 2665
#nbsp; : a4, 0, 0

section  
./integration-tests/public/multisig : a5, 0, 0
v5 default abi - 21135 kb       : a1, 0, 21135
master default abi - 26487 kb       : a1, 0, 26487
pr default abi - 25263 kb      : a1, 0, 25263
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/public/payment-channel : a5, 0, 0
v5 default abi - 5720 kb       : a1, 0, 5720
master default abi - 7620 kb       : a1, 0, 7620
pr default abi - 7648 kb      : a1, 0, 7648
pr sol abi - 10725 kb      : a2, 0, 10725
pr all abi - 13938 kb     : a3, 0, 13938
#nbsp; : a4, 0, 0

section  
./integration-tests/public/precompile-demo : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 4723 kb       : a1, 0, 4723
pr default abi - 4723 kb      : a1, 0, 4723
pr sol abi - 6212 kb      : a2, 0, 6212
pr all abi - 7508 kb     : a3, 0, 7508
#nbsp; : a4, 0, 0

section  
./integration-tests/public/runtime-call-contract : a5, 0, 0
v5 default abi - 1592 kb       : a1, 0, 1592
master default abi - 1743 kb       : a1, 0, 1743
pr default abi - 1743 kb      : a1, 0, 1743
pr sol abi - 1895 kb      : a2, 0, 1895
pr all abi - 2337 kb     : a3, 0, 2337
#nbsp; : a4, 0, 0

section  
./integration-tests/public/trait-dyn-cross-contract-calls : a5, 0, 0
v5 default abi - 2808 kb       : a1, 0, 2808
master default abi - 3309 kb       : a1, 0, 3309
pr default abi - 3309 kb      : a1, 0, 3309
pr sol abi - 3477 kb      : a2, 0, 3477
pr all abi - 3701 kb     : a3, 0, 3701
#nbsp; : a4, 0, 0

section  
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer : a5, 0, 0
v5 default abi - 1571 kb       : a1, 0, 1571
master default abi - 1764 kb       : a1, 0, 1764
pr default abi - 1764 kb      : a1, 0, 1764
pr sol abi - 1795 kb      : a2, 0, 1795
pr all abi - 2235 kb     : a3, 0, 2235
#nbsp; : a4, 0, 0

section  
./integration-tests/public/trait-erc20 : a5, 0, 0
v5 default abi - 7286 kb       : a1, 0, 7286
master default abi - 10591 kb       : a1, 0, 10591
pr default abi - 9990 kb      : a1, 0, 9990
pr sol abi - 11851 kb      : a2, 0, 11851
pr all abi - 16067 kb     : a3, 0, 16067
#nbsp; : a4, 0, 0

section  
./integration-tests/public/trait-flipper : a5, 0, 0
v5 default abi - 1460 kb       : a1, 0, 1460
master default abi - 1693 kb       : a1, 0, 1693
pr default abi - 1693 kb      : a1, 0, 1693
pr sol abi - 1694 kb      : a2, 0, 1694
pr all abi - 2059 kb     : a3, 0, 2059
#nbsp; : a4, 0, 0

section  
./integration-tests/public/trait-incrementer : a5, 0, 0
v5 default abi - 1630 kb       : a1, 0, 1630
master default abi - 1835 kb       : a1, 0, 1835
pr default abi - 1835 kb      : a1, 0, 1835
pr sol abi - 1964 kb      : a2, 0, 1964
pr all abi - 2490 kb     : a3, 0, 2490
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/delegator : a5, 0, 0
v5 default abi - 3869 kb       : a1, 0, 3869
master default abi - 6262 kb       : a1, 0, 6262
pr default abi - 6262 kb      : a1, 0, 6262
pr sol abi - 8642 kb      : a2, 0, 8642
pr all abi - 10560 kb     : a3, 0, 10560
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/delegator/delegatee : a5, 0, 0
v5 default abi - 1652 kb       : a1, 0, 1652
master default abi - 2889 kb       : a1, 0, 2889
pr default abi - 2889 kb      : a1, 0, 2889
pr sol abi - 2343 kb      : a2, 0, 2343
pr all abi - 3252 kb     : a3, 0, 3252
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 : a5, 0, 0
v5 default abi - 1652 kb       : a1, 0, 1652
master default abi - 2889 kb       : a1, 0, 2889
pr default abi - 2889 kb      : a1, 0, 2889
pr sol abi - 2343 kb      : a2, 0, 2343
pr all abi - 3252 kb     : a3, 0, 3252
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/set-code-hash : a5, 0, 0
v5 default abi - 1740 kb       : a1, 0, 1740
master default abi - 1688 kb       : a1, 0, 1688
pr default abi - 1688 kb      : a1, 0, 1688
pr sol abi - 1857 kb      : a2, 0, 1857
pr all abi - 2464 kb     : a3, 0, 2464
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/set-code-hash-migration : a5, 0, 0
v5 default abi - 1740 kb       : a1, 0, 1740
master default abi - 1688 kb       : a1, 0, 1688
pr default abi - 1688 kb      : a1, 0, 1688
pr sol abi - 1857 kb      : a2, 0, 1857
pr all abi - 2464 kb     : a3, 0, 2464
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration : a5, 0, 0
v5 default abi - 1302 kb       : a1, 0, 1302
master default abi - 1842 kb       : a1, 0, 1842
pr default abi - 1842 kb      : a1, 0, 1842
pr sol abi - 2584 kb      : a2, 0, 2584
pr all abi - 2551 kb     : a3, 0, 2551
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer : a5, 0, 0
v5 default abi - 1930 kb       : a1, 0, 1930
master default abi - 1866 kb       : a1, 0, 1866
pr default abi - 1866 kb      : a1, 0, 1866
pr sol abi - 2367 kb      : a2, 0, 2367
pr all abi - 2865 kb     : a3, 0, 2865
#nbsp; : a4, 0, 0

section  
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer : a5, 0, 0
v5 default abi - 1717 kb       : a1, 0, 1717
master default abi - 1640 kb       : a1, 0, 1640
pr default abi - 1640 kb      : a1, 0, 1640
pr sol abi - 1846 kb      : a2, 0, 1846
pr all abi - 2404 kb     : a3, 0, 2404
#nbsp; : a4, 0, 0

section  
./integration-tests/public/wildcard-selector : a5, 0, 0
v5 default abi - 3234 kb       : a1, 0, 3234
master default abi - 2914 kb       : a1, 0, 2914
pr default abi - 2914 kb      : a1, 0, 2914
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 5178 kb     : a3, 0, 5178
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/events : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 10973 kb       : a1, 0, 10973
pr default abi - 10404 kb      : a1, 0, 10404
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/sol-cross-contract : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 3971 kb       : a1, 0, 3971
pr default abi - 3973 kb      : a1, 0, 3973
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/sol-cross-contract/other-contract-sol : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2103 kb       : a1, 0, 2103
pr default abi - 2069 kb      : a1, 0, 2069
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/sol-encoding : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 2028 kb       : a1, 0, 2028
pr default abi - 2005 kb      : a1, 0, 2005
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/solidity-calls-flipper : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 6760 kb       : a1, 0, 6760
pr default abi - 6587 kb      : a1, 0, 6587
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/trait-dyn-cross-contract-calls : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 3628 kb       : a1, 0, 3628
pr default abi - 3477 kb      : a1, 0, 3477
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/trait-dyn-cross-contract-calls/contracts/incrementer : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1616 kb       : a1, 0, 1616
pr default abi - 1795 kb      : a1, 0, 1795
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

section  
./integration-tests/solidity-abi/trait-flipper : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1354 kb       : a1, 0, 1354
pr default abi - 1694 kb      : a1, 0, 1694
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 0 kb     : a3, 0, 0
#nbsp; : a4, 0, 0

Loading
Show contract sizes: PR vs master (with enforced Solidity ABI)

The following table shows how the contract sizes on this branch change compared to the master branch when using the Solidity ABI.

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 16.708 15.385 -1.323 -7% 📉
./integration-tests/internal/builtin-precompiles 6.048 5.819 -0.229 -3% 📉
./integration-tests/internal/data-hostfns 1.218 1.442 0.224 18% 📈
./integration-tests/internal/gas-hostfns 1.272 1.496 0.224 18% 📈
./integration-tests/internal/misc-evm-getters-hostfns 3.277 2.97 -0.307 -8% 📉
./integration-tests/internal/misc-hostfns 2.062 2.064 0.002 0% 📈
./integration-tests/internal/overflow-safety 2.139 2.115 -0.024 0% 📉
./integration-tests/internal/own-code-hash 2.759 2.526 -0.233 -7% 📉
./integration-tests/internal/sr25519-verification 0.742 0.745 0.003 0% 📈
./integration-tests/internal/system-precompile 2.208 2.219 0.011 0% 📈
./integration-tests/public/bytes 4.272 4.095 -0.177 -3% 📉
./integration-tests/public/complex-storage-structures 7.464 7.232 -0.232 -2% 📉
./integration-tests/public/contract-invocation 7.447 7.246 -0.201 -2% 📉
./integration-tests/public/contract-invocation/contract1 2.089 1.892 -0.197 -8% 📉
./integration-tests/public/contract-invocation/contract2 2.053 1.858 -0.195 -8% 📉
./integration-tests/public/contract-invocation/virtual_contract 4.94 4.849 -0.091 -1% 📉
./integration-tests/public/contract-invocation/virtual_contract_ver1 2.092 1.977 -0.115 -4% 📉
./integration-tests/public/contract-invocation/virtual_contract_ver2 2.104 1.99 -0.114 -4% 📉
./integration-tests/public/contract-terminate 0.83 0.832 0.002 0% 📈
./integration-tests/public/cross-contract-calls 3.135 3.062 -0.073 -1% 📉
./integration-tests/public/cross-contract-calls-advanced/other-contract 1.555 1.895 0.34 22% 📈
./integration-tests/public/cross-contract-calls/other-contract 1.555 1.895 0.34 22% 📈
./integration-tests/public/custom-environment 1.523 1.528 0.005 0% 📈
./integration-tests/public/debugging-strategies 3.401 3.271 -0.13 -3% 📉
./integration-tests/public/dns 9.907 9.441 -0.466 -4% 📉
./integration-tests/public/e2e-call-runtime 1.534 1.545 0.011 1% 📈
./integration-tests/public/erc20 12.328 11.802 -0.526 -3% 📉
./integration-tests/public/erc721 14.495 13.172 -1.323 -8% 📉
./integration-tests/public/events 11.669 10.657 -1.012 -8% 📉
./integration-tests/public/fallible-setter 2.596 2.06 -0.536 -20% 📉
./integration-tests/public/flipper 1.555 1.895 0.34 22% 📈
./integration-tests/public/multi-contract-caller 12.083 11.992 -0.091 0% 📉
./integration-tests/public/multi-contract-caller/accumulator 1.428 1.694 0.266 19% 📈
./integration-tests/public/multi-contract-caller/adder 2.459 2.462 0.003 0% 📈
./integration-tests/public/multi-contract-caller/subber 2.465 2.466 0.001 0% 📈
./integration-tests/public/payment-channel 11.27 10.725 -0.545 -4% 📉
./integration-tests/public/precompile-demo 6.331 6.212 -0.119 -1% 📉
./integration-tests/public/runtime-call-contract 1.555 1.895 0.34 22% 📈
./integration-tests/public/trait-dyn-cross-contract-calls 3.628 3.477 -0.151 -3% 📉
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 1.616 1.795 0.179 11% 📈
./integration-tests/public/trait-erc20 12.194 11.851 -0.343 -2% 📉
./integration-tests/public/trait-flipper 1.354 1.694 0.34 25% 📈
./integration-tests/public/trait-incrementer 1.785 1.964 0.179 10% 📈
./integration-tests/public/upgradeable-contracts/delegator 8.789 8.642 -0.147 -1% 📉
./integration-tests/public/upgradeable-contracts/delegator/delegatee 2.345 2.343 -0.002 0% 📉
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 2.344 2.343 -0.001 0% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash 2 1.857 -0.143 -6% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 2 1.857 -0.143 -6% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 2.582 2.584 0.002 0% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 2.565 2.367 -0.198 -7% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 1.989 1.846 -0.143 -6% 📉
Show contract sizes: PR vs master (with enforced all ABI mode)

The following table shows how the contract sizes on this branch change compared to the master branch when using the all ABI mode.

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 16.708 15.385 -1.323 -7% 📉
./integration-tests/internal/builtin-precompiles 7.478 7.348 -0.13 -1% 📉
./integration-tests/internal/data-hostfns 1.578 1.757 0.179 11% 📈
./integration-tests/internal/gas-hostfns 1.723 1.902 0.179 10% 📈
./integration-tests/internal/misc-evm-getters-hostfns 5.098 4.904 -0.194 -3% 📉
./integration-tests/internal/misc-hostfns 2.258 2.262 0.004 0% 📈
./integration-tests/internal/overflow-safety 2.636 2.608 -0.028 0% 📉
./integration-tests/internal/own-code-hash 3.855 3.732 -0.123 -2% 📉
./integration-tests/internal/sr25519-verification 0.945 0.947 0.002 0% 📈
./integration-tests/internal/system-precompile 2.81 2.804 -0.006 0% 📉
./integration-tests/public/bytes 7 6.397 -0.603 -8% 📉
./integration-tests/public/complex-storage-structures 9.105 8.872 -0.233 -2% 📉
./integration-tests/public/contract-invocation 10.387 10.205 -0.182 -1% 📉
./integration-tests/public/contract-invocation/contract1 2.828 2.66 -0.168 -5% 📉
./integration-tests/public/contract-invocation/contract2 2.726 2.559 -0.167 -5% 📉
./integration-tests/public/contract-invocation/virtual_contract 5.767 5.645 -0.122 -1% 📉
./integration-tests/public/contract-invocation/virtual_contract_ver1 2.486 2.367 -0.119 -4% 📉
./integration-tests/public/contract-invocation/virtual_contract_ver2 2.512 2.394 -0.118 -4% 📉
./integration-tests/public/contract-terminate 0.958 0.96 0.002 0% 📈
./integration-tests/public/contract-transfer 2.931 2.933 0.002 0% 📈
./integration-tests/public/cross-contract-calls 3.39 3.317 -0.073 -1% 📉
./integration-tests/public/cross-contract-calls-advanced/other-contract 2.367 2.333 -0.034 0% 📉
./integration-tests/public/cross-contract-calls/other-contract 2.367 2.333 -0.034 0% 📉
./integration-tests/public/custom-environment 2.786 2.819 0.033 1% 📈
./integration-tests/public/debugging-strategies 4.168 4.034 -0.134 -2% 📉
./integration-tests/public/dns 13.51 12.439 -1.071 -7% 📉
./integration-tests/public/e2e-call-runtime 2.147 2.122 -0.025 0% 📉
./integration-tests/public/erc1155 34.799 33.239 -1.56 -3% 📉
./integration-tests/public/erc20 16.784 15.698 -1.086 -5% 📉
./integration-tests/public/erc721 19.648 18.207 -1.441 -6% 📉
./integration-tests/public/events 15.975 14.481 -1.494 -8% 📉
./integration-tests/public/fallible-setter 3.137 2.603 -0.534 -16% 📉
./integration-tests/public/flipper 2.367 2.333 -0.034 0% 📉
./integration-tests/public/multi-contract-caller 11.263 11.151 -0.112 0% 📉
./integration-tests/public/multi-contract-caller/accumulator 1.99 2.26 0.27 14% 📈
./integration-tests/public/multi-contract-caller/adder 2.647 2.648 0.001 0% 📈
./integration-tests/public/multi-contract-caller/subber 2.665 2.665 0 0%
./integration-tests/public/payment-channel 14.666 13.938 -0.728 -4% 📉
./integration-tests/public/precompile-demo 7.646 7.508 -0.138 -1% 📉
./integration-tests/public/runtime-call-contract 2.371 2.337 -0.034 0% 📉
./integration-tests/public/trait-dyn-cross-contract-calls 3.827 3.701 -0.126 -2% 📉
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 2.413 2.235 -0.178 -6% 📉
./integration-tests/public/trait-erc20 17.103 16.067 -1.036 -5% 📉
./integration-tests/public/trait-flipper 2.093 2.059 -0.034 -1% 📉
./integration-tests/public/trait-incrementer 2.667 2.49 -0.177 -6% 📉
./integration-tests/public/upgradeable-contracts/delegator 10.707 10.56 -0.147 0% 📉
./integration-tests/public/upgradeable-contracts/delegator/delegatee 3.178 3.252 0.074 2% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 3.178 3.252 0.074 2% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash 2.607 2.464 -0.143 -4% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 2.607 2.464 -0.143 -4% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 2.549 2.551 0.002 0% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 3.063 2.865 -0.198 -5% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 2.547 2.404 -0.143 -5% 📉
./integration-tests/public/wildcard-selector 5.176 5.178 0.002 0% 📈
Show contract sizes: ink! vs Solidity ABI

The following table shows how the contract sizes on this branch change when choosing the Solidity ABI instead of the ink! ABI.

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 15.385 15.385 0 0%
./integration-tests/internal/builtin-precompiles 4.533 5.819 1.286 28% 📈
./integration-tests/internal/data-hostfns 1.111 1.442 0.331 30% 📈
./integration-tests/internal/gas-hostfns 1.162 1.496 0.334 29% 📈
./integration-tests/internal/misc-evm-getters-hostfns 3.649 2.97 -0.679 -18% 📉
./integration-tests/internal/misc-hostfns 2.136 2.064 -0.072 -2% 📉
./integration-tests/internal/overflow-safety 1.275 2.115 0.84 66% 📈
./integration-tests/internal/own-code-hash 3.182 2.526 -0.656 -20% 📉
./integration-tests/internal/sr25519-verification 0.818 0.745 -0.073 -8% 📉
./integration-tests/internal/system-precompile 2.348 2.219 -0.129 -4% 📉
./integration-tests/public/bytes 4.095 4.095 0 0%
./integration-tests/public/complex-storage-structures 4.823 7.232 2.409 50% 📈
./integration-tests/public/contract-invocation 6.41 7.246 0.836 13% 📈
./integration-tests/public/contract-invocation/contract1 2.032 1.892 -0.14 -6% 📉
./integration-tests/public/contract-invocation/contract2 1.945 1.858 -0.087 -3% 📉
./integration-tests/public/contract-invocation/virtual_contract 3.631 4.849 1.218 34% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.919 1.977 0.058 3% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.931 1.99 0.059 3% 📈
./integration-tests/public/contract-terminate 0.863 0.832 -0.031 -3% 📉
./integration-tests/public/cross-contract-calls 2.975 3.062 0.087 3% 📈
./integration-tests/public/cross-contract-calls-advanced/other-contract 1.74 1.895 0.155 9% 📈
./integration-tests/public/cross-contract-calls/other-contract 1.74 1.895 0.155 9% 📈
./integration-tests/public/custom-environment 2.514 1.528 -0.986 -38% 📉
./integration-tests/public/debugging-strategies 3.339 3.271 -0.068 -1% 📉
./integration-tests/public/dns 9.325 9.441 0.116 1% 📈
./integration-tests/public/e2e-call-runtime 1.661 1.545 -0.116 -6% 📉
./integration-tests/public/erc20 9.671 11.802 2.131 22% 📈
./integration-tests/public/erc721 10.971 13.172 2.201 20% 📈
./integration-tests/public/events 6.588 10.657 4.069 62% 📈
./integration-tests/public/fallible-setter 2.06 2.06 0 0%
./integration-tests/public/flipper 1.74 1.895 0.155 9% 📈
./integration-tests/public/multi-contract-caller 10.046 11.992 1.946 19% 📈
./integration-tests/public/multi-contract-caller/accumulator 1.113 1.694 0.581 52% 📈
./integration-tests/public/multi-contract-caller/adder 2.349 2.462 0.113 5% 📈
./integration-tests/public/multi-contract-caller/subber 2.353 2.466 0.113 5% 📈
./integration-tests/public/payment-channel 7.648 10.725 3.077 40% 📈
./integration-tests/public/precompile-demo 4.723 6.212 1.489 32% 📈
./integration-tests/public/runtime-call-contract 1.743 1.895 0.152 9% 📈
./integration-tests/public/trait-dyn-cross-contract-calls 3.309 3.477 0.168 5% 📈
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 1.764 1.795 0.031 2% 📈
./integration-tests/public/trait-erc20 9.99 11.851 1.861 19% 📈
./integration-tests/public/trait-flipper 1.693 1.694 0.001 0% 📈
./integration-tests/public/trait-incrementer 1.835 1.964 0.129 7% 📈
./integration-tests/public/upgradeable-contracts/delegator 6.262 8.642 2.38 38% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee 2.889 2.343 -0.546 -18% 📉
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 2.889 2.343 -0.546 -18% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash 1.688 1.857 0.169 10% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 1.688 1.857 0.169 10% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 1.842 2.584 0.742 40% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.866 2.367 0.501 27% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 1.64 1.846 0.206 13% 📈
Show contract sizes: ink! vs all ABI mode

The following table shows how the contract sizes on this branch change when choosing the all ABI mode instead of the ink! ABI.

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 15.385 15.385 0 0%
./integration-tests/internal/builtin-precompiles 4.533 7.348 2.815 62% 📈
./integration-tests/internal/data-hostfns 1.111 1.757 0.646 58% 📈
./integration-tests/internal/gas-hostfns 1.162 1.902 0.74 64% 📈
./integration-tests/internal/misc-evm-getters-hostfns 3.649 4.904 1.255 34% 📈
./integration-tests/internal/misc-hostfns 2.136 2.262 0.126 6% 📈
./integration-tests/internal/overflow-safety 1.275 2.608 1.333 105% 📈
./integration-tests/internal/own-code-hash 3.182 3.732 0.55 17% 📈
./integration-tests/internal/sr25519-verification 0.818 0.947 0.129 16% 📈
./integration-tests/internal/system-precompile 2.348 2.804 0.456 19% 📈
./integration-tests/public/bytes 4.095 6.397 2.302 56% 📈
./integration-tests/public/complex-storage-structures 4.823 8.872 4.049 84% 📈
./integration-tests/public/contract-invocation 6.41 10.205 3.795 59% 📈
./integration-tests/public/contract-invocation/contract1 2.032 2.66 0.628 31% 📈
./integration-tests/public/contract-invocation/contract2 1.945 2.559 0.614 32% 📈
./integration-tests/public/contract-invocation/virtual_contract 3.631 5.645 2.014 55% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.919 2.367 0.448 23% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.931 2.394 0.463 24% 📈
./integration-tests/public/contract-terminate 0.863 0.96 0.097 11% 📈
./integration-tests/public/contract-transfer 2.551 2.933 0.382 15% 📈
./integration-tests/public/cross-contract-calls 2.975 3.317 0.342 11% 📈
./integration-tests/public/cross-contract-calls-advanced/other-contract 1.74 2.333 0.593 34% 📈
./integration-tests/public/cross-contract-calls/other-contract 1.74 2.333 0.593 34% 📈
./integration-tests/public/custom-environment 2.514 2.819 0.305 12% 📈
./integration-tests/public/debugging-strategies 3.339 4.034 0.695 21% 📈
./integration-tests/public/dns 9.325 12.439 3.114 33% 📈
./integration-tests/public/e2e-call-runtime 1.661 2.122 0.461 28% 📈
./integration-tests/public/erc1155 19.567 33.239 13.672 70% 📈
./integration-tests/public/erc20 9.671 15.698 6.027 62% 📈
./integration-tests/public/erc721 10.971 18.207 7.236 66% 📈
./integration-tests/public/events 6.588 14.481 7.893 120% 📈
./integration-tests/public/fallible-setter 2.06 2.603 0.543 26% 📈
./integration-tests/public/flipper 1.74 2.333 0.593 34% 📈
./integration-tests/public/multi-contract-caller 10.046 11.151 1.105 11% 📈
./integration-tests/public/multi-contract-caller/accumulator 1.113 2.26 1.147 103% 📈
./integration-tests/public/multi-contract-caller/adder 2.349 2.648 0.299 13% 📈
./integration-tests/public/multi-contract-caller/subber 2.353 2.665 0.312 13% 📈
./integration-tests/public/payment-channel 7.648 13.938 6.29 82% 📈
./integration-tests/public/precompile-demo 4.723 7.508 2.785 59% 📈
./integration-tests/public/runtime-call-contract 1.743 2.337 0.594 34% 📈
./integration-tests/public/trait-dyn-cross-contract-calls 3.309 3.701 0.392 12% 📈
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 1.764 2.235 0.471 27% 📈
./integration-tests/public/trait-erc20 9.99 16.067 6.077 61% 📈
./integration-tests/public/trait-flipper 1.693 2.059 0.366 22% 📈
./integration-tests/public/trait-incrementer 1.835 2.49 0.655 36% 📈
./integration-tests/public/upgradeable-contracts/delegator 6.262 10.56 4.298 69% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee 2.889 3.252 0.363 13% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 2.889 3.252 0.363 13% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash 1.688 2.464 0.776 46% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 1.688 2.464 0.776 46% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 1.842 2.551 0.709 38% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.866 2.865 0.999 54% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 1.64 2.404 0.764 47% 📈
./integration-tests/public/wildcard-selector 2.914 5.178 2.264 78% 📈

Link to the run | Last update: Thu Dec 18 19:18:20 CET 2025

@davidsemakula davidsemakula force-pushed the semakula/event-encode-to branch from 025c30d to 2d5eb07 Compare October 14, 2025 10:43
@davidsemakula davidsemakula force-pushed the semakula/event-encode-to branch from 2d5eb07 to f3a7b11 Compare December 16, 2025 18:24
@davidsemakula davidsemakula changed the title Add Event::encode_data_to Non-allocating Solidity ABI encoding implementations for result, error data, event data and topics Dec 16, 2025
@davidsemakula davidsemakula force-pushed the semakula/event-encode-to branch 2 times, most recently from 892cd83 to fba5870 Compare December 18, 2025 11:28
@davidsemakula davidsemakula force-pushed the semakula/event-encode-to branch from fba5870 to cd7b2f1 Compare December 18, 2025 15:05
@davidsemakula davidsemakula force-pushed the semakula/event-encode-to branch from cd7b2f1 to 9837d74 Compare December 18, 2025 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants