Conversation
ghzlatarev
reviewed
Feb 9, 2022
ghzlatarev
reviewed
Feb 9, 2022
ghzlatarev
reviewed
Feb 9, 2022
ghzlatarev
reviewed
Feb 9, 2022
ghzlatarev
reviewed
Feb 9, 2022
ghzlatarev
reviewed
Feb 9, 2022
bhgomes
suggested changes
Feb 9, 2022
Dengjianping
requested changes
Feb 10, 2022
runtime/primitives/src/assets.rs
Outdated
Comment on lines
+98
to
+106
| if let Some(asset_loc) = AssetInfoGetter::get_asset_location(id.borrow().clone()) { | ||
| if let Some(location) = asset_loc.into() { | ||
| Ok(location) | ||
| } else { | ||
| Err(()) | ||
| } | ||
| } else { | ||
| Err(()) | ||
| } |
Contributor
There was a problem hiding this comment.
and_then will return Option<Option< MultiLocation>>, ok_or returns a type like Err(()) or Ok(None) or Ok(Some(_)).
AssetInfoGetter::get_asset_location(id.borrow().clone()).and_then(Into::into).flatten().ok_or(())or
AssetInfoGetter::get_asset_location(id.borrow().clone()).map(Into::into).flatten().ok_or(())* naive test pass
2 tasks
bhgomes
approved these changes
Feb 27, 2022
Contributor
bhgomes
left a comment
There was a problem hiding this comment.
Fine from me. Still not clear on the distinction between min_balance and is_sufficient and there are still some open comments by Jamie.
Contributor
Author
The semantics is pretty subtle here, I added it to the new comments: /// * `is_sufficient`: whether this asset can be used as reserve asset,
/// to the first approximation. More specifically, Whether a non-zero balance of this asset is deposit of sufficient
/// value to account for the state bloat associated with its balance storage. If set to
/// `true`, then non-zero balances may be stored without a `consumer` reference (and thus
/// an ED in the Balances pallet or whatever else is used to control user-account state
/// growth).
|
Contributor
|
Please resolve some clippy warnings. |
ghzlatarev
approved these changes
Feb 28, 2022
Contributor
|
And do fmt. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
closes: #297
Manta Asset-Manager and XCM code.
Manta/Calamari Asset Design:
u32typedAssetId, this include both XCM assets, Manta/Calamari’s native token, and customized assets in Manta/Calamari (in the future)Pallet-Asset-Manageris the centralized interface for asset management, it supports:AssetLocationof an existing assetUnitPerSecondof an existing assetManta/Calamari XCM Fee Payment Mechanism:
TraderofXcmConfig(FixedRateOfFungible)buy_weight(weight, payment), the first asset inpayment). We maintain aUnitPerSecondrate for each asset we support inpallet-asset-manager. During a single XCM execution, we expect that the user should use the same kind of assets to buy weight. If a user use the different kind of asset to buy weights during a single XCM execution, we only handling the refund of the first kind of asset being used to buy weights. (seeFirstAssetTradercode)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.
mantaordolphin) with right title (start with [Manta] or [Dolphin]),Files changedin the Github PR explorer.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 updatedversionfor every crate.BaseFilter. Ensure every extrinsic works from front-end. If there's corresponding tool, ensure both work for each other.