Skip to content

Stabilize is_contract, add tests around it, improve docs for it#2654

Merged
davidsemakula merged 4 commits intomasterfrom
cmichi-stabilize-is_contract
Sep 23, 2025
Merged

Stabilize is_contract, add tests around it, improve docs for it#2654
davidsemakula merged 4 commits intomasterfrom
cmichi-stabilize-is_contract

Conversation

@cmichi
Copy link
Copy Markdown
Collaborator

@cmichi cmichi commented Sep 23, 2025

We can stabilize it using the stable pallet-revive host function code_size.

I'll add the code_size host function as a proper function to ink_env in a follow-up PR.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 23, 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 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 19.839 19.852 0.013 0% 📈
./integration-tests/internal/call-builder-return-value 9.162 9.162 0 0%
./integration-tests/internal/e2e-runtime-only-backend 2.202 2.202 0 0%
./integration-tests/internal/lang-err/call-builder 8.478 8.476 -0.002 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 7.007 7.007 0 0%
./integration-tests/internal/lang-err/integration-flipper 2.059 2.059 0 0%
./integration-tests/internal/mapping 10.621 10.62 -0.001 0% 📉
./integration-tests/internal/misc-hostfns 1.932 2.204 0.272 14% 📈
./integration-tests/internal/mother 16.506 16.506 0 0%
./integration-tests/internal/overflow-safety 1.31 1.311 0.001 0% 📈
./integration-tests/internal/sr25519-verification 0.853 0.853 0 0%
./integration-tests/internal/static-buffer 2.76 2.76 0 0%
./integration-tests/internal/storage-types 16.779 16.778 -0.001 0% 📉
./integration-tests/internal/system-precompile 10.621 10.62 -0.001 0% 📉
./integration-tests/public/bytes 5.252 5.252 0 0%
./integration-tests/public/complex-storage-structures 4.858 4.857 -0.001 0% 📉
./integration-tests/public/conditional-compilation 1.727 1.727 0 0%
./integration-tests/public/contract-invocation 8.293 8.293 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.626 4.626 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.63 7.63 0 0%
./integration-tests/public/contract-terminate 1.551 1.551 0 0%
./integration-tests/public/contract-transfer 2.738 2.736 -0.002 0% 📉
./integration-tests/public/cross-contract-calls 8.719 8.718 -0.001 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 3.394 3.394 0 0%
./integration-tests/public/debugging-strategies 4.445 4.445 0 0%
./integration-tests/public/dns 10.423 10.423 0 0%
./integration-tests/public/e2e-call-runtime 1.563 1.563 0 0%
./integration-tests/public/erc1155 20.979 20.98 0.001 0% 📈
./integration-tests/public/erc20 10.897 10.897 0 0%
./integration-tests/public/erc721 12.863 12.863 0 0%
./integration-tests/public/events 8.871 8.872 0.001 0% 📈
./integration-tests/public/fallible-setter 2.972 2.972 0 0%
./integration-tests/public/flipper 1.775 1.775 0 0%
./integration-tests/public/fuzz-testing 1.762 1.762 0 0%
./integration-tests/public/incrementer 1.288 1.288 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 - 19839 kb       : a1, 0, 19839
pr default abi - 19852 kb      : a1, 0, 19852
pr sol abi - 19852 kb      : a2, 0, 19852
pr all abi - 19852 kb     : a3, 0, 19852
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/call-builder-return-value : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 9162 kb       : a1, 0, 9162
pr default abi - 9162 kb      : a1, 0, 9162
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 - 0 kb       : a1, 0, 0
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/lang-err/call-builder : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 8478 kb       : a1, 0, 8478
pr default abi - 8476 kb      : a1, 0, 8476
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 - 0 kb       : a1, 0, 0
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 - 0 kb       : a1, 0, 0
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 - 0 kb       : a1, 0, 0
master default abi - 7007 kb       : a1, 0, 7007
pr default abi - 7007 kb      : a1, 0, 7007
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 - 0 kb       : a1, 0, 0
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 - 10621 kb       : a1, 0, 10621
pr default abi - 10620 kb      : a1, 0, 10620
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 - 1932 kb       : a1, 0, 1932
pr default abi - 2204 kb      : a1, 0, 2204
pr sol abi - 2129 kb      : a2, 0, 2129
pr all abi - 2330 kb     : a3, 0, 2330
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/mother : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 16506 kb       : a1, 0, 16506
pr default abi - 16506 kb      : a1, 0, 16506
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 - 1311 kb      : a1, 0, 1311
pr sol abi - 2619 kb      : a2, 0, 2619
pr all abi - 3112 kb     : a3, 0, 3112
#nbsp; : a4, 0, 0

section  
./integration-tests/internal/sr25519-verification : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
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 - 2760 kb       : a1, 0, 2760
pr default abi - 2760 kb      : a1, 0, 2760
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 - 0 kb       : a1, 0, 0
master default abi - 16779 kb       : a1, 0, 16779
pr default abi - 16778 kb      : a1, 0, 16778
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 - 10621 kb       : a1, 0, 10621
pr default abi - 10620 kb      : a1, 0, 10620
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 - 5252 kb       : a1, 0, 5252
pr default abi - 5252 kb      : a1, 0, 5252
pr sol abi - 5252 kb      : a2, 0, 5252
pr all abi - 8705 kb     : a3, 0, 8705
#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 - 4858 kb       : a1, 0, 4858
pr default abi - 4857 kb      : a1, 0, 4857
pr sol abi - 7850 kb      : a2, 0, 7850
pr all abi - 9492 kb     : a3, 0, 9492
#nbsp; : a4, 0, 0

section  
./integration-tests/public/conditional-compilation : 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/contract-invocation : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 8293 kb       : a1, 0, 8293
pr default abi - 8293 kb      : a1, 0, 8293
pr sol abi - 11267 kb      : a2, 0, 11267
pr all abi - 12697 kb     : a3, 0, 12697
#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 - 2719 kb      : a2, 0, 2719
pr all abi - 3424 kb     : a3, 0, 3424
#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 - 2671 kb      : a2, 0, 2671
pr all abi - 3317 kb     : a3, 0, 3317
#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 - 4626 kb       : a1, 0, 4626
pr default abi - 4626 kb      : a1, 0, 4626
pr sol abi - 7367 kb      : a2, 0, 7367
pr all abi - 7000 kb     : a3, 0, 7000
#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 - 2431 kb      : a2, 0, 2431
pr all abi - 2821 kb     : a3, 0, 2821
#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 - 2443 kb      : a2, 0, 2443
pr all abi - 2848 kb     : a3, 0, 2848
#nbsp; : a4, 0, 0

section  
./integration-tests/public/contract-storage : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 7630 kb       : a1, 0, 7630
pr default abi - 7630 kb      : a1, 0, 7630
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 - 0 kb       : a1, 0, 0
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 - 0 kb       : a1, 0, 0
master default abi - 2738 kb       : a1, 0, 2738
pr default abi - 2736 kb      : a1, 0, 2736
pr sol abi - 0 kb      : a2, 0, 0
pr all abi - 3120 kb     : a3, 0, 3120
#nbsp; : a4, 0, 0

section  
./integration-tests/public/cross-contract-calls : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 8719 kb       : a1, 0, 8719
pr default abi - 8718 kb      : a1, 0, 8718
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 - 0 kb       : a1, 0, 0
master default abi - 1775 kb       : a1, 0, 1775
pr default abi - 1775 kb      : a1, 0, 1775
pr sol abi - 2358 kb      : a2, 0, 2358
pr all abi - 2797 kb     : a3, 0, 2797
#nbsp; : a4, 0, 0

section  
./integration-tests/public/custom-allocator : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
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 - 0 kb       : a1, 0, 0
master default abi - 3394 kb       : a1, 0, 3394
pr default abi - 3394 kb      : a1, 0, 3394
pr sol abi - 1738 kb      : a2, 0, 1738
pr all abi - 3845 kb     : a3, 0, 3845
#nbsp; : a4, 0, 0

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

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

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

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

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

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

section  
./integration-tests/public/events : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 8871 kb       : a1, 0, 8871
pr default abi - 8872 kb      : a1, 0, 8872
pr sol abi - 12911 kb      : a2, 0, 12911
pr all abi - 19183 kb     : a3, 0, 19183
#nbsp; : a4, 0, 0

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

section  
./integration-tests/public/flipper : a5, 0, 0
v5 default abi - 0 kb       : a1, 0, 0
master default abi - 1775 kb       : a1, 0, 1775
pr default abi - 1775 kb      : a1, 0, 1775
pr sol abi - 2358 kb      : a2, 0, 2358
pr all abi - 2797 kb     : a3, 0, 2797
#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 - 1762 kb      : a1, 0, 1762
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 - 0 kb       : a1, 0, 0
master default abi - 1288 kb       : a1, 0, 1288
pr default abi - 1288 kb      : a1, 0, 1288
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 19.852 19.852 0 0%
./integration-tests/internal/misc-hostfns 2.204 2.129 -0.075 -2% 📉
./integration-tests/internal/overflow-safety 1.311 2.619 1.308 100% 📈
./integration-tests/internal/sr25519-verification 0.853 0.777 -0.076 -8% 📉
./integration-tests/public/bytes 5.252 5.252 0 0%
./integration-tests/public/complex-storage-structures 4.857 7.85 2.993 62% 📈
./integration-tests/public/contract-invocation 8.293 11.267 2.974 36% 📈
./integration-tests/public/contract-invocation/contract1 2.081 2.719 0.638 31% 📈
./integration-tests/public/contract-invocation/contract2 1.996 2.671 0.675 34% 📈
./integration-tests/public/contract-invocation/virtual_contract 4.626 7.367 2.741 59% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.954 2.431 0.477 24% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.966 2.443 0.477 24% 📈
./integration-tests/public/contract-terminate 1.551 1.517 -0.034 -1% 📉
./integration-tests/public/cross-contract-calls/other-contract 1.775 2.358 0.583 33% 📈
./integration-tests/public/custom-environment 3.394 1.738 -1.656 -48% 📉
./integration-tests/public/debugging-strategies 4.445 5.143 0.698 16% 📈
./integration-tests/public/e2e-call-runtime 1.563 1.905 0.342 22% 📈
./integration-tests/public/events 8.872 12.911 4.039 46% 📈
./integration-tests/public/fallible-setter 2.972 2.972 0 0%
./integration-tests/public/flipper 1.775 2.358 0.583 33% 📈
./integration-tests/public/multi-contract-caller 11.926 16.282 4.356 37% 📈
./integration-tests/public/multi-contract-caller/accumulator 1.134 2.236 1.102 97% 📈
./integration-tests/public/multi-contract-caller/adder 3.168 5.06 1.892 60% 📈
./integration-tests/public/multi-contract-caller/subber 3.172 5.068 1.896 60% 📈
./integration-tests/public/own-code-hash 3.065 2.972 -0.093 -2% 📉
./integration-tests/public/precompile 7.861 9.613 1.752 22% 📈
./integration-tests/public/runtime-call-contract 1.778 2.358 0.58 33% 📈
./integration-tests/public/trait-dyn-cross-contract-calls 3.96 6.037 2.077 52% 📈
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 1.799 2.353 0.554 31% 📈
./integration-tests/public/trait-flipper 1.728 2.245 0.517 30% 📈
./integration-tests/public/trait-incrementer 1.87 2.522 0.652 35% 📈
./integration-tests/public/upgradeable-contracts/delegator 6.452 9.624 3.172 49% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee 2.849 2.699 -0.15 -4% 📉
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 2.849 2.7 -0.149 -4% 📉
./integration-tests/public/upgradeable-contracts/set-code-hash 1.723 2.397 0.674 39% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 1.723 2.397 0.674 39% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 1.877 2.616 0.739 39% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.901 2.946 1.045 55% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 1.675 2.381 0.706 42% 📈
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 19.852 19.852 0 0%
./integration-tests/internal/misc-hostfns 2.204 2.33 0.126 6% 📈
./integration-tests/internal/overflow-safety 1.311 3.112 1.801 137% 📈
./integration-tests/internal/sr25519-verification 0.853 0.98 0.127 15% 📈
./integration-tests/public/bytes 5.252 8.705 3.453 66% 📈
./integration-tests/public/complex-storage-structures 4.857 9.492 4.635 95% 📈
./integration-tests/public/contract-invocation 8.293 12.697 4.404 53% 📈
./integration-tests/public/contract-invocation/contract1 2.081 3.424 1.343 65% 📈
./integration-tests/public/contract-invocation/contract2 1.996 3.317 1.321 66% 📈
./integration-tests/public/contract-invocation/virtual_contract 4.626 7 2.374 51% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver1 1.954 2.821 0.867 44% 📈
./integration-tests/public/contract-invocation/virtual_contract_ver2 1.966 2.848 0.882 45% 📈
./integration-tests/public/contract-terminate 1.551 1.646 0.095 6% 📈
./integration-tests/public/contract-transfer 2.736 3.12 0.384 14% 📈
./integration-tests/public/cross-contract-calls/other-contract 1.775 2.797 1.022 58% 📈
./integration-tests/public/custom-environment 3.394 3.845 0.451 13% 📈
./integration-tests/public/debugging-strategies 4.445 5.829 1.384 31% 📈
./integration-tests/public/e2e-call-runtime 1.563 2.365 0.802 51% 📈
./integration-tests/public/events 8.872 19.183 10.311 116% 📈
./integration-tests/public/fallible-setter 2.972 3.514 0.542 18% 📈
./integration-tests/public/flipper 1.775 2.797 1.022 58% 📈
./integration-tests/public/multi-contract-caller 11.926 13.139 1.213 10% 📈
./integration-tests/public/multi-contract-caller/accumulator 1.134 2.794 1.66 146% 📈
./integration-tests/public/multi-contract-caller/adder 3.168 3.444 0.276 9% 📈
./integration-tests/public/multi-contract-caller/subber 3.172 3.462 0.29 9% 📈
./integration-tests/public/own-code-hash 3.065 3.621 0.556 18% 📈
./integration-tests/public/precompile 7.861 10.722 2.861 36% 📈
./integration-tests/public/runtime-call-contract 1.778 2.801 1.023 58% 📈
./integration-tests/public/trait-dyn-cross-contract-calls 3.96 4.769 0.809 20% 📈
./integration-tests/public/trait-dyn-cross-contract-calls/contracts/incrementer 1.799 2.794 0.995 55% 📈
./integration-tests/public/trait-flipper 1.728 2.611 0.883 51% 📈
./integration-tests/public/trait-incrementer 1.87 3.048 1.178 63% 📈
./integration-tests/public/upgradeable-contracts/delegator 6.452 11.588 5.136 80% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee 2.849 3.464 0.615 22% 📈
./integration-tests/public/upgradeable-contracts/delegator/delegatee2 2.849 3.465 0.616 22% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash 1.723 2.999 1.276 74% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration 1.723 2.999 1.276 74% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/migration 1.877 2.584 0.707 38% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.901 3.443 1.542 81% 📈
./integration-tests/public/upgradeable-contracts/set-code-hash/updated-incrementer 1.675 2.938 1.263 75% 📈
./integration-tests/public/wildcard-selector 2.948 5.211 2.263 77% 📈

Link to the run | Last update: Tue Sep 23 22:42:03 CEST 2025

Copy link
Copy Markdown
Collaborator

@davidsemakula davidsemakula left a comment

Choose a reason for hiding this comment

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

LGTM!

Comment thread crates/env/src/engine/on_chain/pallet_revive.rs Outdated
Co-authored-by: David Semakula <davidsemakula@users.noreply.github.com>
@davidsemakula davidsemakula merged commit 66b4d24 into master Sep 23, 2025
36 checks passed
@davidsemakula davidsemakula deleted the cmichi-stabilize-is_contract branch September 23, 2025 20:45
@cmichi cmichi mentioned this pull request Oct 30, 2025
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