feat(mainnet): introduce assets#465
feat(mainnet): introduce assets#465al3mart merged 25 commits intoal3mart/refactor-mainnet-configfrom
Conversation
4327776 to
4be4a08
Compare
Codecov ReportAttention: Patch coverage is
@@ Coverage Diff @@
## al3mart/refactor-mainnet-config #465 +/- ##
===================================================================
+ Coverage 75.80% 76.07% +0.26%
===================================================================
Files 83 84 +1
Lines 17143 17514 +371
Branches 17143 17514 +371
===================================================================
+ Hits 12996 13323 +327
- Misses 3885 3928 +43
- Partials 262 263 +1
|
c81b9d6 to
702b7f2
Compare
bb73e34 to
b7a3e9d
Compare
fmt refactor(collator): not necessary import
bdbe427 to
e614927
Compare
Daanvdplas
left a comment
There was a problem hiding this comment.
Stopped reviewing while reviewing the nfts configuration. This is not audited yet and we should use the SDK's pallet nfts.
Can we change this and then I will finish the review.
| use super::*; | ||
|
|
||
| #[test] | ||
| fn ensure_asset_approval_deposit() { |
There was a problem hiding this comment.
Why no numbers backing the amount like done for all other deposit parameters? As well as the test below.
There was a problem hiding this comment.
Well, ExistentialDeposit is a number, and in many of the cases the "number" is calculated and then compared with the one declared above. So I didn't consider it necessary.
There was a problem hiding this comment.
I did add asserts for the concrete values anyway 👍
| } | ||
|
|
||
| #[test] | ||
| fn ensure_collection_deposit() { |
There was a problem hiding this comment.
It would be nice to explain which keys and values are used for this calculation and why. Makes it much easier to review and understand when we have to come back to it.
Daanvdplas
left a comment
There was a problem hiding this comment.
PR looking good, some final fixes and then good to go!
Daanvdplas
left a comment
There was a problem hiding this comment.
Great job on the PR and also the quick response to getting this finished!
* refactor(mainnet): include assets fmt refactor(collator): not necessary import * test(assets): add nfts config unit tests * refactor(proxy): Add assets & smart contract proxy type * refactor(assets): implement nfts runtime api * fix(pallet-nfts-api): workspace linters are not defined * docs(assets): clarify deposits * chore(proxy): improve usage of references * docs(assets): update src reference * chore(assets): update MetadataDepositBase * docs(assets): remove TODOs * refactor(proxy): revert SmartContract ProxyType * revert: e614927 * style(Cargo): revert format changes on dep comments * chore(assets): apply feedback to tests * chore(assets): removed unused type * revert: fb92342 This reverts commit fb92342. * docs(assets): better comments * chore(assets): lower nfts deposit costs * chore(assets): reduced deposit cost for AssetAccountDeposit * chore(assets): use SDK's pallet_nfts * chore(assets): better deposits & fmt Cargo * chore(assets): better comments * chore(assets): more explicit comments for deposits * chore(assets): provide src for NftsCollectionDeposit deposit * chore(assets): apply feedback
* refactor(mainnet): add governance & pallet_sudo tests (#443) * refactor(mainnet): add governance & pallet_sudo tests * refactor(sudo): sudo account defined in governance & unit test fix(governance): make governance mod public & better sudo declaration * refactor(mainnet): utility config (#438) * refactor(mainnet): add pallet_multisig to utility * test(mainnet): add pallet_multisig tests * refactor(mainnet): add pallet_utility to utility * test(mainnet): add pallet_utility tests * refactor(mainnet): add pallet_preimage to utility * test(mainnet): add pallet_preimage tests * refactor(mainnet): add pallet_scheduler to utility * test(mainnet): add pallet_scheduler tests * refactor(mainnet): pallet_proxy config & tests (#441) * refactor(mainnet): pallet_proxy config & tests * style(proxy): tests follow config order * refactor(proxy): remove asset related ProxyTypes * refactor(proxy): update ProxyDepositBase price * refactor(proxy): revert d3bfc6c and redefine ProxyType for mainnet typo * fix(proxy): amend proxy_has_deposit_base test * docs(proxy): Clarify new ProxyType definition * docs(proxy): add is_superset comments * test(proxy): clarify deposit byte size lenght * refactor(mainnet): system config (#442) * refactor(mainnet): add frame_system to system * test(mainnet): add pallet_system test * fix(mainnet): rebase fixes * fix(system): bring missing types in scope * refactor(system): add cumulus_parachain_system to system config module * test(system): add cumulus_parachain_system tests * refactor(system): add parachain_info into system config module * refactor(system): add pallet_timestamp into system config module * style(system): add ConsensusHook comment * refactor(system): separate tests by module * docs(system): document public config modules * fix(system): allow unused_imports to remove Executive warning * refactor(system): reintroduce FilteredCalls * style(system): get rid of test prefixes * style(system): relocate max_block_weigth comment * test(system): check for Hash type config * docs(system): amend outdated comments * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> --------- Co-authored-by: Daan van der Plas <[email protected]> * refactor(mainnet): monetary config (#440) * refactor(mainnet): pallet_balances & fee constants * test(mainnet): add pallet_balances tests * refactor(mainnet): add pallet_transaction_payment to monetary config * test(mainnet): add transaction_payment tests * fix(mainnet): rebase fixes * fix(monetary): don't burn dust * refactor(monetary): use treasury account instead of sudo remove extra clone * refactor(monetary): use existential_deposit instead of UNIT in dust test * refactor(monetary): Don't use DOLLARS & CENTS is defined in terms of UNITS * fix(monetary): missing doc for fn deposit * docs(monetary): remove src from docs * docs(monetary): update TransactionByteFee comments * refactor(monetary): reorg tests into modules * style(monetary): remove confussing comment * style(monetar): remove prefixes from tests changes after rebase more changes after reabse * refactor(mainnet): collation config (#439) * refactor(mainnet): add pallet_authorship to collation * test(mainnet): add pallet_auhtorship test * refactor(mainnet): add pallet_aura to collation * test(mainnet): add pallet_aura tests * refactor(mainnet): add collator_selection to collation * test(mainnet): add collator_selection tests * refactor(mainnet): add pallet_session & aura_ext to collation * test(mainnet): add pallet_session tests * chore(aura): MaxAuthorities matches max possible blocks produced * remove unnused imports * style(collation): order tests following pallet config * style(collation): remove unnecessary qualifications * style(collation): max_authorities_is_3600 * style(collation): reorg definition in session_keys_provided_by_aura test * style(collation): better Period comment * style(collation): clarify session::SessionHandler comment * refactor(collation): separate tests in modules by pallet * style(collation): Explain SessionHandler config fixes after rebase * style(collation): remove prefixes from tests * style(collation): Period comment was not helpful changes after rebase * style(utility): better test structure style(utility): fmt rebase fmt fmt * refactor(mainnet): xcm config (#455) * refactor(mainnet): rebase changes * chore(mainnet): update Cargo.lock * refactor(mainnet): utility config (#438) * refactor(mainnet): add pallet_multisig to utility * test(mainnet): add pallet_multisig tests * refactor(mainnet): add pallet_utility to utility * test(mainnet): add pallet_utility tests * refactor(mainnet): add pallet_preimage to utility * test(mainnet): add pallet_preimage tests * refactor(mainnet): add pallet_scheduler to utility * test(mainnet): add pallet_scheduler tests * refactor(mainnet): system config (#442) * refactor(mainnet): add frame_system to system * test(mainnet): add pallet_system test * fix(mainnet): rebase fixes * fix(system): bring missing types in scope * refactor(system): add cumulus_parachain_system to system config module * test(system): add cumulus_parachain_system tests * refactor(system): add parachain_info into system config module * refactor(system): add pallet_timestamp into system config module * style(system): add ConsensusHook comment * refactor(system): separate tests by module * docs(system): document public config modules * fix(system): allow unused_imports to remove Executive warning * refactor(system): reintroduce FilteredCalls * style(system): get rid of test prefixes * style(system): relocate max_block_weigth comment * test(system): check for Hash type config * docs(system): amend outdated comments * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/mod.rs Co-authored-by: Daan van der Plas <[email protected]> --------- Co-authored-by: Daan van der Plas <[email protected]> * refactor(mainnet): collation config (#439) * refactor(mainnet): add pallet_authorship to collation * test(mainnet): add pallet_auhtorship test * refactor(mainnet): add pallet_aura to collation * test(mainnet): add pallet_aura tests * refactor(mainnet): add collator_selection to collation * test(mainnet): add collator_selection tests * refactor(mainnet): add pallet_session & aura_ext to collation * test(mainnet): add pallet_session tests * chore(aura): MaxAuthorities matches max possible blocks produced * remove unnused imports * style(collation): order tests following pallet config * style(collation): remove unnecessary qualifications * style(collation): max_authorities_is_3600 * style(collation): reorg definition in session_keys_provided_by_aura test * style(collation): better Period comment * style(collation): clarify session::SessionHandler comment * refactor(collation): separate tests in modules by pallet * style(collation): Explain SessionHandler config fixes after rebase * style(collation): remove prefixes from tests * style(collation): Period comment was not helpful changes after rebase * refactor(xcm): add pallet_message_queue into xcm config module * test(xcm): add message_queue tests * test(xcm): test location, transactor and barrier type definitions * refactor(xcm): include pallet_xcmp_queue into xcm config module * test(xcm): add pallet_xcmp_queue configuration tests * test(xcm): add xcm_executor configuration tests * test(xcm): adding pallet_xcm config tests * fix(xcm): typo fix(xcm): XcmReserveTransferFilter is Everything * refactor(xcm): use unitype for MaxRemoteLockConsumers * style(xcm): tests separated in modules * style(xcm): better naming for XcmTeleportFilter test * style(xcm): test naming and order * docs(xcm): clarifying comments for specific xcmp_queueu types * style(xcm): typo * style(xcm): better name for reserves tests * refactor(xcm): Use `NativeAssetFrom<T>` as `XcmReserveTransferFilter` (#459) * refactor(xcm): Use NativeAssetFrom<T> as XcmReserveTransferFilter style:fmt * fix(xcm): NativeAssetFrom<AssetHub> filters everything but DOT from AH * fix(xcm): XcmReserveTransferFilter filters only by asset fix changes after rebase fmt * fix(xcm): remove waived locations (#456) * fix(xcm): no locations are waived * test(xcm): improved waived_location test changes after rebase * style(xcm): clarify that we are not waiving fees for any location * fix(xcm): charge delivery fees (#457) * resolve rebase conflicts * fix(xcm): reserve_transfer_native_asset_from_para_to_system_para accounts for delivery fees * fix(integration-tests): handle delivery_fees only with mainnet feature on fmt after rebase fmt changes after rebase fmt fmt * test(xcm): address feedback from #459 typos AssetFilter * style(xcm): locate reserve tests within executor lint * fix(integration-test): improve tests & remove feature gated compilation unnecessary Fungibles * refactor: integration tests mainnet xcm (#466) * refactor: integration tests mainnet xcm * fix: remove unused ED rebase fmt fmt * Update runtime/mainnet/src/config/xcm.rs Co-authored-by: Daan van der Plas <[email protected]> * refactor(xcm): use TreasuryAccount from monetary * chore(xcm): unused imports * chore(xcm): amend test modules * chore(integration-tests): amend reserve_transfer_native_asset_from_para_to_system * chore(xcm): divive reserve filter test in two * chore(xcm): fmt * style(integration-tests): fix unwanted indentation * test(xcm): more focused unit tests * Update runtime/mainnet/src/config/xcm.rs Co-authored-by: Daan van der Plas <[email protected]> * Update runtime/mainnet/src/config/xcm.rs Co-authored-by: Daan van der Plas <[email protected]> * fix(test): amend suggestions --------- Co-authored-by: Daan van der Plas <[email protected]> * feat(mainnet): introduce assets (#465) * refactor(mainnet): include assets fmt refactor(collator): not necessary import * test(assets): add nfts config unit tests * refactor(proxy): Add assets & smart contract proxy type * refactor(assets): implement nfts runtime api * fix(pallet-nfts-api): workspace linters are not defined * docs(assets): clarify deposits * chore(proxy): improve usage of references * docs(assets): update src reference * chore(assets): update MetadataDepositBase * docs(assets): remove TODOs * refactor(proxy): revert SmartContract ProxyType * revert: e614927 * style(Cargo): revert format changes on dep comments * chore(assets): apply feedback to tests * chore(assets): removed unused type * revert: fb92342 This reverts commit fb92342. * docs(assets): better comments * chore(assets): lower nfts deposit costs * chore(assets): reduced deposit cost for AssetAccountDeposit * chore(assets): use SDK's pallet_nfts * chore(assets): better deposits & fmt Cargo * chore(assets): better comments * chore(assets): more explicit comments for deposits * chore(assets): provide src for NftsCollectionDeposit deposit * chore(assets): apply feedback * chore(monetary): clean unnecessary comments * chore(utility): make deposit calc explicit. (#469) chore(utility): explicit deposit justification rebase fixes * chore(proxy): reintroduce Asset related proxy types * syle(proxy): Clarify proxy test comments --------- Co-authored-by: Daan van der Plas <[email protected]>
Adds assets into mainnet runtime:
Refactors
ProxyTypesuch that assets calls are taken into account.Relevant configuration:
pallet-assetsDeposit costs:
The amount of funds that must be reserved for a non-provider asset account to be maintained has been reduced by a factor of 100.
pallet-nftsDeposit Costs:
I've lowered certain deposits for NFTs such that the deposit cost of creating a collection remains as it has been calculated (it didn't seem high given the current pricing) but lowers the the deposit costs for the rest of actions by a factor of 100. This should easy the usage of the created assets.
I'm not that concerned about the rest of deposits myself, but happy to hear different opinions.
Relevant reference to tackle these numbers: RFC#45
[sc-2764]