use-ink / ink

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

`delegate_dependency` api calls #2076

Closed ascjones closed 6 months ago

ascjones commented 7 months ago

Adds support for two new host functions

Having a delegate dependency allows contracts to safely delegate to another code_hash with the guarantee that it cannot be deleted. See https://github.com/paritytech/substrate/pull/14079.

I have modified the upgradeable-contracts/delegator integration test to demonstrate these new calls. For that purpose I have also added remove_code extrinsic to the e2e client.

:yellow_circle: Requires version of pallet_contracts including https://github.com/paritytech/polkadot-sdk/commit/d250a6e4270a77f28e2737a4faa3fb78c8ea7a85

codecov-commenter commented 7 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 53.67%. Comparing base (1e46971) to head (d20cd52).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #2076 +/- ## ========================================== + Coverage 53.64% 53.67% +0.02% ========================================== Files 224 224 Lines 7046 7046 Branches 3118 3118 ========================================== + Hits 3780 3782 +2 + Misses 3266 3264 -2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 7 months ago

🦑 📈 ink! Example Contracts ‒ Changes Report 📉 🦑

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

Contract Upstream Size (kB) PR Size (kB) Diff (kB) Diff (%) Change
call-builder-return-value 9.237 9.237 0 0 :heavy_minus_sign:
call-runtime 2.061 2.061 0 0 :heavy_minus_sign:
combined-extension 2.12 2.12 0 0 :heavy_minus_sign:
conditional-compilation 1.49 1.49 0 0 :heavy_minus_sign:
contract-storage 7.568 7.568 0 0 :heavy_minus_sign:
contract-terminate 1.329 1.329 0 0 :heavy_minus_sign:
contract-transfer 1.689 1.689 0 0 :heavy_minus_sign:
cross-contract-calls 5.835 5.835 0 0 :heavy_minus_sign:
cross-contract-calls/other-contract 1.583 1.583 0 0 :heavy_minus_sign:
custom-allocator 7.775 7.775 0 0 :heavy_minus_sign:
custom-environment 2.146 2.146 0 0 :heavy_minus_sign:
dns 7.318 7.318 0 0 :heavy_minus_sign:
e2e-call-runtime 1.296 1.296 0 0 :heavy_minus_sign:
e2e-runtime-only-backend 1.881 1.881 0 0 :heavy_minus_sign:
erc1155 14.308 14.308 0 0 :heavy_minus_sign:
erc20 6.918 6.918 0 0 :heavy_minus_sign:
erc721 10.007 10.007 0 0 :heavy_minus_sign:
events 5.258 5.258 0 0 :heavy_minus_sign:
flipper 1.639 1.639 0 0 :heavy_minus_sign:
incrementer 1.504 1.504 0 0 :heavy_minus_sign:
lang-err-integration-tests/call-builder-delegate 2.638 2.638 0 0 :heavy_minus_sign:
lang-err-integration-tests/call-builder 5.354 5.354 0 0 :heavy_minus_sign:
lang-err-integration-tests/constructors-return-value 1.985 1.985 0 0 :heavy_minus_sign:
lang-err-integration-tests/contract-ref 4.753 4.753 0 0 :heavy_minus_sign:
lang-err-integration-tests/integration-flipper 1.815 1.815 0 0 :heavy_minus_sign:
lazyvec-integration-test 4.616 4.616 0 0 :heavy_minus_sign:
mapping-integration-tests 7.999 7.999 0 0 :heavy_minus_sign:
mother 12.741 12.741 0 0 :heavy_minus_sign:
multi-contract-caller 6.313 6.313 0 0 :heavy_minus_sign:
multi-contract-caller/accumulator 1.378 1.378 0 0 :heavy_minus_sign:
multi-contract-caller/adder 1.912 1.912 0 0 :heavy_minus_sign:
multi-contract-caller/subber 1.932 1.932 0 0 :heavy_minus_sign:
multisig 21.821 21.821 0 0 :heavy_minus_sign:
payment-channel 5.659 5.659 0 0 :heavy_minus_sign:
psp22-extension 7.071 7.071 0 0 :heavy_minus_sign:
rand-extension 2.965 2.965 0 0 :heavy_minus_sign:
sr25519-verification 1.142 1.142 0 0 :heavy_minus_sign:
static-buffer 1.654 1.654 0 0 :heavy_minus_sign:
trait-dyn-cross-contract-calls 2.887 2.887 0 0 :heavy_minus_sign:
trait-dyn-cross-contract-calls/contracts/incrementer 1.545 1.545 0 0 :heavy_minus_sign:
trait-erc20 7.294 7.294 0 0 :heavy_minus_sign:
trait-flipper 1.49 1.49 0 0 :heavy_minus_sign:
trait-incrementer 1.614 1.614 0 0 :heavy_minus_sign:
upgradeable-contracts/delegator 3.928 3.928 0 0 :heavy_minus_sign:
upgradeable-contracts/delegator/delegatee 1.609 1.609 0 0 :heavy_minus_sign:
upgradeable-contracts/delegator/delegatee2 1.609 1.609 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash-migration 1.743 1.743 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash-migration/migration 1.45 1.45 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.897 1.897 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash 1.743 1.743 0 0 :heavy_minus_sign:
upgradeable-contracts/set-code-hash/updated-incrementer 1.721 1.721 0 0 :heavy_minus_sign:
wildcard-selector 2.846 2.846 0 0 :heavy_minus_sign:

Link to the run | Last update: Fri Feb 23 19:33:22 CET 2024