Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add integration-test for calling a contract from a runtime pallet #2189

Merged
merged 21 commits into from
Apr 8, 2024

Conversation

ascjones
Copy link
Collaborator

@ascjones ascjones commented Apr 5, 2024

Adapted from (and superseding paritytech/substrate-contracts-node#228). It belongs better here, now that we can create our own "drink" style in process runtimes for testing.

A foundational step towards #1674, developing an API for calling into a contract from the runtime.

This PR

  • adds a new pallet contract-caller which allows calling into a flipper contract
  • creates a new sandbox runtime with the pallet attached (required modifying the create_sandbox! macro)
  • uses the existing available API in ink to construct the call for the contract
  • adds the flipper contract with a trait and an e2e test which demonstrates it working: instantiates the contract, invokes the pallet, queries the modified state of the contract.

The next step (in progress) is to work and iterate on the ink API itself, which will be a follow up PR

@codecov-commenter
Copy link

codecov-commenter commented Apr 5, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 61.27%. Comparing base (26ac989) to head (68163d5).
Report is 7 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2189   +/-   ##
=======================================
  Coverage   61.27%   61.27%           
=======================================
  Files         139      139           
  Lines        5709     5709           
  Branches     2421     2421           
=======================================
  Hits         3498     3498           
  Misses       2211     2211           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Apr 8, 2024

🦑 📈 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.249 9.249 0 0
e2e-runtime-only-backend 1.901 1.901 0 0
lang-err/call-builder-delegate 2.65 2.65 0 0
lang-err/call-builder 5.571 5.571 0 0
lang-err/constructors-return-value 1.997 1.997 0 0
lang-err/contract-ref 5.062 5.062 0 0
lang-err/integration-flipper 1.827 1.827 0 0
mother 12.753 12.753 0 0
sr25519-verification 1.154 1.154 0 0
call-runtime 2.071 2.071 0 0
combined-extension 2.149 2.149 0 0
conditional-compilation 1.502 1.502 0 0
contract-storage 7.58 7.58 0 0
contract-terminate 1.369 1.369 0 0
contract-transfer 1.731 1.731 0 0
cross-contract-calls 7.732 7.732 0 0
cross-contract-calls/other-contract 1.595 1.595 0 0
custom-allocator 7.787 7.787 0 0
custom-environment 2.158 2.158 0 0
dns 7.355 7.355 0 0
e2e-call-runtime 1.32 1.32 0 0
erc1155 14.345 14.345 0 0
erc20 6.955 6.955 0 0
erc721 10.044 10.044 0 0
events 5.27 5.27 0 0
flipper 1.651 1.651 0 0
incrementer 1.516 1.516 0 0
lazyvec 4.66 4.66 0 0
mapping 8.036 8.036 0 0
multi-contract-caller 6.654 6.654 0 0
multi-contract-caller/accumulator 1.388 1.388 0 0
multi-contract-caller/adder 1.922 1.922 0 0
multi-contract-caller/subber 1.942 1.942 0 0
multisig 21.871 21.871 0 0
payment-channel 5.742 5.742 0 0
psp22-extension 7.083 7.083 0 0
rand-extension 2.977 2.977 0 0
static-buffer 2.578 2.578 0 0
trait-dyn-cross-contract-calls 2.899 2.899 0 0
trait-dyn-cross-contract-calls/contracts/incrementer 1.557 1.557 0 0
trait-erc20 7.331 7.331 0 0
trait-flipper 1.502 1.502 0 0
trait-incrementer 1.626 1.626 0 0
upgradeable-contracts/delegator 3.96 3.96 0 0
upgradeable-contracts/delegator/delegatee 1.641 1.641 0 0
upgradeable-contracts/delegator/delegatee2 1.641 1.641 0 0
upgradeable-contracts/set-code-hash-migration 1.755 1.755 0 0
upgradeable-contracts/set-code-hash-migration/migration 1.462 1.462 0 0
upgradeable-contracts/set-code-hash-migration/updated-incrementer 1.909 1.909 0 0
upgradeable-contracts/set-code-hash 1.755 1.755 0 0
upgradeable-contracts/set-code-hash/updated-incrementer 1.733 1.733 0 0
wildcard-selector 2.858 2.858 0 0

Link to the run | Last update: Mon Apr 8 13:26:01 CEST 2024

@ascjones ascjones merged commit 06914b0 into master Apr 8, 2024
34 checks passed
@ascjones ascjones deleted the aj/call-contract-from-runtime branch April 8, 2024 11:37
@cmichi cmichi mentioned this pull request Nov 28, 2024
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.

3 participants