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 lock events to tokens pallet #883

Merged
merged 5 commits into from
Jan 30, 2023
Merged

Conversation

sea212
Copy link
Contributor

@sea212 sea212 commented Jan 26, 2023

Fundamental issue: Block indexers and processors like Subsquid have a really hard time to track locks.

This PR mirrors updates within pallet-balances: paritytech/substrate#12287

Difference in respect to paritytech/substrate#12287:

  • A currency_id field was added to the events
  • The lock reason was removed from the events (no differentiation between MISC and FEE reasons)

The tests cases were adjusted to the previously mentioned differences:

Locks = []                          --> [10/DOT]                    // emits Locked(currency_id: DOT, ..., amount=10)
Locks = [10/DOT]                    --> [15/DOT]                    // emits Locked(currency_id: DOT, ..., amount=5)
Locks = [15/DOT]                    --> [15/DOT, 20/BTC]            // emits Locked(currency_id: BTC, ..., amount=20)
Locks = [15/DOT, 20/BTC]            --> [15/DOT, 20/BTC, 10/DOT]    // emits nothing
Locks = [15/DOT, 20/BTC, 10/DOT]    --> [15/DOT, 20/BTC, 12/DOT]    // emits nothing
Locks = [15/DOT, 20/BTC, 12/DOT]    --> [15/DOT, 20/BTC, 10/DOT]    // emits nothing
Locks = [15/DOT, 20/BTC, 10/DOT]    --> [15/DOT, 20/BTC, 20/DOT]    // emits Locked(currency_id: DOT, ..., amount=5)
Locks = [15/DOT, 20/BTC, 20/DOT]    --> [15/DOT, 20/BTC, 16/DOT]    // emits Unlocked(currency_id: DOT, ..., amount = 4)
Locks = [15/DOT, 20/BTC, 16/DOT]    --> [15/DOT, 12/BTC, 16/DOT]    // emits Unlocked(currency_id: BTC, ..., amount = 8)
Locks = [15/DOT, 12/BTC, 16/DOT]    --> [15/DOT, 12/BTC]            // emits Unlocked(currency_id: DOT, ..., amount = 1)

Bonus change: Replace deprecated clippy rule name.

@sea212 sea212 marked this pull request as draft January 26, 2023 14:47
@sea212
Copy link
Contributor Author

sea212 commented Jan 26, 2023

Does anyone know why those two pipelines fail?
https://github.com/open-web3-stack/open-runtime-module-library/actions/runs/4018262443/jobs/6903666151
https://github.com/open-web3-stack/open-runtime-module-library/actions/runs/4018262445/jobs/6903669260

I am unable to reproduce the error locally. Regarding the second workflow, I executed cargo test --all --features=runtime-benchmarks just as the pipeline does, however in my local instance it works perfectly fine. Regarding the first workflow, I executed the exact command used in the GitHub workflow (for CodeCov) and also used same cargo-tarpaulin and rustc version. Can't reproduce this either, works locally perfectly fine 😕

@sea212 sea212 marked this pull request as ready for review January 26, 2023 19:38
@zjb0807
Copy link
Contributor

zjb0807 commented Jan 26, 2023

Does anyone know why those two pipelines fail? https://github.com/open-web3-stack/open-runtime-module-library/actions/runs/4018262443/jobs/6903666151 https://github.com/open-web3-stack/open-runtime-module-library/actions/runs/4018262445/jobs/6903669260

I am unable to reproduce the error locally. Regarding the second workflow, I executed cargo test --all --features=runtime-benchmarks just as the pipeline does, however in my local instance it works perfectly fine. Regarding the first workflow, I executed the exact command used in the GitHub workflow (for CodeCov) and also used same cargo-tarpaulin and rustc version. Can't reproduce this either, works locally perfectly fine 😕

please merge origin/master. I reproduce the error.

@sea212 sea212 marked this pull request as draft January 26, 2023 21:27
@sea212
Copy link
Contributor Author

sea212 commented Jan 27, 2023

please merge origin/master. I reproduce the error.

Thanks fellow enthusiast!
Seems it was too late yesterday, didn't realize that I was on PureStake's fork 🤦‍♂️

@sea212 sea212 marked this pull request as ready for review January 27, 2023 10:23
Copy link
Contributor

@zjb0807 zjb0807 left a comment

Choose a reason for hiding this comment

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

LGTM

@xlc xlc merged commit 2335795 into open-web3-stack:master Jan 30, 2023
@sea212 sea212 deleted the add-lock-events branch March 24, 2023 14:28
devdanco added a commit to gasp-xyz/open-runtime-module-library that referenced this pull request May 25, 2023
* run CI for release branch

* Upgrade polkadot-v0.9.31 (open-web3-stack#830)

* Upgrade polkadot-v0.9.31

* Update authority/src/lib.rs

Co-authored-by: Xiliang Chen <xlchen1291@gmail.com>

* fix tests

Co-authored-by: Xiliang Chen <xlchen1291@gmail.com>

* add CODECOV_TOKEN (open-web3-stack#836)

* claim_rewards should not create empty records (open-web3-stack#835)

* Update Readme (open-web3-stack#837)

* Update Readme

Plasm Network rebranded last year to Astar Network
Source: https://medium.com/astar-network/plasm-rebrands-to-astar-network-in-pursuit-of-becoming-a-polkadot-native-dapp-hub-6db3121c4f13

* Update README.md

Change order

* Token hook refactoring; Posthooks for deposit and transfer (open-web3-stack#834)

* feat(tokens): Refactor hooks into single trait

* feat(tokens): Add post-hooks for Transfer and Deposit

* chore(tokens): improve mutation hook naming

* fix(tokens): PostDeposit hook (open-web3-stack#839)

* fix(tokens): PostDeposit hook

* test(tokens): posthook correctness

* fix(tokens): use `assert` instead of `ensure` in mock posthooks

* Add Centrifuge to users of orml (open-web3-stack#842)

* Add Crust to ORML (open-web3-stack#843)

* refactor: make weight argument in xtokens transfers optional (open-web3-stack#841)

* refactor: make weight argument in xtokens be of type WeightLimit

* refactor: rename dest_weight -> dest_weight_limit

* Update weight-gen template.hbs (open-web3-stack#844)

* prevent nested DelayedOrigin (open-web3-stack#845)

* prevent nested DelayedOrigin

* fix deps

* Update authority/src/tests.rs

Co-authored-by: zjb0807 <zjb0807@qq.com>

* allow nested DelayedOrigin

* update docstring

* typo fix

Co-authored-by: zjb0807 <zjb0807@qq.com>

* Add try-runtime feature for orml-payments (open-web3-stack#846)

* Add try-runtime feature for orml-payments

* Add features

* Update to Polkadot v0.9.32 (open-web3-stack#848)

* Add new for DelayedOrigin (open-web3-stack#849)

* Update README.md (open-web3-stack#851)

* Update README.md

Update modules description

* Update README.md

Further updates on description.

* #xcm polishing #xtokens  README.md (open-web3-stack#856)

* Update github actions (open-web3-stack#855)

* Update github actions

* trigger GitHub actions

* Changed `vested_transfer` extrinsic behavior. (open-web3-stack#857)

* Changed `vested_transfer` extrinsic behavior.
Fixed self-vesting case (`from` == `to`) when it was possible to self-freeze funds above the current account balance.

* added test for self-vesting case

* Upgrade polkadot-v0.9.33 (open-web3-stack#858)

* use explicit call index (open-web3-stack#865)

* Upgrade to polkadot v0.9.36 (open-web3-stack#864)

* build: upgrade to polkadot v0.9.36

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>

* style: fix formatting

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>

* fix: polkadot dependency references

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>

* build: use released cumulus

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>

* fix: make asset_exists return false

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>

* update asset_exists (open-web3-stack#866)

* Fix payments on-idle (open-web3-stack#868)

* fix payments on-idle

* update comment

* Switch to Rust-1.66 (open-web3-stack#869)

* feat: derive MEL for Value enum (open-web3-stack#867)

* feat: impl MEL for Value enum

* fmt: fix

* feat:Make the XcmTransfer trait support transfer_multiasset_with_fee (open-web3-stack#870)

* update bencher deps (open-web3-stack#872)

* add BenchmarkError::Weightless (open-web3-stack#873)

* add BenchmarkError::Weightless

* Update benchmarking/src/lib.rs

Co-authored-by: zjb0807 <zjb0807@qq.com>

Co-authored-by: zjb0807 <zjb0807@qq.com>

* Update jsonrpsee 0.16.2 (open-web3-stack#876)

* Update jsonrpsee 0.16.2

* fix clippy

* fix clippy

* Update README.md (open-web3-stack#879)

Added Mangata and Parallel Finance

* Update README.md (open-web3-stack#880)

Added Moonbeam

* Upgrade polkadot-v0.9.37 (open-web3-stack#882)

* Add lock events to tokens pallet (open-web3-stack#883)

* Implement lock events in update_locks(...)

* Implement lock tests

* Replace depracted clippy rule name

* Move tests into correct test file

* Use correct Event type

* Update xtokens docs (open-web3-stack#885)

* added ajuna network (open-web3-stack#887)

using mainly the orml-vesting ...

* Upgrade polkadot-v0.9.38 (open-web3-stack#886)

* Upgrade polkadot-v0.9.38

* use `as_bounded_slice`

* `latest` instead explicit version

* use `AllCounted` for asset deposit

* Update `asset-registry` tests

* Update `benchmarking` tests

* Update `traits` tests

* Update `unknown-tokens` tests

* Update `xcm-support` tests

* Update `xtokens` tests

* Update `Cargo.dev.toml` pin

* clippy

* Specific version instead `latest`

* Add test `MultiLocation` encoding

* Remove `sp-authorship`

* Update `sp-weights` pin

* Fix runtime-benchmarks

* Add `asset-registry` migration

* clippy

* Assert `StorageVersion`

* Assert multiple migration calls

* AddImpl `OnRuntimeUpgrade`

* Add `unknown-tokens` migration

* Use xcm::v3 instead of latest (open-web3-stack#889)

* max weight fix (open-web3-stack#891)

* XcmTransfer Trait (open-web3-stack#892)

* Add more methods on XcmTransfer trait

* Add Transferred for XcmTransfer

* fix tests

* fix clippy

* fix migration and tests (open-web3-stack#893)

* build: upgrade polkadot to v0.9.39 (open-web3-stack#897)

* Add & clean deprecated (open-web3-stack#895)

* clean deprecated

* add dependencies on RPC

* add deprecated on RPC

* fix clippy

* remove tests

* Expose Xtokens pallet weight (open-web3-stack#898)

* fix unknown-tokens migration (open-web3-stack#899)

* fix unknown-tokens migration

* remove debug print

* Upgrade polkadot to v0.9.40 (open-web3-stack#902)

* Upgrade polkadot to v0.9.40

* add import for Hasher

* replace from_ref_time to from_parts

* fix CI

* remove unnecessary workspace word

* update branch ref

---------

Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
Co-authored-by: Bryan Chen <xlchen1291@gmail.com>
Co-authored-by: zjb0807 <zjb0807@qq.com>
Co-authored-by: wangjj9219 <183318287@qq.com>
Co-authored-by: Maarten <36227274+fiexer@users.noreply.github.com>
Co-authored-by: Daniel Savu <savudani04@yahoo.ro>
Co-authored-by: Miguel Hervas <miguel.hervas.lazaro@gmail.com>
Co-authored-by: Myron <49134743+mmyyrroonn@users.noreply.github.com>
Co-authored-by: sander2 <sanderbosma@gmail.com>
Co-authored-by: Nuno Alexandre <hi@nunoalexandre.com>
Co-authored-by: Lawrence Law - Acala <97002769+Lawrence-Acala@users.noreply.github.com>
Co-authored-by: Dzmitry Lahoda <dzmitry@lahoda.pro>
Co-authored-by: Pavel Orlov <45266194+PraetorP@users.noreply.github.com>
Co-authored-by: Daniel Shiposha <dshiposha@usetech.com>
Co-authored-by: Yaroslav Bolyukin <iam@lach.pw>
Co-authored-by: William Freudenberger <w.freude@icloud.com>
Co-authored-by: NingBo Wang <2536935847@qq.com>
Co-authored-by: Ermal Kaleci <ermalkaleci@gmail.com>
Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>
Co-authored-by: Joshua Cheong <jrc96@cantab.ac.uk>
Co-authored-by: Harald Heckmann <mail@haraldheckmann.de>
Co-authored-by: Cedric Decoster <darkfriend77@users.noreply.github.com>
Co-authored-by: tgmichel <telmo@purestake.com>
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