Skip to content

Refactor contract ref generation and add automatic re-exporting#2710

Merged
davidsemakula merged 8 commits intomasterfrom
semakula/contract-ref
Nov 5, 2025
Merged

Refactor contract ref generation and add automatic re-exporting#2710
davidsemakula merged 8 commits intomasterfrom
semakula/contract-ref

Conversation

@davidsemakula
Copy link
Collaborator

@davidsemakula davidsemakula commented Nov 3, 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

  • Only generate contract refs in test, std or dependency mode
  • Automatically re-export contract refs in test, std or dependency mode
    • Currently, adding a contract as a dependency is not enough to allow the root contract to access it's contract ref, because it's also required that the author of the imported contract also manually re-exported its contract ref. This PR removes this requirement by automatically re-exporting the contract ref when a contract is compiled in "dependency" mode.
  • Implement ::ink::codegen::ContractCallBuilder for contract refs

Follow ups

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
@davidsemakula davidsemakula changed the title Refactor contract ref generation and re-exporting Refactor contract ref generation and add automatic re-exporting Nov 3, 2025
@github-actions
Copy link

github-actions bot commented Nov 3, 2025

🦑 📈 ink! Example Contracts ‒ Changes Report 📉 🦑

⚠️ The ink! master is ahead of your branch, this might skew the comparison data below. ⚠️
These are the results when building the integration-tests/* contracts from this branch and comparing them to ink! master:

Show overview

Using the ABI denoted in the contract manifest.

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 18.413 18.413 0 0%
./integration-tests/internal/call-builder-return-value 9.161 9.161 0 0%
./integration-tests/internal/e2e-runtime-only-backend 2.202 2.202 0 0%
./integration-tests/internal/gas-hostfns 1.016 1.016 0 0%
./integration-tests/internal/lang-err/call-builder 8.193 8.193 0 0%
./integration-tests/internal/lang-err/call-builder-delegate 3.6 3.6 0 0%
./integration-tests/internal/lang-err/constructors-return-value 2.442 2.442 0 0%
./integration-tests/internal/lang-err/contract-ref 6.732 6.732 0 0%
./integration-tests/internal/lang-err/integration-flipper 2.059 2.059 0 0%
./integration-tests/internal/mapping 10.628 10.628 0 0%
./integration-tests/internal/misc-hostfns 2.204 2.204 0 0%
./integration-tests/internal/mother 15.034 15.034 0 0%
./integration-tests/internal/overflow-safety 1.31 1.31 0 0%
./integration-tests/internal/own-code-hash 3.373 3.373 0 0%
./integration-tests/internal/sr25519-verification 0.853 0.853 0 0%
./integration-tests/internal/static-buffer 3.003 3.003 0 0%
./integration-tests/internal/storage-types 16.78 16.78 0 0%
./integration-tests/internal/system-precompile 2.314 2.314 0 0%
./integration-tests/public/bytes 4.847 4.847 0 0%
./integration-tests/public/complex-storage-structures 4.857 4.857 0 0%
./integration-tests/public/conditional-compilation 1.727 1.727 0 0%
./integration-tests/public/contract-invocation 7.952 7.952 0 0%
./integration-tests/public/contract-invocation/contract1 2.081 2.081 0 0%
./integration-tests/public/contract-invocation/contract2 1.996 1.996 0 0%
./integration-tests/public/contract-invocation/virtual_contract 4.406 4.406 0 0%
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.954 1.954 0 0%
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.966 1.966 0 0%
./integration-tests/public/contract-storage 7.624 7.624 0 0%
./integration-tests/public/contract-terminate 1.551 1.551 0 0%
./integration-tests/public/contract-transfer 2.738 2.738 0 0%
./integration-tests/public/contract-xcm 28.631 28.631 0 0%
./integration-tests/public/cross-contract-calls 8.456 8.456 0 0%
./integration-tests/public/cross-contract-calls/other-contract 1.775 1.775 0 0%
./integration-tests/public/custom-allocator 3.275 3.275 0 0%
./integration-tests/public/custom-environment 2.726 2.726 0 0%
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 - 18413 kb : a1, 0, 18413 pr default abi - 18413 kb : a1, 0, 18413 pr sol abi - 18413 kb : a2, 0, 18413 pr all abi - 18413 kb : a3, 0, 18413 #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 - 9161 kb : a1, 0, 9161 pr default abi - 9161 kb : a1, 0, 9161 pr sol abi - 0 kb : a2, 0, 0 pr all abi - 0 kb : a3, 0, 0 #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 - 2202 kb : a1, 0, 2202 pr default abi - 2202 kb : a1, 0, 2202 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 - 1016 kb : a1, 0, 1016 pr default abi - 1016 kb : a1, 0, 1016 pr sol abi - 1118 kb : a2, 0, 1118 pr all abi - 1486 kb : a3, 0, 1486 #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 - 8193 kb : a1, 0, 8193 pr default abi - 8193 kb : a1, 0, 8193 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 - 3600 kb : a1, 0, 3600 pr default abi - 3600 kb : a1, 0, 3600 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 - 2442 kb : a1, 0, 2442 pr default abi - 2442 kb : a1, 0, 2442 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 - 6732 kb : a1, 0, 6732 pr default abi - 6732 kb : a1, 0, 6732 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 - 2059 kb : a1, 0, 2059 pr default abi - 2059 kb : a1, 0, 2059 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 - 10628 kb : a1, 0, 10628 pr default abi - 10628 kb : a1, 0, 10628 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-hostfns : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 2204 kb : a1, 0, 2204 pr default abi - 2204 kb : a1, 0, 2204 pr sol abi - 2129 kb : a2, 0, 2129 pr all abi - 2333 kb : a3, 0, 2333 #nbsp; : a4, 0, 0 section ./integration-tests/internal/mother : a5, 0, 0 v5 default abi - 12681 kb : a1, 0, 12681 master default abi - 15034 kb : a1, 0, 15034 pr default abi - 15034 kb : a1, 0, 15034 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 - 1310 kb : a1, 0, 1310 pr default abi - 1310 kb : a1, 0, 1310 pr sol abi - 2173 kb : a2, 0, 2173 pr all abi - 2671 kb : a3, 0, 2671 #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 - 3373 kb : a1, 0, 3373 pr default abi - 3373 kb : a1, 0, 3373 pr sol abi - 2950 kb : a2, 0, 2950 pr all abi - 4055 kb : a3, 0, 4055 #nbsp; : a4, 0, 0 section ./integration-tests/internal/sr25519-verification : a5, 0, 0 v5 default abi - 1082 kb : a1, 0, 1082 master default abi - 853 kb : a1, 0, 853 pr default abi - 853 kb : a1, 0, 853 pr sol abi - 777 kb : a2, 0, 777 pr all abi - 980 kb : a3, 0, 980 #nbsp; : a4, 0, 0 section ./integration-tests/internal/static-buffer : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 3003 kb : a1, 0, 3003 pr default abi - 3003 kb : a1, 0, 3003 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 - 16780 kb : a1, 0, 16780 pr default abi - 16780 kb : a1, 0, 16780 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 - 2314 kb : a1, 0, 2314 pr default abi - 2314 kb : a1, 0, 2314 pr sol abi - 2243 kb : a2, 0, 2243 pr all abi - 2772 kb : a3, 0, 2772 #nbsp; : a4, 0, 0 section ./integration-tests/public/bytes : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 4847 kb : a1, 0, 4847 pr default abi - 4847 kb : a1, 0, 4847 pr sol abi - 4847 kb : a2, 0, 4847 pr all abi - 7535 kb : a3, 0, 7535 #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 - 4857 kb : a1, 0, 4857 pr default abi - 4857 kb : a1, 0, 4857 pr sol abi - 7499 kb : a2, 0, 7499 pr all abi - 9140 kb : a3, 0, 9140 #nbsp; : a4, 0, 0 section ./integration-tests/public/conditional-compilation : a5, 0, 0 v5 default abi - 1460 kb : a1, 0, 1460 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/contract-invocation : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 7952 kb : a1, 0, 7952 pr default abi - 7952 kb : a1, 0, 7952 pr sol abi - 8740 kb : a2, 0, 8740 pr all abi - 11824 kb : a3, 0, 11824 #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 - 2081 kb : a1, 0, 2081 pr default abi - 2081 kb : a1, 0, 2081 pr sol abi - 2138 kb : a2, 0, 2138 pr all abi - 2892 kb : a3, 0, 2892 #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 - 1996 kb : a1, 0, 1996 pr default abi - 1996 kb : a1, 0, 1996 pr sol abi - 2102 kb : a2, 0, 2102 pr all abi - 2784 kb : a3, 0, 2784 #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 - 4406 kb : a1, 0, 4406 pr default abi - 4406 kb : a1, 0, 4406 pr sol abi - 5539 kb : a2, 0, 5539 pr all abi - 6443 kb : a3, 0, 6443 #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 - 1954 kb : a1, 0, 1954 pr default abi - 1954 kb : a1, 0, 1954 pr sol abi - 2127 kb : a2, 0, 2127 pr all abi - 2521 kb : a3, 0, 2521 #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 - 1966 kb : a1, 0, 1966 pr default abi - 1966 kb : a1, 0, 1966 pr sol abi - 2139 kb : a2, 0, 2139 pr all abi - 2547 kb : a3, 0, 2547 #nbsp; : a4, 0, 0 section ./integration-tests/public/contract-storage : a5, 0, 0 v5 default abi - 7459 kb : a1, 0, 7459 master default abi - 7624 kb : a1, 0, 7624 pr default abi - 7624 kb : a1, 0, 7624 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 - 1551 kb : a1, 0, 1551 pr default abi - 1551 kb : a1, 0, 1551 pr sol abi - 1517 kb : a2, 0, 1517 pr all abi - 1646 kb : a3, 0, 1646 #nbsp; : a4, 0, 0 section ./integration-tests/public/contract-transfer : a5, 0, 0 v5 default abi - 1520 kb : a1, 0, 1520 master default abi - 2738 kb : a1, 0, 2738 pr default abi - 2738 kb : a1, 0, 2738 pr sol abi - 0 kb : a2, 0, 0 pr all abi - 3120 kb : a3, 0, 3120 #nbsp; : a4, 0, 0 section ./integration-tests/public/contract-xcm : a5, 0, 0 v5 default abi - 18805 kb : a1, 0, 18805 master default abi - 28631 kb : a1, 0, 28631 pr default abi - 28631 kb : a1, 0, 28631 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 - 8456 kb : a1, 0, 8456 pr default abi - 8456 kb : a1, 0, 8456 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/other-contract : a5, 0, 0 v5 default abi - 1591 kb : a1, 0, 1591 master default abi - 1775 kb : a1, 0, 1775 pr default abi - 1775 kb : a1, 0, 1775 pr sol abi - 1550 kb : a2, 0, 1550 pr all abi - 2361 kb : a3, 0, 2361 #nbsp; : a4, 0, 0 section ./integration-tests/public/custom-allocator : a5, 0, 0 v5 default abi - 7993 kb : a1, 0, 7993 master default abi - 3275 kb : a1, 0, 3275 pr default abi - 3275 kb : a1, 0, 3275 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 - 2726 kb : a1, 0, 2726 pr default abi - 2726 kb : a1, 0, 2726 pr sol abi - 1738 kb : a2, 0, 1738 pr all abi - 3167 kb : a3, 0, 3167 #nbsp; : a4, 0, 0 section ./integration-tests/public/debugging-strategies : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 4441 kb : a1, 0, 4441 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 0 kb : a2, 0, 0 pr all abi - 0 kb : a3, 0, 0 #nbsp; : a4, 0, 0 section ./integration-tests/public/dns : a5, 0, 0 v5 default abi - 7142 kb : a1, 0, 7142 master default abi - 10126 kb : a1, 0, 10126 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 10407 kb : a2, 0, 10407 pr all abi - 14248 kb : a3, 0, 14248 #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 - 1563 kb : a1, 0, 1563 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1436 kb : a2, 0, 1436 pr all abi - 2049 kb : a3, 0, 2049 #nbsp; : a4, 0, 0 section ./integration-tests/public/erc1155 : a5, 0, 0 v5 default abi - 14566 kb : a1, 0, 14566 master default abi - 20781 kb : a1, 0, 20781 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 0 kb : a2, 0, 0 pr all abi - 35552 kb : a3, 0, 35552 #nbsp; : a4, 0, 0 section ./integration-tests/public/erc20 : a5, 0, 0 v5 default abi - 6993 kb : a1, 0, 6993 master default abi - 10458 kb : a1, 0, 10458 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 12476 kb : a2, 0, 12476 pr all abi - 17292 kb : a3, 0, 17292 #nbsp; : a4, 0, 0 section ./integration-tests/public/erc721 : a5, 0, 0 v5 default abi - 9754 kb : a1, 0, 9754 master default abi - 12039 kb : a1, 0, 12039 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 14999 kb : a2, 0, 14999 pr all abi - 20630 kb : a3, 0, 20630 #nbsp; : a4, 0, 0 section ./integration-tests/public/events : a5, 0, 0 v5 default abi - 4955 kb : a1, 0, 4955 master default abi - 8456 kb : a1, 0, 8456 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 12531 kb : a2, 0, 12531 pr all abi - 17686 kb : a3, 0, 17686 #nbsp; : a4, 0, 0 section ./integration-tests/public/fallible-setter : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 2631 kb : a1, 0, 2631 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2631 kb : a2, 0, 2631 pr all abi - 3172 kb : a3, 0, 3172 #nbsp; : a4, 0, 0 section ./integration-tests/public/flipper : a5, 0, 0 v5 default abi - 1701 kb : a1, 0, 1701 master default abi - 1775 kb : a1, 0, 1775 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1550 kb : a2, 0, 1550 pr all abi - 2361 kb : a3, 0, 2361 #nbsp; : a4, 0, 0 section ./integration-tests/public/fuzz-testing : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 1762 kb : a1, 0, 1762 pr default abi - 0 kb : a1, 0, 0 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 - 1288 kb : a1, 0, 1288 pr default abi - 0 kb : a1, 0, 0 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 - 5725 kb : a1, 0, 5725 pr default abi - 0 kb : a1, 0, 0 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 - 11768 kb : a1, 0, 11768 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 13759 kb : a2, 0, 13759 pr all abi - 12819 kb : a3, 0, 12819 #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 - 1134 kb : a1, 0, 1134 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1455 kb : a2, 0, 1455 pr all abi - 2013 kb : a3, 0, 2013 #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 - 3089 kb : a1, 0, 3089 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 3204 kb : a2, 0, 3204 pr all abi - 3369 kb : a3, 0, 3369 #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 - 3093 kb : a1, 0, 3093 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 3208 kb : a2, 0, 3208 pr all abi - 3381 kb : a3, 0, 3381 #nbsp; : a4, 0, 0 section ./integration-tests/public/multisig : a5, 0, 0 v5 default abi - 21135 kb : a1, 0, 21135 master default abi - 27547 kb : a1, 0, 27547 pr default abi - 0 kb : a1, 0, 0 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 - 7444 kb : a1, 0, 7444 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 11255 kb : a2, 0, 11255 pr all abi - 14879 kb : a3, 0, 14879 #nbsp; : a4, 0, 0 section ./integration-tests/public/precompile : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 5529 kb : a1, 0, 5529 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 7598 kb : a2, 0, 7598 pr all abi - 8693 kb : a3, 0, 8693 #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 - 1778 kb : a1, 0, 1778 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1550 kb : a2, 0, 1550 pr all abi - 2366 kb : a3, 0, 2366 #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 - 3953 kb : a1, 0, 3953 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 5672 kb : a2, 0, 5672 pr all abi - 4380 kb : a3, 0, 4380 #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 - 1799 kb : a1, 0, 1799 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1651 kb : a2, 0, 1651 pr all abi - 2448 kb : a3, 0, 2448 #nbsp; : a4, 0, 0 section ./integration-tests/public/trait-erc20 : a5, 0, 0 v5 default abi - 7286 kb : a1, 0, 7286 master default abi - 10858 kb : a1, 0, 10858 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 12574 kb : a2, 0, 12574 pr all abi - 17587 kb : a3, 0, 17587 #nbsp; : a4, 0, 0 section ./integration-tests/public/trait-flipper : a5, 0, 0 v5 default abi - 1460 kb : a1, 0, 1460 master default abi - 1728 kb : a1, 0, 1728 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1389 kb : a2, 0, 1389 pr all abi - 2128 kb : a3, 0, 2128 #nbsp; : a4, 0, 0 section ./integration-tests/public/trait-incrementer : a5, 0, 0 v5 default abi - 1630 kb : a1, 0, 1630 master default abi - 1870 kb : a1, 0, 1870 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 1820 kb : a2, 0, 1820 pr all abi - 2702 kb : a3, 0, 2702 #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 - 6487 kb : a1, 0, 6487 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 9015 kb : a2, 0, 9015 pr all abi - 10942 kb : a3, 0, 10942 #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 - 2996 kb : a1, 0, 2996 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2491 kb : a2, 0, 2491 pr all abi - 3284 kb : a3, 0, 3284 #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 - 2996 kb : a1, 0, 2996 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2489 kb : a2, 0, 2489 pr all abi - 3285 kb : a3, 0, 3285 #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 - 1723 kb : a1, 0, 1723 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2035 kb : a2, 0, 2035 pr all abi - 2642 kb : a3, 0, 2642 #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 - 1723 kb : a1, 0, 1723 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2035 kb : a2, 0, 2035 pr all abi - 2642 kb : a3, 0, 2642 #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 - 1877 kb : a1, 0, 1877 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2616 kb : a2, 0, 2616 pr all abi - 2584 kb : a3, 0, 2584 #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 - 1901 kb : a1, 0, 1901 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2600 kb : a2, 0, 2600 pr all abi - 3098 kb : a3, 0, 3098 #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 - 1675 kb : a1, 0, 1675 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 2024 kb : a2, 0, 2024 pr all abi - 2581 kb : a3, 0, 2581 #nbsp; : a4, 0, 0 section ./integration-tests/public/wildcard-selector : a5, 0, 0 v5 default abi - 3234 kb : a1, 0, 3234 master default abi - 2948 kb : a1, 0, 2948 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 0 kb : a2, 0, 0 pr all abi - 5211 kb : a3, 0, 5211 #nbsp; : a4, 0, 0 section ./integration-tests/solidity-abi/events : a5, 0, 0 v5 default abi - 0 kb : a1, 0, 0 master default abi - 11813 kb : a1, 0, 11813 pr default abi - 0 kb : a1, 0, 0 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 - 4492 kb : a1, 0, 4492 pr default abi - 0 kb : a1, 0, 0 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 - 2138 kb : a1, 0, 2138 pr default abi - 0 kb : a1, 0, 0 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 - 2063 kb : a1, 0, 2063 pr default abi - 0 kb : a1, 0, 0 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 - 7074 kb : a1, 0, 7074 pr default abi - 0 kb : a1, 0, 0 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 - 5672 kb : a1, 0, 5672 pr default abi - 0 kb : a1, 0, 0 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 - 1651 kb : a1, 0, 1651 pr default abi - 0 kb : a1, 0, 0 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 - 1389 kb : a1, 0, 1389 pr default abi - 0 kb : a1, 0, 0 pr sol abi - 0 kb : a2, 0, 0 pr all abi - 0 kb : a3, 0, 0 #nbsp; : a4, 0, 0 
Loading
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 18.413 18.413 0 0%
./integration-tests/internal/gas-hostfns 1.016 1.118 0.102 10% 📈
./integration-tests/internal/misc-hostfns 2.204 2.129 -0.075 -2% 📉
./integration-tests/internal/overflow-safety 1.31 2.173 0.863 66% 📈
./integration-tests/internal/own-code-hash 3.373 2.95 -0.423 -12% 📉
./integration-tests/internal/sr25519-verification 0.853 0.777 -0.076 -8% 📉
./integration-tests/internal/system-precompile 2.314 2.243 -0.071 -2% 📉
./integration-tests/public/bytes 4.847 4.847 0 0%
./integration-tests/public/complex-storage-structures 4.857 7.499 2.642 54% 📈
./integration-tests/public/contract-invocation 7.952 8.74 0.788 10% 📈
./integration-tests/public/contract-invocation/contract1 2.081 2.138 0.057 3% 📈
./integration-tests/public/contract-invocation/contract2 1.996 2.102 0.106 5% 📈
./integration-tests/public/contract-invocation/virtual_contract 4.406 5.539 1.133 26% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.954 2.127 0.173 9% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.966 2.139 0.173 9% 📈
./integration-tests/public/contract-terminate 1.551 1.517 -0.034 -1% 📉
./integration-tests/public/cross-contract-calls/other-contract 1.775 1.55 -0.225 -12% 📉
./integration-tests/public/custom-environment 2.726 1.738 -0.988 -35% 📉
Show contract sizes: ink! vs all ABI

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

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
./integration-tests/all-abi/events 18.413 18.413 0 0%
./integration-tests/internal/gas-hostfns 1.016 1.486 0.47 46% 📈
./integration-tests/internal/misc-hostfns 2.204 2.333 0.129 6% 📈
./integration-tests/internal/overflow-safety 1.31 2.671 1.361 104% 📈
./integration-tests/internal/own-code-hash 3.373 4.055 0.682 20% 📈
./integration-tests/internal/sr25519-verification 0.853 0.98 0.127 15% 📈
./integration-tests/internal/system-precompile 2.314 2.772 0.458 20% 📈
./integration-tests/public/bytes 4.847 7.535 2.688 55% 📈
./integration-tests/public/complex-storage-structures 4.857 9.14 4.283 88% 📈
./integration-tests/public/contract-invocation 7.952 11.824 3.872 49% 📈
./integration-tests/public/contract-invocation/contract1 2.081 2.892 0.811 39% 📈
./integration-tests/public/contract-invocation/contract2 1.996 2.784 0.788 39% 📈
./integration-tests/public/contract-invocation/virtual_contract 4.406 6.443 2.037 46% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.954 2.521 0.567 29% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.966 2.547 0.581 30% 📈
./integration-tests/public/contract-terminate 1.551 1.646 0.095 6% 📈
./integration-tests/public/contract-transfer 2.738 3.12 0.382 14% 📈
./integration-tests/public/cross-contract-calls/other-contract 1.775 2.361 0.586 33% 📈
./integration-tests/public/custom-environment 2.726 3.167 0.441 16% 📈

Link to the run | Last update: Wed Nov 5 10:20:28 CET 2025

@davidsemakula davidsemakula marked this pull request as ready for review November 3, 2025 19:36
Copy link
Collaborator

@cmichi cmichi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coolio! Are you taking care of ink-docs?

@davidsemakula
Copy link
Collaborator Author

davidsemakula commented Nov 5, 2025

Coolio! Are you taking care of ink-docs?

Yep, there's already a note that this change will happen in a future release of ink! v6 in the docs (see https://github.com/use-ink/ink-docs/blob/master/docs/basics/cross-contract-calling.md?plain=1#L88)
I plan to update that section again after we release this.

@davidsemakula davidsemakula merged commit 8ce4905 into master Nov 5, 2025
30 of 31 checks passed
@davidsemakula davidsemakula deleted the semakula/contract-ref branch November 5, 2025 09:08
@cmichi cmichi mentioned this pull request Nov 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants