Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Add CallbackHandle to pallet-assets #12307

Merged

Conversation

Dinonard
Copy link
Contributor

@Dinonard Dinonard commented Sep 20, 2022

This PR adds an option to register callbacks for pallet-assets which are invoked when a new asset is created or an existing one destroyed.

It's a simple change but requires a small runtime code update.
Benchmarks shouldn't be impacted in case default empty implementation is used.

cumulus companion: paritytech/cumulus#1947

Closes #12279

TODO

  • unit test
  • Companion PR

@cla-bot-2021
Copy link

cla-bot-2021 bot commented Sep 20, 2022

User @Dinonard, please sign the CLA here.

@Dinonard Dinonard marked this pull request as ready for review September 20, 2022 08:44
@kianenigma kianenigma added the A0-please_review Pull request needs code review. label Sep 20, 2022
@Dinonard
Copy link
Contributor Author

Any comment maybe? 🙂

I'd like to jump on UTs and companion PRs if there are no objections (I know the change is minimal).

@tonyalaribe
Copy link
Contributor

@Dinonard Thanks for making this PR!
I've thinking a bit about this and it raises two questions:

  1. Is this not a usecase that could be covered by subscribing to the generated events?
  2. How will these callbacks interact with extrinsic weights? For eg, what if the caller of the function does very expensive calculations or storage operations in the callback? Won't we be unable to generate a correct weight in that state? And won't that be a possible attack vector?

cc @joepetrowski @jsidorenko

@Dinonard
Copy link
Contributor Author

Dinonard commented Oct 9, 2022

Hi @tonyalaribe!

  1. Is this not a usecase that could be covered by subscribing to the generated events?

Event subscription is for interacting with the client, it's not part of the state transition function, so I don't believe this is applicable here.

  1. How will these callbacks interact with extrinsic weights?

In case current pallet-assets users don't use this callback, they can just keep the weight as they are. In case they decide to introduce new custom logic, they have to rerun the benchmarks themselves and use the new generated weights instead.

Copy link
Member

@ggwpez ggwpez left a comment

Choose a reason for hiding this comment

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

Seems fine to have.

frame/assets/src/functions.rs Show resolved Hide resolved
@ggwpez ggwpez added B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. D9-needsaudit 👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited B7-runtimenoteworthy and removed B0-silent Changes should not be mentioned in any release notes labels Oct 11, 2022
Copy link
Contributor

@jsidorenko jsidorenko left a comment

Choose a reason for hiding this comment

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

👍


Balances::make_free_balance_be(&1, 100);
assert_ok!(Assets::create(Origin::signed(1), 0, 1, 1));
assert!(storage::get(b"asset_created").is_some());
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe check that is actually true, and not just that it exists?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could do that, the nature of the check is that it's None vs Some.
In that regard, perhaps just changing the type to () would be better.

@ggwpez
Copy link
Member

ggwpez commented Oct 27, 2022

I put it into the audit queue.

@Dinonard
Copy link
Contributor Author

@ggwpez sorry if this is a silly question, but could you tell me if and what I can do next?

Should I prepare cumulus companion?
I see that contributing guide references polkadot companions, doesn't mention cumulus though.

@Dinonard Dinonard force-pushed the feature/pallet-assets-with-callback branch from 53385e6 to d521b9c Compare December 5, 2022 15:56
@ggwpez
Copy link
Member

ggwpez commented Dec 5, 2022

@ggwpez sorry if this is a silly question, but could you tell me if and what I can do next?

Should I prepare cumulus companion? I see that contributing guide references polkadot companions, doesn't mention cumulus though.

Sorry did not see.
We are waiting for audit. I will give them another ping. Better not change any code anymore then.
Your Cumulus companion looks good! Exactly how its done 😆

PS: Please dont force push - otherwise its difficult to see the change. You can just use git merge origin/master after pulling master.

pub struct AssetsCallbackHandle;
impl AssetsCallback<AssetId, AccountId> for AssetsCallbackHandle {
fn created(_id: &AssetId, _owner: &AccountId) {
storage::set(b"asset_created", &().encode());
Copy link
Member

Choose a reason for hiding this comment

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

You can setup some helpers in your mock.rs for this:

frame_support::parameter_types! {
	pub storage AssetCreated: bool = false;
	pub storage AssetDestroyed: bool = false;
}

And then use them like AssetCreated::{get, set}. They are also automatically reset by new_test_ext.

@paritytech-processbot
Copy link

Error: Github API says "Allow edits from maintainers" is not enabled for paritytech/cumulus#1947. The bot would use that permission to push the lockfile update after merging this PR. Please check https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.

@Dinonard
Copy link
Contributor Author

Dinonard commented Dec 20, 2022

Can this be merged? 🙂

@ggwpez
Copy link
Member

ggwpez commented Dec 20, 2022

bot merge

@paritytech-processbot
Copy link

Error: Github API says "Allow edits from maintainers" is not enabled for paritytech/cumulus#1947. The bot would use that permission to push the lockfile update after merging this PR. Please check https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.

@ggwpez
Copy link
Member

ggwpez commented Dec 20, 2022

Can this be merged? slightly_smiling_face

@Dinonard Well, i tried. You see the error message from the bot:

Error: Github API says "Allow edits from maintainers" is not enabled for paritytech/cumulus#1947. The bot would use that permission to push the lockfile update after merging this PR. Please check https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.

@Dinonard
Copy link
Contributor Author

@Dinonard Well, i tried. You see the error message from the bot:

Thanks!
Not sure what to make of that error but in cumulus companion it says:

Rule "Runtime files" needs in total 2 DISTINCT approvals, but 1 were given.

Quite strange given that that there are two distinct approvals.

@joepetrowski
Copy link
Contributor

Quite strange given that that there are two distinct approvals.

You need another approval from someone in the polkadot-review group.

@ggwpez
Copy link
Member

ggwpez commented Dec 21, 2022

bot merge

@paritytech-processbot
Copy link

Error: Github API says "Allow edits from maintainers" is not enabled for paritytech/cumulus#1947. The bot would use that permission to push the lockfile update after merging this PR. Please check https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork.

@ggwpez
Copy link
Member

ggwpez commented Dec 21, 2022

You still did not update the Cumulus PR to be edit-able by maintainers @Dinonard

@hoonsubin
Copy link
Contributor

hoonsubin commented Dec 21, 2022

You still did not update the Cumulus PR to be edit-able by maintainers @Dinonard

Do you know how we can enable "allow edits by maintainers" from a fork that lives under an org account? This thread suggests that that is not possible. Worst case, we'll have to close this PR and open a new one from an individual account fork, or you manually merge this.

@ggwpez
Copy link
Member

ggwpez commented Dec 21, 2022

…or you manually merge this.

Yea. Then we know this for the future.

@ggwpez ggwpez merged commit 8e76398 into paritytech:master Dec 21, 2022
@hoonsubin hoonsubin deleted the feature/pallet-assets-with-callback branch December 21, 2022 13:06
@Dinonard
Copy link
Contributor Author

…or you manually merge this.

Yea. Then we know this for the future.

Thanks!

I initially checked with @hoonsubin since I thought it might be due to me not having admin privileges under AstarNetwork/cumulus.

Should I modify the companion PR by updating the .lock file to point to latest master?

@@ -1478,6 +1478,7 @@ impl pallet_assets::Config for Runtime {
type StringLimit = StringLimit;
type Freezer = ();
type Extra = ();
type CallbackHandle = ();
Copy link
Contributor

Choose a reason for hiding this comment

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

(Sorry am late to the party.), was just wondering if OnCreated = (); OnDestroyed = () might make it a bit more similar to other pallet callbacks?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

My idea was to keep it simple by only having one type but I do like your suggestion. It's more verbose :)

@Polkadot-Forum
Copy link

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:

https://forum.polkadot.network/t/polkadot-release-analysis-v0-9-37/1736/1

jiguantong pushed a commit to darwinia-network/darwinia-2.0 that referenced this pull request Feb 8, 2023
AurevoirXavier added a commit to darwinia-network/darwinia-2.0 that referenced this pull request Feb 15, 2023
* Anchor polkadot-v0.9.37

* Companion for paritytech/substrate#12307

* Companion for paritytech/cumulus#2057

* Use prepare branch for test

* Companion for polkadot-evm/frontier#981

* Remove collator selection in bench

* Fix BenchmarkHelper

* Fix compile

* Format

* Fix compile

* Fix compile feature benchmark

* Fix test

* Format toml

* Format

* Pangoro2 0.9.37

* Fix try-runtime

* Fix try-runtime cmd

* Format

* Fix review

* Use `Vec`

* Typo

---------

Co-authored-by: Xavier Lau <[email protected]>
ltfschoen pushed a commit to ltfschoen/substrate that referenced this pull request Feb 22, 2023
* Add CallbackHandle to pallet-assets

* Address review comments

* Add use for sp_io::storage

* Rebase & review comments

* Fix UT

Co-authored-by: Hoon Kim <[email protected]>
ark0f pushed a commit to gear-tech/substrate that referenced this pull request Feb 27, 2023
* Add CallbackHandle to pallet-assets

* Address review comments

* Add use for sp_io::storage

* Rebase & review comments

* Fix UT

Co-authored-by: Hoon Kim <[email protected]>
AurevoirXavier added a commit to darwinia-network/darwinia that referenced this pull request Mar 28, 2023
* Darwinia 2.0

* Darwinia shell chain (#27)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <[email protected]>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* Enable `kusama-native`, `rococo-native`

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Guantong <[email protected]>

* Docs & formatting (#33)

* Add EVM stuff (#30)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* Add frontier deps without fork!

* License

* Add pallets to runtime

* Benchmarks

* Append command part

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* Adapt main

* Delete duplicated consts

* Hack rpc

* Client compile fix

* Fix client

* Move to ethereum mod

* Add more precompile

* Fix some issue

* Solve conflict

* Merge issues

* Format

* Add basic code for precompiles

* Update EthRpcConfig

* Use Hashing type

* Foramt issue

* Adjust service config

* Add evm, ethereum feature

* Add missing features

* Move const

* Doc

* Format

* Format

* Format

* Format

* Format

* Safer truncated

* Clean importing

* Suppress warnings

* Remove empty line

* Clean importing

* Clean importing

* Format

* Clean importing

* Restructure

Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: Guantong <[email protected]>

* Polish RPC & service (#36)

* Use full path

* Abstract APIs & types

* Format

* Extract darwinia-runtime (#32)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <[email protected]>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* init

* adjust structure & fix compile

* Move`type Barrier` out of `common` because of different runtimes may require different barriers

* Add required xcm barriers

* format

* remove redundant files

* format

* format

* try fix ci

* merge main

* fix ci

* Format

* remove unused dependencies

* format

* format

* format

* Format

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Polish service (#38)

* use full path

* RuntimeApi

Co-authored-by: Xavier Lau <[email protected]>

* Enable `FrontierDb` subcommand (#37)

* Refactor `new_partial`

* Try fix compile

* Update `new_partial`

* Yeah, make compiler happy

* Code clean

* Something about command

* Resolve conflict

* Adapt for main style

* Self review

* Ready for review

* Revert full-path in command mod

* Code cleaning

Co-authored-by: Xavier Lau <[email protected]>

* Use zero existential deposit (#48)

* Update ED

* Update `candidacy_bond`

* Add messages-substrate deps (#49)

* add messages-substrate deps

* fix ci

* add messages-substrate deps

* fix ci

* update messages-substrate deps

* update cargo.lock

* Format

Co-authored-by: Xavier Lau <[email protected]>

* Process system and balances state (#39)

* Process state part.1

* More detail

* Take storages

* Take KV

* Merge balances

* Extract balance lock

* Format

* Flatten account

* Preprocess storage key

* Fix properties

* Add shell config

* Modularize processor

* Calculate total issuance

* Recover nonce

* Add darwinia's precompiles (#50)

* Use `H160` as `AccountId` (#55)

* Configure `H160` for runtime

* Configure `H160` genesis

Signed-off-by: Xavier Lau <[email protected]>

* Docs

* Improve code

* Add missing features

* Format and enable missing features for #50

* Format

* Fix evm config

* Revert the rename

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>

* Testnet preparation (#57)

* More testing tokens

* Update runtime version

* Correct name

* Adjust genesis accounts (#59)

* Adjust genesis accounts

* Docs

* Typo

* Adjust runtime and add pallets (#60)

* Adjust runtime and add sudo

* Adjust parameter types and add vesting

* Fix compile

* Add utility

* Add collective, elections-phragmen, identity and treasury

* Add preimage and scheduler

* Add democracy and membership

* Add multisig and proxy

* License

* License

* Set balances's index to 5

* Code cleaning

* Crab & Pangolin Runtime (#56)

* Add assets component (#69)

* Add asset pallet

* Add asset precompile

* Add precompile interface

* Impl all asset precompile interfaces

* Self review

* Code clean

* Add mock file

* Fix test compile

* Add test 1

* Add test 2

* Add test 3

* Add test 4

* Finish test

* Add another type

* Update asset origin

* Fix CI

* Move out from Others

* Add asset to other runtimes

* Bridge related pallets (#70)

* Copy from Crab Parachain

* Replace Crab Parachain > Darwinia

* bridge pallets, many errors need to fix

� Conflicts:
�	Cargo.lock
�	runtime/common/Cargo.toml
�	runtime/darwinia/src/pallets/mod.rs

* Add fee_market

� Conflicts:
�	runtime/common/Cargo.toml

* Update deps

* Update deps

* Add bridge related pallets to darwinia

* Add bridge related pallets to crab

* format

* Update deps

* review

* comment

Co-authored-by: bear <[email protected]>

* Fix #72 (#79)

* Add `message-transact` back (#74)

* Update chain id (#85)

* Update parachain IDs (#89)

* Change paraId 1000 > 2105

* Darwinia paraId 2046

* Correct block time (#93)

* Add parachain staking (#68)

* Avoid large enum variant (#98)

* Avoid large enum variant

* Fix tests

Co-authored-by: bear <[email protected]>

* Add account migration pallet (#86)

* Init commit

* Add todos

* Add `ValidateUnsigned`

* Add signature verify

* Add event

* Add comment

* Update message hash

* Add mock file

* Compile mock

* Add basic tests

* Add more tests

* Code clean

* Clean toml

* Format

* Install it to the runtimes

* Rename

Co-authored-by: HackFisher <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Handle reference count (#102)

* Handle reference count

* Fix test

* Housekeeping (#105)

* Housekeeping

* Format

* Adjust path style (#99)

* Bridge related pallets

* fee market

* format

* evm

* xcm

* format

* MaxMessagesToPruneAtOnce

* move ByteArray

* move AccountToAssetId

* move UniqueSaturatedInto

* Const

* format

* Add sudo key (#107)

* Update XCM filter (#88)

* Improve code (#111)

* Update AssetId (#109)

* Update asset id

* Rename

* Release collator staking restriction (#114)

* Account migration (#108)

* Add `staking` and `deposit` pre-compiles (#81)

* Some optimization (#116)

* Change sudo to Alith

* Format

* Doc

* Security

* Security

* Opt

* Grammar

* Add staking & deposit to Crab & Pangolin (#112)

* Some adjustment (#120)

* Fast runtime

* Valid genesis exposure

* Assets genesis

* Add `bridge_parachains` pallet (#122)

* Update Grandpa Name

* Add bridge parachain pallet

* Correct bridge message verify

* type HeadersToKeep

* Fix CI

* Fix CI

* Account genesis (#123)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <[email protected]>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

Signed-off-by: Xavier Lau <[email protected]>

* Vesting genesis (#127)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <[email protected]>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

* Vesting genesis

* Improve state management

Signed-off-by: Xavier Lau <[email protected]>

* Merge balance after update decimal (#128)

* Update order

* Update README

* Update reserve transfer filter (#130)

* Frontier pallets storage process (#121)

* Build test

* Add licenses

* Add ethereum schema process

* Add evm state process

* Self review

* Delte useless file

* Bump deps

* Free license

* Refactor

* Correct prefixes

Signed-off-by: Xavier Lau <[email protected]>

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Configure instant sealing for dev chains (#119)

* Add start_dev_node

* Add start_dev_node to command
Fix compile

* Don't check relay chain for dev node

* Correct chain spec Identify

* Add instant finalize

* Clean

* Add tip

* Fix CI

* opt

* format

* Revert "Fix CI"

This reverts commit 63ae56a8a4ff329a708de8ae7287b3a2133fac19.

* Format

Signed-off-by: Xavier Lau <[email protected]>

* Remove redundant clone

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>
Co-authored-by: fisher <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Optimize storage (#132)

* Update bridge deps (#134)

* Update bridge deps

* Correct version of cfg-if for `twox-hash`

* Fix account insert key (#139)

* Fix account insert bug

* Code clean

* Delete empty line

* Correct `RuntimeApi` & `RuntimeExecutor` (#141)

* Convert the rest locations to H160 by hashing it (#138)

* Convert the rest locations to H160 by hashing it

* format

* fix review

* Process staking (#133)

* Process staking

* Correct type

* Refactor

* Introduce `Adjust` trait

* Refactor

* Format

* Update links

* Doc

* Fix

* Doc

* Fix vesting processor (#144)

* Fix vesting processor

Signed-off-by: Xavier Lau <[email protected]>

* Format

Signed-off-by: Xavier Lau <[email protected]>

* Update KTON owner (#145)

* Add genesis (#148)

* Add genesis

* Fix compile

* Clippy (#150)

* Fix revert (#149)

Co-authored-by: Xavier Lau <[email protected]>

* Fix hash key (#152)

* Process indices & more utility fns (#151)

* More tools

* Process indices

* More error logs

Signed-off-by: Xavier Lau <[email protected]>

Signed-off-by: Xavier Lau <[email protected]>

* Fix contract account `sufficients`  (#146)

* Update sufficient

* Inc sufficient for contract account

* Fix

* Use new style

* Fix type & code optimization (#154)

* Fix type & code optimization

* Use `u16` to bypass the polkadot-js/apps#8591

* Fix bonded prefix (#155)

* Fix bonded prefix

* Restore

* Fix

* Update type (#156)

* Kton state migrate (#137)

* Step 1

* Step 2

* Step 3

* Step 4

* Finish processor side

* Add runtime side

* Add metadata insert

* Fix approvals inc

* Fresh new details

* Use Vec

* Adapt new way

* Code clean

* Remove `sp-core`

* Fix todo and review

* Fix link and format

* Cross compile support (#159)

* Improve deposit (#160)

* Improve deposit

* Test more cases

* Fix tests

* Some fixes (#162)

* Improve config for pallet_bridge_grandpa (#161)

* Update max bridged authorities follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/primitives/chain-rococo/src/lib.rs#L45-L48

* Update max bridged header size to 65536

* Update weight info follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/bin/millau/runtime/src/lib.rs#L431

* Keep WeightInfo to ()

* Code Clean

* Improve kton migration (#163)

* Improve kton migration

* Typo

* Doc

* Name

* Fix

* Fix

* Use `DealWithFees` in `transaction_payment` (#164)

* Add `claim_with_penalty` interface (#165)

* Handle different account types (#168)

* Handle different account types

* Format

* State process test (#153)

* First commit

* Add balance test

* Try fix

* test total_issuance

* Test the kton part removed

* Add evm related test

* Assert evm account storages

* Update evm storage tests

* Add vesting info test

* Add indices test

* Add staking test

* Add staking test 2

* Fix tests

* Add deposit items test

* Finish staking test

* Add tests for assets

* Test kton transfer to asset pallet

* Test kton total issuance

* Fix todo

* Add parachain support

* Remove ignored case

* Add combine solo,para account tests

* Code clean

* Add filter

* Refactor the test

* Ignore two cases

* Rwrite all tests

* Update evm codes test

* Code format

* Fix indices tests

* Remove debug line

* Format

* Format

* Fix review

Co-authored-by: Xavier Lau <[email protected]>

* Happy new year (#170)

* Happy new year

* Fix

* Process proxy and support generic runtime (#172)

* Format

* Process proxy and support generic runtime

* Format

* Format

* Fixes

* Adjust XCM trader (#143)

* init LocalAssetTrader

* LocalAssetTrader

* Update trader for pangolin & crab

* format

* Update comments

* Update logs

* format

* Format

* Simplify code

Co-authored-by: fisher <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Adjust common functions (#167)

* WeightToFee

* darwinia_deposit

* Move darwinia_deposit to primitives

* fix review

* remove unused smallvec

* Pangolin2 preparation (#174)

* New data path

* Simplify staking migration

* Refactor

* Build spec automatically

* Download specs automatically

* Use `take`

* Remove unnecessary doc

* Add darwinia dispatch precompile (#173)

* Add darwinia dispatch

* Fix test

Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: fisher <[email protected]>

* Process sudo (#177)

* Process sudo

* Add testing key

* Fixes (#179)

* Fix

* Bump to fix

* Fix genesis

* Fix build spec

* Test env

* Fund Alith (#182)

* Fund Alith

* Use local chain type

* Optional download (#183)

* Fix processor tests (#175)

* Fix test

* Fix test

* Delete sudo and metadata

* ECDSA authority (#184)

* Add message gadget

* Fix compile

* Fix mock

* Fix test

* Add ecdsa-authority

* License

* Add `restake` and fix some bugs (#188)

* Add `restake` and fix some bugs

* More tests

* More tests

* Doc

* Add restake interface (#189)

* Add `Proxy` tests (#190)

* Check key prefix

* Add tests

* Use `any`

* Improve existing check (#191)

* Improve existing check

* Remove unused variable

* Modify testnet time (#192)

* Improve tips

* Clippy

* Set testnet time to 5 mins

* `account-migration` runtime tests (#169)

* Add validate unsigned test

* Add validation tests

* Account migrate test

* Fix redundant encode

* Kton asset

* prepare accounts

* Remove migration

* Pass tests

* kton tests

* Add staking test

* Fix test

* Staking test

* Finish pangolin tests

* Add crab and darwinia tests

* Revert changes

Co-authored-by: Xavier Lau <[email protected]>

* Human readable sign message (#195)

* Human readable sign message

* Update spec

* Update proxy filter (#197)

* Use features check action (#198)

Signed-off-by: Xavier Lau <[email protected]>

Signed-off-by: Xavier Lau <[email protected]>

* Merge collator payout (#200)

* Merge collator payout

* Bump runtime version

* Improve code

* Doc

* Refactor runtime tests (#204)

* Test only code (#206)

* Fix precompiles genesis (#207)

* Tweak the genesis config

* Add tests

* Use check runtime action (#208)

* Use check runtime action

* Try

* Try

Signed-off-by: Xavier Lau <[email protected]>

* Test all runtimes

Signed-off-by: Xavier Lau <[email protected]>

* Done

* Remove compress step

* Remove unused env var

Signed-off-by: Xavier Lau <[email protected]>

* To `polkadot-v0.9.33` and some other changes (#171)

* Anchor polkadot-v0.9.33

* Companion for paritytech/cumulus#1685

* Companion for paritytech/cumulus#1585

* Companion for paritytech/cumulus#1745

* Companion for paritytech/cumulus#1759

* Companion for paritytech/cumulus#1782

* Companion for paritytech/cumulus#1793

* Companion for paritytech/cumulus#1808

* Temp use prepare branch of messages-substrate

* Use darwinia fork frontier

* Use correct moonbeam substrate commit

* Correct bp-darwinia-core std

* Use prepare moonbeam v0.9.33

* Update ethereum to 0.14.0

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 democracy

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 scheduler

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 preimage

* Companion for paritytech/substrate#12109

* Type create origin

* Format

* Fix type CreateOrigin

* Format

* Companion for polkadot-evm/frontier#935

* Fix compile

* Fix service

* Format

* `Frontier` upgrade (#196)

* Delete BaseFee

* Fix todo

* Update prepare branch

* Fix mock

* Add pallet-evm-precompile-dispatch/std

* Format

* Format

* Correct version after merge

* Fix review

* Fix review

* Fix CI test

* Fix compile after merge

Co-authored-by: bear <[email protected]>

* pallet-identity state process (#124)

* Add types folder

* Read storage out

* Decimal update

* Add remove subsOf and superOf

* Remove useless file

* Add README

* Process in runtime side

* Format

* Add SUDO back

* Fix doc link

* Identity migrate

* Fix runtime

* Add tests

* Add tests

* Code clean

* Remove sp-runtime

* Code format

* Delete useless reserve

* Reset the judgements

* Self review

* Fix

* Add identities runtime tests

* Fix tests

* Just format

* Tiny updates

* Update doc

Co-authored-by: Xavier Lau <[email protected]>

* Keep identity judgments (#210)

* Keep identity judgments

* Doc

* Bump toolchain to `nightly-2022-11-15` (#212)

* Add metadata for front end (#219)

* Burn parachain backing RING (#218)

* Fix state judgement (#222)

* Fix judgement

* Use adjust()

* Format

* Readable address (#224)

* Add missing field (#226)

* Fix `try-runtime` (#223)

* Try fix

* Try fix

* Adjust toml file

* Fix compile

* Foramat

* Adjust session consumer part.1 (#229)

* Clean unused deps (#228)

* Clean unused deps

* Update messages-substrate deps

* Try fix CI

* Adapt PolkadotJS (#231)

* Release Pangolin2 (#225)

* Reorder

* Adjust genesis

* Typo

* State types check (#230)

* Check

* Use type

* Update processor files

* Find others

* Format

* Default pangolin

* Fix review

* Account migration signer tool (#235)

* Doc

* Bump version for devnet

* Account migration signer tool

* Doc

* Update docs (#237)

Co-authored-by: Xavier Lau <[email protected]>

* Fix call indexes (#238)

* Fix signer cli (#239)

* Improve testing (#241)

* Improve testing

* Fix formula

* Opt

* State processor CI

* Unset

* Try

Signed-off-by: Xavier Lau <[email protected]>

* Opt

* Opt

* Try

Signed-off-by: Xavier Lau <[email protected]>

* Opt

* Opt

* Final test

* Fix

* Bump

* Fix

* Fix

---------

Signed-off-by: Xavier Lau <[email protected]>

* Rebuild accounts' reservation (#242)

* Set reservation to zero

* Configure genesis collator

* Rebuild accounts' reservation and update tests

* Update tests

* Add EVM tests (#234)

* Support Ethereum for dev node

* Add first test

* Add rpc constants test

* Add balance test

* Add contract test

* Finish balance and contract basic tests

* Add bloom filter test

* Test `eth_getCode`

* Test nonce update

* Test opcodes

* Add event test

* Finally, basic tests are covered.

* Use `impl_self_contained_call` (#250)

* Rebuild account reference counters (#249)

* Rebuild account reference counters part.1

* part.2

* part.3

* TODO

* Fix

* Fixes

Signed-off-by: Xavier Lau <[email protected]>

* Doc

---------

Signed-off-by: Xavier Lau <[email protected]>

* Add evm checks (#252)

* Add evm checks

Signed-off-by: Xavier Lau <[email protected]>

* Fix

---------

Signed-off-by: Xavier Lau <[email protected]>

* Clean empty ledger (#253)

Signed-off-by: Xavier Lau <[email protected]>

* Add bridge extension validation (#251)

* Add bridger extension validatioin

* Update comments

* Revert changes

* Fix review

* Add `reserve` and `references count` tests (#259)

* Fix TODO

* Add reserve test

* Add another case

* Add more samples

* Code clean

* Fix local test error

* Handle special accounts (#265)

* Handle special accounts

* Refactor

* More readable

* Doc

* Add staging workflow (#258)

* Add staging workflow

* Test CI

* CI

* Add deps

* CI

* CI

* CI

* Updte trigger

---------

Co-authored-by: Xavier Lau <[email protected]>

* To `polkadot-v0.9.36` (#213)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Format

* Format

* Opt

* Format

* Use `codec::Compact<AssetId>`

* Format

---------

Co-authored-by: Xavier Lau <[email protected]>

* Migrate `pallet-assets` (#260)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Companion for paritytech/substrate#12310

* Update state processor

* Add type link

* Fix review issues

* Format

---------

Co-authored-by: Guantong <[email protected]>

* Clean imports (#271)

* Clean imports

* Fix tests

* Migrate multisig (#272)

* Migrate multisig

* Unit tests

* Doc

* Fix

* More checks

* Doc

* Reject duplicative submission

* Add special accounts migration test (#268)

* Part 1

* Part 2

* Rename

* Better function names

* Update state storage filter (#273)

* Let ethereum go

* Update pallet name

* Fix

---------

Co-authored-by: Xavier Lau <[email protected]>

* Manage runtime through features (#274)

* Format

* Manage runtime through features

* Total issuance assertions (#276)

* Process parachain system (#278)

* Try workspace's new feature (#277)

* Update crate info

* Update deps 1

* Update deps 2

* Update deps 3

* Update deps 4

* Format

* Fix review

* Rename `Staking` to `DarwiniaStaking` (#279)

* Rename to `DarwiniaStaking`

* Rename

* Format (#280)

* Add Pangoro2 (#281)

* Format

* Deduplicate

* Add Pangoro2

* Rename

* Fix

* Fix

* Rename

* Doc

* Set SS58 in runtime and remove from chain spec

* To `polkadot-v0.9.37` (#266)

* Anchor polkadot-v0.9.37

* Companion for paritytech/substrate#12307

* Companion for paritytech/cumulus#2057

* Use prepare branch for test

* Companion for polkadot-evm/frontier#981

* Remove collator selection in bench

* Fix BenchmarkHelper

* Fix compile

* Format

* Fix compile

* Fix compile feature benchmark

* Fix test

* Format toml

* Format

* Pangoro2 0.9.37

* Fix try-runtime

* Fix try-runtime cmd

* Format

* Fix review

* Use `Vec`

* Typo

---------

Co-authored-by: Xavier Lau <[email protected]>

* Pangolin2 `6005` runtime upgrade (#283)

* Update Pangolin CI

* Bump runtime version

* Set payout fraction to 40% (#284)

* Set payout fraction to 40%

* Format

Signed-off-by: Xavier Lau <[email protected]>

---------

Signed-off-by: Xavier Lau <[email protected]>

* Add evm estimate gas tests (#282)

* Add estimate gas tests

* Fix CI

* Fix ethereum block author (#286)

* Fix ethereum block author

* Move some structs to the common folder

* Fix CI test

* Clean

* Pangolin2 <> Pangoro2 bridge (#285)

* Copy darwinia bm => pangoro bm
Copy crab bm => pangolin bm

* Add pangolin&pangoro bridge-messages

* Add bridge related pallets for pangolin&pangoro

* Add bridge palles to runtime for pangolin & pangoro

* Fix compile

* Missing changes

* Correct bridge-dispatch

* Format

* Update genesis

* Update nonce test (#288)

* Remove assertions in HRMP&DMP (#290)

* Patch cumulus

* Bump darwinia/cumulus

* Preparation of Pangoro2 (#291)

* Correct command

* Some fixes

* Update evm module runtime name (#293)

* Fix evm runtime name

* Format toml

* Add migration

* Fix state processor

* Use latest polkadot-v0.9.37 commit

* Fix tests

* Bench upstream pallets (#292)

* Fix balances benchmark

* Add bridge related bench

* Benchmark with steps 50 repeat 20

* Update weights for bridge pallets

* Pangolin bench pallets

* Bench s2 r1 for all runtimes

* Update weights for all runtime

* Add benchmarking items and bench darwinia-deposit (#294)

* Add benchmarking items and bench darwinia-deposit

* Format

* Doc

* Fix and update CI

* Re-cache

* Opt

* Opt

* Correct URI

---------

Signed-off-by: Xavier Lau <[email protected]>

* Auto load large genesis (#295)

* Auto load large genesis

* Remove unused feature

* Format

* Opt

* Fix broken CI (#296)

* Try fix

* Fix it!

* Remove multisig (#299)

* Update Pangoro2 parachain id (#304)

* Update cross compile docker image (#303)

* Update cross compile docker image

* Fix compile

* Easy make (#305)

* Easy make

* Format

* Update EthBlockGasLimit (#306)

* Update pangolin's max gas limit

* Update other runtimes

* Move evm tests

* Self review

* Anchor v0.9.38

* Companion for paritytech/cumulus#2067

* Companion for paritytech/cumulus#697 XCM v3

* Companion for paritytech/cumulus#2096

* Companion for paritytech/cumulus#1863

* Companion for paritytech/cumulus#2073

* Companion for paritytech/cumulus#2126

* Use prepare branch

* Companion for paritytech/substrate#13216

* Companion for darwinia-messages-substrate#254

* Companion for paritytech/polkadot#4097

* Part companion for paritytech/cumulus#2067

* Correct companion for cumulus#2073

* Fix xcm compilation

* Fix compilation done

* Fix compilation with benchmark

* Replace prepare branch

* Format

* Fix compile

* Format

* Fix CI check features

* Format

* Patch cumulus assertion branch v0.9.38

* Companion for paritytech/cumulus#2287

* Remove unused polkadot-service

* Revert changes

* Format

---------

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>
Co-authored-by: HackFisher <[email protected]>
Co-authored-by: fewensa <[email protected]>
Co-authored-by: Guantong <[email protected]>
AurevoirXavier added a commit to darwinia-network/darwinia that referenced this pull request Mar 30, 2023
* Darwinia 2.0

* Darwinia shell chain (#27)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <[email protected]>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* Enable `kusama-native`, `rococo-native`

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Guantong <[email protected]>

* Docs & formatting (#33)

* Add EVM stuff (#30)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* Add frontier deps without fork!

* License

* Add pallets to runtime

* Benchmarks

* Append command part

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* Adapt main

* Delete duplicated consts

* Hack rpc

* Client compile fix

* Fix client

* Move to ethereum mod

* Add more precompile

* Fix some issue

* Solve conflict

* Merge issues

* Format

* Add basic code for precompiles

* Update EthRpcConfig

* Use Hashing type

* Foramt issue

* Adjust service config

* Add evm, ethereum feature

* Add missing features

* Move const

* Doc

* Format

* Format

* Format

* Format

* Format

* Safer truncated

* Clean importing

* Suppress warnings

* Remove empty line

* Clean importing

* Clean importing

* Format

* Clean importing

* Restructure

Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: Guantong <[email protected]>

* Polish RPC & service (#36)

* Use full path

* Abstract APIs & types

* Format

* Extract darwinia-runtime (#32)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <[email protected]>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* init

* adjust structure & fix compile

* Move`type Barrier` out of `common` because of different runtimes may require different barriers

* Add required xcm barriers

* format

* remove redundant files

* format

* format

* try fix ci

* merge main

* fix ci

* Format

* remove unused dependencies

* format

* format

* format

* Format

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Polish service (#38)

* use full path

* RuntimeApi

Co-authored-by: Xavier Lau <[email protected]>

* Enable `FrontierDb` subcommand (#37)

* Refactor `new_partial`

* Try fix compile

* Update `new_partial`

* Yeah, make compiler happy

* Code clean

* Something about command

* Resolve conflict

* Adapt for main style

* Self review

* Ready for review

* Revert full-path in command mod

* Code cleaning

Co-authored-by: Xavier Lau <[email protected]>

* Use zero existential deposit (#48)

* Update ED

* Update `candidacy_bond`

* Add messages-substrate deps (#49)

* add messages-substrate deps

* fix ci

* add messages-substrate deps

* fix ci

* update messages-substrate deps

* update cargo.lock

* Format

Co-authored-by: Xavier Lau <[email protected]>

* Process system and balances state (#39)

* Process state part.1

* More detail

* Take storages

* Take KV

* Merge balances

* Extract balance lock

* Format

* Flatten account

* Preprocess storage key

* Fix properties

* Add shell config

* Modularize processor

* Calculate total issuance

* Recover nonce

* Add darwinia's precompiles (#50)

* Use `H160` as `AccountId` (#55)

* Configure `H160` for runtime

* Configure `H160` genesis

Signed-off-by: Xavier Lau <[email protected]>

* Docs

* Improve code

* Add missing features

* Format and enable missing features for #50

* Format

* Fix evm config

* Revert the rename

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>

* Testnet preparation (#57)

* More testing tokens

* Update runtime version

* Correct name

* Adjust genesis accounts (#59)

* Adjust genesis accounts

* Docs

* Typo

* Adjust runtime and add pallets (#60)

* Adjust runtime and add sudo

* Adjust parameter types and add vesting

* Fix compile

* Add utility

* Add collective, elections-phragmen, identity and treasury

* Add preimage and scheduler

* Add democracy and membership

* Add multisig and proxy

* License

* License

* Set balances's index to 5

* Code cleaning

* Crab & Pangolin Runtime (#56)

* Add assets component (#69)

* Add asset pallet

* Add asset precompile

* Add precompile interface

* Impl all asset precompile interfaces

* Self review

* Code clean

* Add mock file

* Fix test compile

* Add test 1

* Add test 2

* Add test 3

* Add test 4

* Finish test

* Add another type

* Update asset origin

* Fix CI

* Move out from Others

* Add asset to other runtimes

* Bridge related pallets (#70)

* Copy from Crab Parachain

* Replace Crab Parachain > Darwinia

* bridge pallets, many errors need to fix

� Conflicts:
�	Cargo.lock
�	runtime/common/Cargo.toml
�	runtime/darwinia/src/pallets/mod.rs

* Add fee_market

� Conflicts:
�	runtime/common/Cargo.toml

* Update deps

* Update deps

* Add bridge related pallets to darwinia

* Add bridge related pallets to crab

* format

* Update deps

* review

* comment

Co-authored-by: bear <[email protected]>

* Fix #72 (#79)

* Add `message-transact` back (#74)

* Update chain id (#85)

* Update parachain IDs (#89)

* Change paraId 1000 > 2105

* Darwinia paraId 2046

* Correct block time (#93)

* Add parachain staking (#68)

* Avoid large enum variant (#98)

* Avoid large enum variant

* Fix tests

Co-authored-by: bear <[email protected]>

* Add account migration pallet (#86)

* Init commit

* Add todos

* Add `ValidateUnsigned`

* Add signature verify

* Add event

* Add comment

* Update message hash

* Add mock file

* Compile mock

* Add basic tests

* Add more tests

* Code clean

* Clean toml

* Format

* Install it to the runtimes

* Rename

Co-authored-by: HackFisher <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Handle reference count (#102)

* Handle reference count

* Fix test

* Housekeeping (#105)

* Housekeeping

* Format

* Adjust path style (#99)

* Bridge related pallets

* fee market

* format

* evm

* xcm

* format

* MaxMessagesToPruneAtOnce

* move ByteArray

* move AccountToAssetId

* move UniqueSaturatedInto

* Const

* format

* Add sudo key (#107)

* Update XCM filter (#88)

* Improve code (#111)

* Update AssetId (#109)

* Update asset id

* Rename

* Release collator staking restriction (#114)

* Account migration (#108)

* Add `staking` and `deposit` pre-compiles (#81)

* Some optimization (#116)

* Change sudo to Alith

* Format

* Doc

* Security

* Security

* Opt

* Grammar

* Add staking & deposit to Crab & Pangolin (#112)

* Some adjustment (#120)

* Fast runtime

* Valid genesis exposure

* Assets genesis

* Add `bridge_parachains` pallet (#122)

* Update Grandpa Name

* Add bridge parachain pallet

* Correct bridge message verify

* type HeadersToKeep

* Fix CI

* Fix CI

* Account genesis (#123)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <[email protected]>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

Signed-off-by: Xavier Lau <[email protected]>

* Vesting genesis (#127)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <[email protected]>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

* Vesting genesis

* Improve state management

Signed-off-by: Xavier Lau <[email protected]>

* Merge balance after update decimal (#128)

* Update order

* Update README

* Update reserve transfer filter (#130)

* Frontier pallets storage process (#121)

* Build test

* Add licenses

* Add ethereum schema process

* Add evm state process

* Self review

* Delte useless file

* Bump deps

* Free license

* Refactor

* Correct prefixes

Signed-off-by: Xavier Lau <[email protected]>

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Configure instant sealing for dev chains (#119)

* Add start_dev_node

* Add start_dev_node to command
Fix compile

* Don't check relay chain for dev node

* Correct chain spec Identify

* Add instant finalize

* Clean

* Add tip

* Fix CI

* opt

* format

* Revert "Fix CI"

This reverts commit 63ae56a8a4ff329a708de8ae7287b3a2133fac19.

* Format

Signed-off-by: Xavier Lau <[email protected]>

* Remove redundant clone

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>
Co-authored-by: fisher <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Optimize storage (#132)

* Update bridge deps (#134)

* Update bridge deps

* Correct version of cfg-if for `twox-hash`

* Fix account insert key (#139)

* Fix account insert bug

* Code clean

* Delete empty line

* Correct `RuntimeApi` & `RuntimeExecutor` (#141)

* Convert the rest locations to H160 by hashing it (#138)

* Convert the rest locations to H160 by hashing it

* format

* fix review

* Process staking (#133)

* Process staking

* Correct type

* Refactor

* Introduce `Adjust` trait

* Refactor

* Format

* Update links

* Doc

* Fix

* Doc

* Fix vesting processor (#144)

* Fix vesting processor

Signed-off-by: Xavier Lau <[email protected]>

* Format

Signed-off-by: Xavier Lau <[email protected]>

* Update KTON owner (#145)

* Add genesis (#148)

* Add genesis

* Fix compile

* Clippy (#150)

* Fix revert (#149)

Co-authored-by: Xavier Lau <[email protected]>

* Fix hash key (#152)

* Process indices & more utility fns (#151)

* More tools

* Process indices

* More error logs

Signed-off-by: Xavier Lau <[email protected]>

Signed-off-by: Xavier Lau <[email protected]>

* Fix contract account `sufficients`  (#146)

* Update sufficient

* Inc sufficient for contract account

* Fix

* Use new style

* Fix type & code optimization (#154)

* Fix type & code optimization

* Use `u16` to bypass the polkadot-js/apps#8591

* Fix bonded prefix (#155)

* Fix bonded prefix

* Restore

* Fix

* Update type (#156)

* Kton state migrate (#137)

* Step 1

* Step 2

* Step 3

* Step 4

* Finish processor side

* Add runtime side

* Add metadata insert

* Fix approvals inc

* Fresh new details

* Use Vec

* Adapt new way

* Code clean

* Remove `sp-core`

* Fix todo and review

* Fix link and format

* Cross compile support (#159)

* Improve deposit (#160)

* Improve deposit

* Test more cases

* Fix tests

* Some fixes (#162)

* Improve config for pallet_bridge_grandpa (#161)

* Update max bridged authorities follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/primitives/chain-rococo/src/lib.rs#L45-L48

* Update max bridged header size to 65536

* Update weight info follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/bin/millau/runtime/src/lib.rs#L431

* Keep WeightInfo to ()

* Code Clean

* Improve kton migration (#163)

* Improve kton migration

* Typo

* Doc

* Name

* Fix

* Fix

* Use `DealWithFees` in `transaction_payment` (#164)

* Add `claim_with_penalty` interface (#165)

* Handle different account types (#168)

* Handle different account types

* Format

* State process test (#153)

* First commit

* Add balance test

* Try fix

* test total_issuance

* Test the kton part removed

* Add evm related test

* Assert evm account storages

* Update evm storage tests

* Add vesting info test

* Add indices test

* Add staking test

* Add staking test 2

* Fix tests

* Add deposit items test

* Finish staking test

* Add tests for assets

* Test kton transfer to asset pallet

* Test kton total issuance

* Fix todo

* Add parachain support

* Remove ignored case

* Add combine solo,para account tests

* Code clean

* Add filter

* Refactor the test

* Ignore two cases

* Rwrite all tests

* Update evm codes test

* Code format

* Fix indices tests

* Remove debug line

* Format

* Format

* Fix review

Co-authored-by: Xavier Lau <[email protected]>

* Happy new year (#170)

* Happy new year

* Fix

* Process proxy and support generic runtime (#172)

* Format

* Process proxy and support generic runtime

* Format

* Format

* Fixes

* Adjust XCM trader (#143)

* init LocalAssetTrader

* LocalAssetTrader

* Update trader for pangolin & crab

* format

* Update comments

* Update logs

* format

* Format

* Simplify code

Co-authored-by: fisher <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>

* Adjust common functions (#167)

* WeightToFee

* darwinia_deposit

* Move darwinia_deposit to primitives

* fix review

* remove unused smallvec

* Pangolin2 preparation (#174)

* New data path

* Simplify staking migration

* Refactor

* Build spec automatically

* Download specs automatically

* Use `take`

* Remove unnecessary doc

* Add darwinia dispatch precompile (#173)

* Add darwinia dispatch

* Fix test

Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: fisher <[email protected]>

* Process sudo (#177)

* Process sudo

* Add testing key

* Fixes (#179)

* Fix

* Bump to fix

* Fix genesis

* Fix build spec

* Test env

* Fund Alith (#182)

* Fund Alith

* Use local chain type

* Optional download (#183)

* Fix processor tests (#175)

* Fix test

* Fix test

* Delete sudo and metadata

* ECDSA authority (#184)

* Add message gadget

* Fix compile

* Fix mock

* Fix test

* Add ecdsa-authority

* License

* Add `restake` and fix some bugs (#188)

* Add `restake` and fix some bugs

* More tests

* More tests

* Doc

* Add restake interface (#189)

* Add `Proxy` tests (#190)

* Check key prefix

* Add tests

* Use `any`

* Improve existing check (#191)

* Improve existing check

* Remove unused variable

* Modify testnet time (#192)

* Improve tips

* Clippy

* Set testnet time to 5 mins

* `account-migration` runtime tests (#169)

* Add validate unsigned test

* Add validation tests

* Account migrate test

* Fix redundant encode

* Kton asset

* prepare accounts

* Remove migration

* Pass tests

* kton tests

* Add staking test

* Fix test

* Staking test

* Finish pangolin tests

* Add crab and darwinia tests

* Revert changes

Co-authored-by: Xavier Lau <[email protected]>

* Human readable sign message (#195)

* Human readable sign message

* Update spec

* Update proxy filter (#197)

* Use features check action (#198)

Signed-off-by: Xavier Lau <[email protected]>

Signed-off-by: Xavier Lau <[email protected]>

* Merge collator payout (#200)

* Merge collator payout

* Bump runtime version

* Improve code

* Doc

* Refactor runtime tests (#204)

* Test only code (#206)

* Fix precompiles genesis (#207)

* Tweak the genesis config

* Add tests

* Use check runtime action (#208)

* Use check runtime action

* Try

* Try

Signed-off-by: Xavier Lau <[email protected]>

* Test all runtimes

Signed-off-by: Xavier Lau <[email protected]>

* Done

* Remove compress step

* Remove unused env var

Signed-off-by: Xavier Lau <[email protected]>

* To `polkadot-v0.9.33` and some other changes (#171)

* Anchor polkadot-v0.9.33

* Companion for paritytech/cumulus#1685

* Companion for paritytech/cumulus#1585

* Companion for paritytech/cumulus#1745

* Companion for paritytech/cumulus#1759

* Companion for paritytech/cumulus#1782

* Companion for paritytech/cumulus#1793

* Companion for paritytech/cumulus#1808

* Temp use prepare branch of messages-substrate

* Use darwinia fork frontier

* Use correct moonbeam substrate commit

* Correct bp-darwinia-core std

* Use prepare moonbeam v0.9.33

* Update ethereum to 0.14.0

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 democracy

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 scheduler

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 preimage

* Companion for paritytech/substrate#12109

* Type create origin

* Format

* Fix type CreateOrigin

* Format

* Companion for polkadot-evm/frontier#935

* Fix compile

* Fix service

* Format

* `Frontier` upgrade (#196)

* Delete BaseFee

* Fix todo

* Update prepare branch

* Fix mock

* Add pallet-evm-precompile-dispatch/std

* Format

* Format

* Correct version after merge

* Fix review

* Fix review

* Fix CI test

* Fix compile after merge

Co-authored-by: bear <[email protected]>

* pallet-identity state process (#124)

* Add types folder

* Read storage out

* Decimal update

* Add remove subsOf and superOf

* Remove useless file

* Add README

* Process in runtime side

* Format

* Add SUDO back

* Fix doc link

* Identity migrate

* Fix runtime

* Add tests

* Add tests

* Code clean

* Remove sp-runtime

* Code format

* Delete useless reserve

* Reset the judgements

* Self review

* Fix

* Add identities runtime tests

* Fix tests

* Just format

* Tiny updates

* Update doc

Co-authored-by: Xavier Lau <[email protected]>

* Keep identity judgments (#210)

* Keep identity judgments

* Doc

* Bump toolchain to `nightly-2022-11-15` (#212)

* Add metadata for front end (#219)

* Burn parachain backing RING (#218)

* Fix state judgement (#222)

* Fix judgement

* Use adjust()

* Format

* Readable address (#224)

* Add missing field (#226)

* Fix `try-runtime` (#223)

* Try fix

* Try fix

* Adjust toml file

* Fix compile

* Foramat

* Adjust session consumer part.1 (#229)

* Clean unused deps (#228)

* Clean unused deps

* Update messages-substrate deps

* Try fix CI

* Adapt PolkadotJS (#231)

* Release Pangolin2 (#225)

* Reorder

* Adjust genesis

* Typo

* State types check (#230)

* Check

* Use type

* Update processor files

* Find others

* Format

* Default pangolin

* Fix review

* Account migration signer tool (#235)

* Doc

* Bump version for devnet

* Account migration signer tool

* Doc

* Update docs (#237)

Co-authored-by: Xavier Lau <[email protected]>

* Fix call indexes (#238)

* Fix signer cli (#239)

* Improve testing (#241)

* Improve testing

* Fix formula

* Opt

* State processor CI

* Unset

* Try

Signed-off-by: Xavier Lau <[email protected]>

* Opt

* Opt

* Try

Signed-off-by: Xavier Lau <[email protected]>

* Opt

* Opt

* Final test

* Fix

* Bump

* Fix

* Fix

---------

Signed-off-by: Xavier Lau <[email protected]>

* Rebuild accounts' reservation (#242)

* Set reservation to zero

* Configure genesis collator

* Rebuild accounts' reservation and update tests

* Update tests

* Add EVM tests (#234)

* Support Ethereum for dev node

* Add first test

* Add rpc constants test

* Add balance test

* Add contract test

* Finish balance and contract basic tests

* Add bloom filter test

* Test `eth_getCode`

* Test nonce update

* Test opcodes

* Add event test

* Finally, basic tests are covered.

* Use `impl_self_contained_call` (#250)

* Rebuild account reference counters (#249)

* Rebuild account reference counters part.1

* part.2

* part.3

* TODO

* Fix

* Fixes

Signed-off-by: Xavier Lau <[email protected]>

* Doc

---------

Signed-off-by: Xavier Lau <[email protected]>

* Add evm checks (#252)

* Add evm checks

Signed-off-by: Xavier Lau <[email protected]>

* Fix

---------

Signed-off-by: Xavier Lau <[email protected]>

* Clean empty ledger (#253)

Signed-off-by: Xavier Lau <[email protected]>

* Add bridge extension validation (#251)

* Add bridger extension validatioin

* Update comments

* Revert changes

* Fix review

* Add `reserve` and `references count` tests (#259)

* Fix TODO

* Add reserve test

* Add another case

* Add more samples

* Code clean

* Fix local test error

* Handle special accounts (#265)

* Handle special accounts

* Refactor

* More readable

* Doc

* Add staging workflow (#258)

* Add staging workflow

* Test CI

* CI

* Add deps

* CI

* CI

* CI

* Updte trigger

---------

Co-authored-by: Xavier Lau <[email protected]>

* To `polkadot-v0.9.36` (#213)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Format

* Format

* Opt

* Format

* Use `codec::Compact<AssetId>`

* Format

---------

Co-authored-by: Xavier Lau <[email protected]>

* Migrate `pallet-assets` (#260)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Companion for paritytech/substrate#12310

* Update state processor

* Add type link

* Fix review issues

* Format

---------

Co-authored-by: Guantong <[email protected]>

* Clean imports (#271)

* Clean imports

* Fix tests

* Migrate multisig (#272)

* Migrate multisig

* Unit tests

* Doc

* Fix

* More checks

* Doc

* Reject duplicative submission

* Add special accounts migration test (#268)

* Part 1

* Part 2

* Rename

* Better function names

* Update state storage filter (#273)

* Let ethereum go

* Update pallet name

* Fix

---------

Co-authored-by: Xavier Lau <[email protected]>

* Manage runtime through features (#274)

* Format

* Manage runtime through features

* Total issuance assertions (#276)

* Process parachain system (#278)

* Try workspace's new feature (#277)

* Update crate info

* Update deps 1

* Update deps 2

* Update deps 3

* Update deps 4

* Format

* Fix review

* Rename `Staking` to `DarwiniaStaking` (#279)

* Rename to `DarwiniaStaking`

* Rename

* Format (#280)

* Add Pangoro2 (#281)

* Format

* Deduplicate

* Add Pangoro2

* Rename

* Fix

* Fix

* Rename

* Doc

* Set SS58 in runtime and remove from chain spec

* To `polkadot-v0.9.37` (#266)

* Anchor polkadot-v0.9.37

* Companion for paritytech/substrate#12307

* Companion for paritytech/cumulus#2057

* Use prepare branch for test

* Companion for polkadot-evm/frontier#981

* Remove collator selection in bench

* Fix BenchmarkHelper

* Fix compile

* Format

* Fix compile

* Fix compile feature benchmark

* Fix test

* Format toml

* Format

* Pangoro2 0.9.37

* Fix try-runtime

* Fix try-runtime cmd

* Format

* Fix review

* Use `Vec`

* Typo

---------

Co-authored-by: Xavier Lau <[email protected]>

* Pangolin2 `6005` runtime upgrade (#283)

* Update Pangolin CI

* Bump runtime version

* Set payout fraction to 40% (#284)

* Set payout fraction to 40%

* Format

Signed-off-by: Xavier Lau <[email protected]>

---------

Signed-off-by: Xavier Lau <[email protected]>

* Add evm estimate gas tests (#282)

* Add estimate gas tests

* Fix CI

* Fix ethereum block author (#286)

* Fix ethereum block author

* Move some structs to the common folder

* Fix CI test

* Clean

* Pangolin2 <> Pangoro2 bridge (#285)

* Copy darwinia bm => pangoro bm
Copy crab bm => pangolin bm

* Add pangolin&pangoro bridge-messages

* Add bridge related pallets for pangolin&pangoro

* Add bridge palles to runtime for pangolin & pangoro

* Fix compile

* Missing changes

* Correct bridge-dispatch

* Format

* Update genesis

* Update nonce test (#288)

* Remove assertions in HRMP&DMP (#290)

* Patch cumulus

* Bump darwinia/cumulus

* Preparation of Pangoro2 (#291)

* Correct command

* Some fixes

* Update evm module runtime name (#293)

* Fix evm runtime name

* Format toml

* Add migration

* Fix state processor

* Use latest polkadot-v0.9.37 commit

* Fix tests

* Bench upstream pallets (#292)

* Fix balances benchmark

* Add bridge related bench

* Benchmark with steps 50 repeat 20

* Update weights for bridge pallets

* Pangolin bench pallets

* Bench s2 r1 for all runtimes

* Update weights for all runtime

* Add benchmarking items and bench darwinia-deposit (#294)

* Add benchmarking items and bench darwinia-deposit

* Format

* Doc

* Fix and update CI

* Re-cache

* Opt

* Opt

* Correct URI

---------

Signed-off-by: Xavier Lau <[email protected]>

* Auto load large genesis (#295)

* Auto load large genesis

* Remove unused feature

* Format

* Opt

* Fix broken CI (#296)

* Try fix

* Fix it!

* Remove multisig (#299)

* Update Pangoro2 parachain id (#304)

* Update cross compile docker image (#303)

* Update cross compile docker image

* Fix compile

* Easy make (#305)

* Easy make

* Format

* Update EthBlockGasLimit (#306)

* Update pangolin's max gas limit

* Update other runtimes

* Move evm tests

* Self review

* Anchor v0.9.38

* Companion for paritytech/cumulus#2067

* Companion for paritytech/cumulus#697 XCM v3

* Companion for paritytech/cumulus#2096

* Companion for paritytech/cumulus#1863

* Companion for paritytech/cumulus#2073

* Companion for paritytech/cumulus#2126

* Use prepare branch

* Companion for paritytech/substrate#13216

* Companion for darwinia-messages-substrate#254

* Companion for paritytech/polkadot#4097

* Part companion for paritytech/cumulus#2067

* Correct companion for cumulus#2073

* Fix xcm compilation

* Fix compilation done

* Fix compilation with benchmark

* Replace prepare branch

* Format

* Add EthereumXcm and XcmTransactor

* Some fix

* Fix compile 2

* Compile done

* Format

* Fix compilation done

* Format

* Add DarwiniaCall

* Patch moonbeam debug branch

* Patch polkadot debug branch

* Patch frontier debug branch

* Add many logs

* Patch substrate debug branch

* Update frontier&moonbeam debug logs

* Add `EthereumXcm` and `XcmTransactor` for pangolin

* Optimize bls precompile by arkworks lib (#993)

* Optimize bls precompile by arkworks lib

* Pin bls-test precompose at `address(2017)`

* Fmt

* Update deps

* Add openssl deps in nix

* Remove empty line

* Format and fix compile

* Fix

* Resolve conv

* Fix

* Use rustup on nixos

* Fix

* Disable in the crab and darwinia network

* Add `shell.nix` to .gitigore

* Format

* Format

---------

Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>

* Opt `deserialize_compressed` -> `deserialize_compressed_unchecked` (#1009)

* Remove frontier log

* Debug log in ecdsa

* XcmTransactor weight v2

* Correct barrier

* Remove xcmTransactor from Pangolin

* Remove xcmTransactor from Pangoro

* Message root record should be updated correctly (#1048)

* Adjustable collator count (#1012)

* Fix compile

* Add missed bls commit

* Remove moonbeam-relay-encoder

* Refactor

* Bench

* Unused log

* Revert "Update ecdsa-authority spec (#1022)"

This reverts commit 3c07f7b.

* Fix

* Fix corner cases and add more unit tests

Signed-off-by: Xavier Lau <[email protected]>

* Add ethereum-xcm to darwinia runtime

* Companion for polkadot-evm/frontier#1011, #1014

* Remove debug patch

* Fix merging

* Revert "Revert "Update ecdsa-authority spec (#1022)""

This reverts commit 2b1a07b.

* Fix tests

* Fix benchmark compile

* Fix try-runtime features

* GITHUB_CACHE_VERSION

* Format

* Move ethereumXcm pallet to EVM stuff

* Disable transactThroughProxy

* Fix runtime benchmarks

* Fix review

* Format

---------

Signed-off-by: Xavier Lau <[email protected]>
Co-authored-by: Xavier Lau <[email protected]>
Co-authored-by: bear <[email protected]>
Co-authored-by: HackFisher <[email protected]>
Co-authored-by: fewensa <[email protected]>
Co-authored-by: Guantong <[email protected]>
Co-authored-by: echo <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders. D1-audited 👍 PR contains changes to fund-managing logic that has been properly reviewed and externally audited
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Callbacks for pallet-assets
10 participants