Skip to content

feat: uplift dependencies and update to support ink-v6.0.0-alpha #143

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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

chungquantin
Copy link

@chungquantin chungquantin commented Apr 17, 2025

The PR uplift all dependencies to use latest version of ink! crate (v6.0.0) and migrate all code logic to support pallet-revive. Key critical changes made:

  • With the removal of type Debug in ChainExtension, the feature to mock contract calls fail completely and requires alternative approach using tracing API to support the feature.
  • Migrate examples/quick-start-with-drink to test with tracing API instead of decoding debug_message (which is removed in revive).
  • Expected failed test examples/chain-extension due to the private Memory trait in a private wasm module.

Environment Setup

Required rustc version:

stable-aarch64-apple-darwin
rustc 1.86.0 (05f9846f8 2025-03-31)

Examples Tracking

  • examples/contract-events
  • examples/dry-running
  • examples/flipper
  • examples/runtime-interaction
  • examples/multiple-contracts
  • examples/quick-start-with-drink

TO BE FIXED

Aside from all TODOs and deprecated calls of MockExtension, below issues need to be resolved:

  • examples/cross-contract-call-tracing: Consider implement the alternative tracing approach with the new Debugging Strategies
  • examples/mocking: Need to implement alternative approach without type Debug in ChainExtension
  • Issue: fix: chain-extension test with revive drink #140 |examples/chain-extension: Current issue is the Memory trait in pallet-revive is required for the implementation of the chain extension but the Memory trait is in wasm module which is not exported as public. In the chain extension implementation of Pop Network, we forked the pallet-revive and modified it. Probably deprecated in the future with the introduction of precompiles.

* feat: migrate to revive (issue with revive_api)

* feat: migrate to revive for drink and cli

* fix: format

* chore: update Cargo.toml & lock file

* chore: update gitignore and remove .vscode

* fix: flipper example contract

* chore: update lockfile

* fix: example contracts

* fix: cli layout constraint params & example contracts

* chore: description for storage deposit limit

* chore: use ink main branch

* chore: resolve review comments

* chore: add dummy polkavm binary

* fix: call() string parameters

* chore: update multiple-contracts test

* chore: rename read contract code binary method

* chore: add comment

* chore: fix example contracts

* chore: update multiple_contract test

* fix: multiple contracts test

* chore: resolve review comments

* refactor: read_contract_binary
* chore: update dependencies to support ink v6 alpha

* chore: update Cargo.lock

* chore(mock): remove DrinkDebug and intercept calls

* chore(examples): bump lockfile and sync ink! v6
Copy link
Author

Choose a reason for hiding this comment

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

Code does not work as expected because Memory trait is in a private module wasm. Which will be replaced with precompile soon.

@chungquantin
Copy link
Author

chungquantin commented May 8, 2025

Note to the reviewers:

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.

1 participant