Closed ascjones closed 5 months ago
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.249 | 9.249 | 0 | 0 | :heavy_minus_sign: |
e2e-runtime-only-backend | 1.901 | 1.901 | 0 | 0 | :heavy_minus_sign: |
lang-err/call-builder-delegate | 2.65 | 2.65 | 0 | 0 | :heavy_minus_sign: |
lang-err/call-builder | 5.571 | 5.571 | 0 | 0 | :heavy_minus_sign: |
lang-err/constructors-return-value | 1.997 | 1.997 | 0 | 0 | :heavy_minus_sign: |
lang-err/contract-ref | 5.062 | 5.062 | 0 | 0 | :heavy_minus_sign: |
lang-err/integration-flipper | 1.827 | 1.827 | 0 | 0 | :heavy_minus_sign: |
mother | 12.753 | 12.753 | 0 | 0 | :heavy_minus_sign: |
sr25519-verification | 1.154 | 1.154 | 0 | 0 | :heavy_minus_sign: |
call-runtime | 2.071 | 2.071 | 0 | 0 | :heavy_minus_sign: |
combined-extension | 2.132 | 2.132 | 0 | 0 | :heavy_minus_sign: |
conditional-compilation | 1.502 | 1.502 | 0 | 0 | :heavy_minus_sign: |
contract-storage | 7.58 | 7.58 | 0 | 0 | :heavy_minus_sign: |
contract-terminate | 1.369 | 1.369 | 0 | 0 | :heavy_minus_sign: |
contract-transfer | 1.731 | 1.731 | 0 | 0 | :heavy_minus_sign: |
cross-contract-calls | 7.732 | 7.732 | 0 | 0 | :heavy_minus_sign: |
cross-contract-calls/other-contract | 1.595 | 1.595 | 0 | 0 | :heavy_minus_sign: |
custom-allocator | 7.787 | 7.787 | 0 | 0 | :heavy_minus_sign: |
custom-environment | 2.158 | 2.158 | 0 | 0 | :heavy_minus_sign: |
dns | 7.355 | 7.355 | 0 | 0 | :heavy_minus_sign: |
e2e-call-runtime | 1.32 | 1.32 | 0 | 0 | :heavy_minus_sign: |
erc1155 | 14.345 | 14.345 | 0 | 0 | :heavy_minus_sign: |
erc20 | 6.955 | 6.955 | 0 | 0 | :heavy_minus_sign: |
erc721 | 10.044 | 10.044 | 0 | 0 | :heavy_minus_sign: |
events | 5.27 | 5.27 | 0 | 0 | :heavy_minus_sign: |
flipper | 1.651 | 1.651 | 0 | 0 | :heavy_minus_sign: |
incrementer | 1.516 | 1.516 | 0 | 0 | :heavy_minus_sign: |
lazyvec | 4.66 | 4.66 | 0 | 0 | :heavy_minus_sign: |
mapping | 8.036 | 8.036 | 0 | 0 | :heavy_minus_sign: |
multi-contract-caller | 6.654 | 6.654 | 0 | 0 | :heavy_minus_sign: |
multi-contract-caller/accumulator | 1.388 | 1.388 | 0 | 0 | :heavy_minus_sign: |
multi-contract-caller/adder | 1.922 | 1.922 | 0 | 0 | :heavy_minus_sign: |
multi-contract-caller/subber | 1.942 | 1.942 | 0 | 0 | :heavy_minus_sign: |
multisig | 21.871 | 21.871 | 0 | 0 | :heavy_minus_sign: |
payment-channel | 5.742 | 5.742 | 0 | 0 | :heavy_minus_sign: |
psp22-extension | 7.083 | 7.083 | 0 | 0 | :heavy_minus_sign: |
rand-extension | 2.977 | 2.977 | 0 | 0 | :heavy_minus_sign: |
runtime-call-contract | 1.596 | 1.596 | 0 | 0 | :heavy_minus_sign: |
static-buffer | 2.578 | 2.578 | 0 | 0 | :heavy_minus_sign: |
trait-dyn-cross-contract-calls | 2.899 | 2.899 | 0 | 0 | :heavy_minus_sign: |
trait-dyn-cross-contract-calls/contracts/incrementer | 1.557 | 1.557 | 0 | 0 | :heavy_minus_sign: |
trait-erc20 | 7.331 | 7.331 | 0 | 0 | :heavy_minus_sign: |
trait-flipper | 1.502 | 1.502 | 0 | 0 | :heavy_minus_sign: |
trait-incrementer | 1.626 | 1.626 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/delegator | 3.96 | 3.96 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/delegator/delegatee | 1.641 | 1.641 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/delegator/delegatee2 | 1.641 | 1.641 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/set-code-hash-migration | 1.755 | 1.755 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/set-code-hash-migration/migration | 1.462 | 1.462 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/set-code-hash-migration/updated-incrementer | 1.909 | 1.909 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/set-code-hash | 1.755 | 1.755 | 0 | 0 | :heavy_minus_sign: |
upgradeable-contracts/set-code-hash/updated-incrementer | 1.733 | 1.733 | 0 | 0 | :heavy_minus_sign: |
wildcard-selector | 2.858 | 2.858 | 0 | 0 | :heavy_minus_sign: |
Link to the run | Last update: Fri Apr 26 14:13:31 CEST 2024
Please also add a changelog entry.
The next foundational layer towards https://github.com/use-ink/ink/issues/1674.
This PR:
Executor
trait which can be implemented in different environments (e.g.pallet-contracts
, see example). TheExecutor
implementation has the responsibility of gathering the other call parameters and performing the environment specific invocation, as well as decoding the result.message_builder!
macro which instantiates the generated message builder instance for use to generate and invoke messages.This PR does not:
pallet-contracts
, it requires a boilerplate impl ofExecutor
(seeintegration-tests
). The reason this is not provided as part of the lib is that it would require matching versions ofpallet-contracts
etc. with the target runtime. Need to think carefully about how best do this for maximum convenience for the user and minimum maintenance cost on theink
side.pallet-contracts
context as it is better to depend on a trait rather than a contract impl, since you are working against an interface.ContractRef
would have to be used for that,CallBuilder
API which provides a nice interface for applying the weight and storage limit parameters etc.These can be resolved in subsequent work. The goal here is to provide a relatively simple non-breaking stepping stone to a possible universal contract invocation API, can use in the cross-contract context, from
pallet-contracts
and frome2e
tests.