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

Improve asset manager #472

Merged
merged 16 commits into from Apr 9, 2022
Merged

Improve asset manager #472

merged 16 commits into from Apr 9, 2022

Conversation

stechu
Copy link
Contributor

@stechu stechu commented Apr 3, 2022

Description

closes: #440

  • Add asset mint function to asset-manager
  • Make settings of native asset id, dummy asset id, and start non-native asset id explicit
  • Add genesis config so that native asset will configured at genesis time
  • unit tests
  • Asset manager benchmarks

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
  • Wrote unit tests.
  • Updated relevant documentation in the code.
  • Added one line describing your change in <branch>/CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer.
  • If runtime changes, need to update the version numbers properly:
    • authoring_version: The version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime.
    • spec_version: The version of the runtime specification. A full node will not attempt to use its native runtime in substitute for the on-chain Wasm runtime unless all of spec_name, spec_version, and authoring_version are the same between Wasm and native.
    • impl_version: The version of the implementation of the specification. Nodes are free to ignore this; it serves only as an indication that the code is different; as long as the other two versions are the same then while the actual code may be different, it is nonetheless required to do the same thing. Non-consensus-breaking optimizations are about the only changes that could be made which would result in only the impl_version changing.
    • transaction_version: The version of the extrinsics interface. This number must be updated in the following circumstances: extrinsic parameters (number, order, or types) have been changed; extrinsics or pallets have been removed; or the pallet order in the construct_runtime! macro or extrinsic order in a pallet has been changed. If this number is updated, then the spec_version must also be updated
  • Verify benchmarks & weights have been updated for any modified runtime logics
  • If import a new pallet, choose a proper module index for it, and allow it in BaseFilter. Ensure every extrinsic works from front-end. If there's corresponding tool, ensure both work for each other.
  • If needed, update our Javascript/Typescript APIs. These APIs are offcially used by exchanges or community developers.
  • If modifying existing runtime storage items, make sure to implement storage migrations for the runtime and test them with try-runtime. This includes migrations inhreited from upstream changes, and you can search the diffs for modifications of #[pallet::storage] items to check for any.

Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Copy link
Contributor

@bhgomes bhgomes left a comment

Choose a reason for hiding this comment

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

Some minor design issues I have with the API's. Also, the three implementations of the asset manager look very similar to each other if not identical. We should refactor them into one implementation that can be called by the three.

pallets/asset-manager/src/lib.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/lib.rs Outdated Show resolved Hide resolved
primitives/src/assets.rs Outdated Show resolved Hide resolved
primitives/src/assets.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/mock.rs Outdated Show resolved Hide resolved
runtime/dolphin/src/lib.rs Show resolved Hide resolved
primitives/src/assets.rs Show resolved Hide resolved
runtime/dolphin/src/lib.rs Outdated Show resolved Hide resolved
runtime/dolphin/src/lib.rs Outdated Show resolved Hide resolved
pallets/manta-pay/src/mock.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/lib.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/lib.rs Show resolved Hide resolved
pallets/asset-manager/src/lib.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/mock.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/tests.rs Outdated Show resolved Hide resolved
primitives/src/assets.rs Show resolved Hide resolved
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
pallets/asset-manager/src/lib.rs Outdated Show resolved Hide resolved
pallets/asset-manager/src/lib.rs Outdated Show resolved Hide resolved
@ghzlatarev
Copy link
Contributor

@stechu If you're going to implement the asset manager benchmark in this PR, please link to #440 in the description

Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
@stechu stechu added this to the v3.1.5 milestone Apr 6, 2022
@stechu
Copy link
Contributor Author

stechu commented Apr 7, 2022

Some minor design issues I have with the API's. Also, the three implementations of the asset manager look very similar to each other if not identical. We should refactor them into one implementation that can be called by the three.

Will abstract the code to a trait.

@ghzlatarev
Copy link
Contributor

This PR partially relates to this issue as well #459

Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
@github-actions
Copy link

github-actions bot commented Apr 8, 2022

Please signoff on all commits with your name, email and gpg key for the Developer's Certificate of Origin.
git config --global user.name your_name
git config --global user.email you_email
COMMAND : git commit -s -S -m your_commit_message
-s = Signed-off-by
-S = Verify commit using gpg key
If there is more than one commit in your pull request and your git client is modern enough (2.13+), rebase the required number of commits with --signoff:
git rebase --signoff HEAD~<number_of_commits>
Then, force push:
git push -f origin <your_branch>
For instructions on managing gpg signature verification please visit: https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits

pallets/asset-manager/Cargo.toml Outdated Show resolved Hide resolved
pallets/asset-manager/Cargo.toml Outdated Show resolved Hide resolved
Copy link
Contributor

@Dengjianping Dengjianping left a comment

Choose a reason for hiding this comment

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

LGTM!

ghzlatarev and others added 8 commits April 9, 2022 16:59
* Benchmarking for asset-manager

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Make xcm optional for benchmarking

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
…, and filter out unneeded XTokens extrinsics (#454)

* Get rid of expect() in the runtime

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Filter out all XTokens extrinsics until transfer() until they are needed

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Add log target

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Fix tests

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
Signed-off-by: Shumo Chu <shumo.chu@protonmail.com>
@stechu stechu merged commit 8191baa into manta Apr 9, 2022
@stechu stechu deleted the improve-asset-manager branch June 23, 2022 01:32
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.

Implement benchmarking macros in our pallet-asset-manager
4 participants