From 9eb25d7ca2c2a52e339ec3a535b59714fc708302 Mon Sep 17 00:00:00 2001 From: didiermis Date: Tue, 1 Nov 2022 20:55:20 -0600 Subject: [PATCH 01/12] Update mock.rs --- pallets/proxy-financial/src/functions.rs | 4 ++-- pallets/proxy-financial/src/mock.rs | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pallets/proxy-financial/src/functions.rs b/pallets/proxy-financial/src/functions.rs index 290f8b9e..ca32a387 100644 --- a/pallets/proxy-financial/src/functions.rs +++ b/pallets/proxy-financial/src/functions.rs @@ -398,7 +398,7 @@ impl Pallet { )?; }, CUDAction::Delete => { - // Ensure admin cannot delete himself + // Ensure admin cannot delete themselves ensure!(user.0 != admin, Error::::AdministatorsCannotDeleteThemselves); Self::do_delete_user( @@ -1194,7 +1194,7 @@ impl Pallet { // B U L K U P L O A D T R A N S A C T I O N S pub fn do_up_bulk_upload( - user: T::AccountId, //TODO: Remove underscore when permissions are implemented + user: T::AccountId, project_id: [u8;32], drawdown_id: [u8;32], description: FieldDescription, diff --git a/pallets/proxy-financial/src/mock.rs b/pallets/proxy-financial/src/mock.rs index f6f0be0c..e4e42069 100644 --- a/pallets/proxy-financial/src/mock.rs +++ b/pallets/proxy-financial/src/mock.rs @@ -6,11 +6,10 @@ use sp_runtime::{ testing::Header, traits::{BlakeTwo256, IdentityLookup}, }; -use frame_system::EnsureRoot; - type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; +use frame_system::EnsureRoot; // Configure a mock runtime to test the pallet. frame_support::construct_runtime!( @@ -20,7 +19,7 @@ frame_support::construct_runtime!( UncheckedExtrinsic = UncheckedExtrinsic, { System: frame_system::{Pallet, Call, Config, Storage, Event}, - Proxy: pallet_proxy_financial::{Pallet, Call, Storage, Event}, + ProxyFinancial: pallet_proxy_financial::{Pallet, Call, Storage, Event}, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, RBAC: pallet_rbac::{Pallet, Call, Storage, Event}, } @@ -136,5 +135,7 @@ impl pallet_rbac::Config for Test { // Build genesis storage according to the mock runtime. pub fn new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::default().build_storage::().unwrap().into() + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::default().build_storage::().unwrap().into(); + t.execute_with(|| ProxyFinancial::do_initial_setup().expect("Error on configuring initial setup")); + t } From faaa61c623bcb8a56c962dcc3c14d280e9d80c2d Mon Sep 17 00:00:00 2001 From: didiermis Date: Fri, 4 Nov 2022 10:56:25 -0600 Subject: [PATCH 02/12] update variable name --- pallets/proxy-financial/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/proxy-financial/src/lib.rs b/pallets/proxy-financial/src/lib.rs index 8a9922a6..bcb54089 100644 --- a/pallets/proxy-financial/src/lib.rs +++ b/pallets/proxy-financial/src/lib.rs @@ -698,7 +698,7 @@ pub mod pallet { origin: OriginFor, project_id: [u8;32], drawdown_id: [u8;32], - bulkupdate: Option, + bulkupload: Option, transactions: Option, // expenditure_id Option, // amount From e2141830a8339d3b2fa223dc52cc775b045a392a Mon Sep 17 00:00:00 2001 From: didiermis Date: Fri, 4 Nov 2022 11:10:19 -0600 Subject: [PATCH 03/12] Update mock constants --- pallets/proxy-financial/src/mock.rs | 4 +-- pallets/proxy-financial/src/tests.rs | 45 ++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/pallets/proxy-financial/src/mock.rs b/pallets/proxy-financial/src/mock.rs index e4e42069..9af2e752 100644 --- a/pallets/proxy-financial/src/mock.rs +++ b/pallets/proxy-financial/src/mock.rs @@ -118,7 +118,7 @@ parameter_types! { pub const MaxRolesPerPallet: u32 = 6; pub const RoleMaxLen: u32 = 25; pub const PermissionMaxLen: u32 = 25; - pub const MaxPermissionsPerRole: u32 = 11; + pub const MaxPermissionsPerRole: u32 = 20; pub const MaxRolesPerUser: u32 = 2; pub const MaxUsersPerRole: u32 = 2; } @@ -138,4 +138,4 @@ pub fn new_test_ext() -> sp_io::TestExternalities { let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::default().build_storage::().unwrap().into(); t.execute_with(|| ProxyFinancial::do_initial_setup().expect("Error on configuring initial setup")); t -} +} \ No newline at end of file diff --git a/pallets/proxy-financial/src/tests.rs b/pallets/proxy-financial/src/tests.rs index 6741ae23..c6863149 100644 --- a/pallets/proxy-financial/src/tests.rs +++ b/pallets/proxy-financial/src/tests.rs @@ -1,3 +1,44 @@ -use crate::{mock::*, Error}; -use frame_support::{assert_noop, assert_ok}; +use crate::{mock::*, Error, types::*, Config}; +use frame_support::{assert_ok, BoundedVec, traits::ConstU32, assert_noop}; +use pallet_rbac::types::RoleBasedAccessControl; +use sp_io::hashing::blake2_256; +use std::vec; + +type RbacErr = pallet_rbac::Error; + +fn pallet_id() ->[u8;32]{ + ProxyFinancial::pallet_id().to_id() +} + +fn pallet_name()-> pallet_rbac::types::IdOrVec { + pallet_rbac::types::IdOrVec::Vec( + "pallet_test".as_bytes().to_vec() + ) +} + +fn return_field_name(name: &str) -> FieldName { + let name: BoundedVec> = name.as_bytes().to_vec().try_into().unwrap_or_default(); + name +} +// U S E R S +// ----------------------------------------------------------------------------------------- +#[test] +fn register_admin_works() { + new_test_ext().execute_with(|| { + let admin = 1; + }); +} + +// #[test] +// fn sudo_register_administrator_account_works() { +// new_test_ext().execute_with(|| { +// // let alice_name = return_field_name("Alice Keys"); +// // assert_ok!(ProxyFinancial::sudo_add_administrator( +// // Origin::signed(1), +// // 1, +// // alice_name.clone() +// // )); + +// }); +// } From f14d43300bac8b0ab1c69c0a9cc4ecd4c9e891d7 Mon Sep 17 00:00:00 2001 From: didiermis Date: Fri, 4 Nov 2022 11:27:55 -0600 Subject: [PATCH 04/12] update variable name --- pallets/proxy-financial/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/proxy-financial/src/lib.rs b/pallets/proxy-financial/src/lib.rs index bcb54089..e1f8d5f9 100644 --- a/pallets/proxy-financial/src/lib.rs +++ b/pallets/proxy-financial/src/lib.rs @@ -710,7 +710,7 @@ pub mod pallet { let who = ensure_signed(origin)?; // origin need to be an admin // Match bulkupdate - match bulkupdate { + match bulkupload { Some(approval) => { // Execute bulkupload flow (construction loan & developer equity) match approval { From 28552be8ab58f039214e26c6403ee5ef71bde09b Mon Sep 17 00:00:00 2001 From: didiermis Date: Fri, 4 Nov 2022 11:44:11 -0600 Subject: [PATCH 05/12] Update feedback lifecycle for both flows EB5 & Bulkupload. Fix #241 --- pallets/proxy-financial/src/functions.rs | 7 ++++++- pallets/proxy-financial/src/lib.rs | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pallets/proxy-financial/src/functions.rs b/pallets/proxy-financial/src/functions.rs index ca32a387..919c09b9 100644 --- a/pallets/proxy-financial/src/functions.rs +++ b/pallets/proxy-financial/src/functions.rs @@ -846,6 +846,7 @@ impl Pallet { >::try_mutate::<_,_,DispatchError,_>(transaction_id, |transaction_data| { let transaction_data = transaction_data.as_mut().ok_or(Error::::TransactionNotFound)?; transaction_data.status = TransactionStatus::Submitted; + transaction_data.feedback = None; Ok(()) })?; } @@ -1213,10 +1214,13 @@ impl Pallet { // Ensure amount is valid Self::is_amount_valid(total_amount)?; - //Ensure only Construction loan & developer equity drawdowns can be bulk uploaded + //Ensure only Construction loan & developer equity drawdowns can call bulk uploaded let drawdown_data = DrawdownsInfo::::get(drawdown_id).ok_or(Error::::DrawdownNotFound)?; ensure!(drawdown_data.drawdown_type == DrawdownType::ConstructionLoan || drawdown_data.drawdown_type == DrawdownType::DeveloperEquity, Error::::DrawdownTypeNotSupportedForBulkUpload); + //Ensure drawdown status is draft or rejected + ensure!(drawdown_data.status == DrawdownStatus::Draft || drawdown_data.status == DrawdownStatus::Rejected, Error::::DrawdownStatusNotSupportedForBulkUpload); + // Ensure documents is not empty ensure!(!documents.is_empty(), Error::::DocumentsIsEmpty); @@ -1230,6 +1234,7 @@ impl Pallet { mod_drawdown_data.description = Some(description); mod_drawdown_data.documents = Some(documents); mod_drawdown_data.status = DrawdownStatus::Submitted; + mod_drawdown_data.feedback = None; Ok(()) })?; diff --git a/pallets/proxy-financial/src/lib.rs b/pallets/proxy-financial/src/lib.rs index e1f8d5f9..9275b352 100644 --- a/pallets/proxy-financial/src/lib.rs +++ b/pallets/proxy-financial/src/lib.rs @@ -447,6 +447,8 @@ pub mod pallet { UserHasAssignedProjectsCannotUpdateRole, /// Cannot delete user if the user is assigned to a project UserHasAssignedProjectsCannotDelete, + /// Cannot send a bulkupload drawdown if the drawdown status isn't in draft or rejected + DrawdownStatusNotSupportedForBulkUpload, } From 7a2a0dfd0ffdbc2e4517d0b4f558997950f5d90e Mon Sep 17 00:00:00 2001 From: didiermis Date: Fri, 4 Nov 2022 12:41:49 -0600 Subject: [PATCH 06/12] Update pallet name. --- Cargo.lock | 36 +++++++++---------- .../Cargo.toml | 2 +- .../{proxy-financial => fund-admin}/README.md | 0 .../src/benchmarking.rs | 0 .../src/functions.rs | 0 .../src/lib.rs | 0 .../src/mock.rs | 4 +-- .../src/tests.rs | 4 +-- .../src/types.rs | 0 runtime/Cargo.toml | 4 +-- runtime/src/lib.rs | 6 ++-- 11 files changed, 28 insertions(+), 28 deletions(-) rename pallets/{proxy-financial => fund-admin}/Cargo.toml (98%) rename pallets/{proxy-financial => fund-admin}/README.md (100%) rename pallets/{proxy-financial => fund-admin}/src/benchmarking.rs (100%) rename pallets/{proxy-financial => fund-admin}/src/functions.rs (100%) rename pallets/{proxy-financial => fund-admin}/src/lib.rs (100%) rename pallets/{proxy-financial => fund-admin}/src/mock.rs (96%) rename pallets/{proxy-financial => fund-admin}/src/tests.rs (91%) rename pallets/{proxy-financial => fund-admin}/src/types.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index bd22f41e..e9d0501e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3098,13 +3098,13 @@ dependencies = [ "pallet-collective", "pallet-confidential-docs", "pallet-fruniques", + "pallet-fund-admin", "pallet-gated-marketplace", "pallet-grandpa", "pallet-identity", "pallet-indices", "pallet-membership", "pallet-node-authorization", - "pallet-proxy-financial", "pallet-randomness-collective-flip", "pallet-rbac", "pallet-recovery", @@ -5532,6 +5532,23 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-fund-admin" +version = "4.0.0-dev" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-rbac", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", +] + [[package]] name = "pallet-gated-marketplace" version = "4.0.0-dev" @@ -5855,23 +5872,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-proxy-financial" -version = "4.0.0-dev" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-rbac", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", -] - [[package]] name = "pallet-randomness-collective-flip" version = "4.0.0-dev" diff --git a/pallets/proxy-financial/Cargo.toml b/pallets/fund-admin/Cargo.toml similarity index 98% rename from pallets/proxy-financial/Cargo.toml rename to pallets/fund-admin/Cargo.toml index 210f9882..7ed04d14 100644 --- a/pallets/proxy-financial/Cargo.toml +++ b/pallets/fund-admin/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "pallet-proxy-financial" +name = "pallet-fund-admin" version = "4.0.0-dev" description = "Proxy Financial Pallet" authors = ["Hashed }, - ProxyFinancial: pallet_proxy_financial::{Pallet, Call, Storage, Event}, + FundAdmin: pallet_proxy_financial::{Pallet, Call, Storage, Event}, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, RBAC: pallet_rbac::{Pallet, Call, Storage, Event}, } @@ -136,6 +136,6 @@ impl pallet_rbac::Config for Test { // Build genesis storage according to the mock runtime. pub fn new_test_ext() -> sp_io::TestExternalities { let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::default().build_storage::().unwrap().into(); - t.execute_with(|| ProxyFinancial::do_initial_setup().expect("Error on configuring initial setup")); + t.execute_with(|| FundAdmin::do_initial_setup().expect("Error on configuring initial setup")); t } \ No newline at end of file diff --git a/pallets/proxy-financial/src/tests.rs b/pallets/fund-admin/src/tests.rs similarity index 91% rename from pallets/proxy-financial/src/tests.rs rename to pallets/fund-admin/src/tests.rs index c6863149..bf587ceb 100644 --- a/pallets/proxy-financial/src/tests.rs +++ b/pallets/fund-admin/src/tests.rs @@ -7,7 +7,7 @@ use std::vec; type RbacErr = pallet_rbac::Error; fn pallet_id() ->[u8;32]{ - ProxyFinancial::pallet_id().to_id() + FundAdmin::pallet_id().to_id() } fn pallet_name()-> pallet_rbac::types::IdOrVec { @@ -33,7 +33,7 @@ fn register_admin_works() { // fn sudo_register_administrator_account_works() { // new_test_ext().execute_with(|| { // // let alice_name = return_field_name("Alice Keys"); -// // assert_ok!(ProxyFinancial::sudo_add_administrator( +// // assert_ok!(FundAdmin::sudo_add_administrator( // // Origin::signed(1), // // 1, // // alice_name.clone() diff --git a/pallets/proxy-financial/src/types.rs b/pallets/fund-admin/src/types.rs similarity index 100% rename from pallets/proxy-financial/src/types.rs rename to pallets/fund-admin/src/types.rs diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 56215643..a788738b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -67,7 +67,7 @@ pallet-bitcoin-vaults = { default-features = false, path = "../pallets/bitcoin-v pallet-gated-marketplace = { default-features = false, path = "../pallets/gated-marketplace" } pallet-rbac = { default-features = false, path = "../pallets/rbac" } pallet-confidential-docs = { default-features = false, path = "../pallets/confidential-docs" } -pallet-proxy-financial = { default-features = false, path = "../pallets/proxy-financial" } +pallet-fund-admin = { default-features = false, path = "../pallets/fund-admin" } [build-dependencies] @@ -107,7 +107,7 @@ std = [ "pallet-gated-marketplace/std", "pallet-rbac/std", "pallet-confidential-docs/std", - "pallet-proxy-financial/std", + "pallet-fund-admin/std", "sp-api/std", "sp-block-builder/std", "sp-consensus-aura/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index c9121ab6..7fdbd1ef 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -573,9 +573,9 @@ parameter_types! { pub const MaxDrawdownsByStatus:u32 = 2000; pub const MaxExpendituresPerProject:u32 = 1000; - } -impl pallet_proxy_financial::Config for Runtime { + +impl pallet_fund_admin::Config for Runtime { type Event = Event; type Timestamp = Timestamp; type Moment = Moment; @@ -802,7 +802,7 @@ construct_runtime!( BitcoinVaults: pallet_bitcoin_vaults, RBAC: pallet_rbac, ConfidentialDocs: pallet_confidential_docs, - ProxyFinancial: pallet_proxy_financial, + FundAdmin: pallet_fund_admin, } ); From 1e4e783d24b76f70d820243ee59181048672d0ea Mon Sep 17 00:00:00 2001 From: Erick Casanova Date: Mon, 7 Nov 2022 12:00:02 -0600 Subject: [PATCH 07/12] add storage map to have NFTs verified --- pallets/fruniques/src/lib.rs | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/pallets/fruniques/src/lib.rs b/pallets/fruniques/src/lib.rs index 96991fbd..35f073a9 100644 --- a/pallets/fruniques/src/lib.rs +++ b/pallets/fruniques/src/lib.rs @@ -48,6 +48,8 @@ pub mod pallet { FruniqueCreated(T::AccountId, T::AccountId, T::CollectionId, T::ItemId), // A frunique/unique was successfully divided! FruniqueDivided(T::AccountId, T::AccountId, T::CollectionId, T::ItemId), + // A frunique has been verified. + FruniqueVerified(T::AccountId, CollectionId, ItemId), // Counter should work? NextFrunique(u32), } @@ -82,6 +84,8 @@ pub mod pallet { CollectionAlreadyExists, // Frunique already exists FruniqueAlreadyExists, + // Frunique already verified + FruniqueAlreadyVerified } #[pallet::storage] @@ -122,6 +126,19 @@ pub mod pallet { ValueQuery, >; + #[pallet::storage] + #[pallet::getter(fn frunique_verified)] + /// Keeps track of verified fruniques. + pub(super) type FruniqueVerified = StorageDoubleMap< + _, + Blake2_128Concat, + CollectionId, + Blake2_128Concat, + ItemId, + bool, + ValueQuery, + >; + #[pallet::storage] #[pallet::getter(fn frunique_child)] /// Keeps track of hierarchical information for a frunique. @@ -280,6 +297,28 @@ pub mod pallet { Ok(()) } + /// ## Verification of the NFT + /// ### Parameters: + /// - `origin` must be signed by the owner of the frunique. + /// - `class_id` must be a valid class of the asset class. + /// - `instance_id` must be a valid instance of the asset class. + #[pallet::weight(10_000 + T::DbWeight::get().writes(1))] + pub fn verify( + origin: OriginFor, + class_id: CollectionId, + instance_id: ItemId, + ) -> DispatchResult { + ensure!(Self::item_exists(&class_id, &instance_id), >::FruniqueNotFound); + + let owner: T::AccountId = ensure_signed(origin.clone())?; + + >::insert(class_id, instance_id, true); + + Self::deposit_event(Event::FruniqueVerified(owner, class_id, instance_id)); + + Ok(()) + } + /// ## Force set counter /// ### Parameters: /// `origin` must be signed by the Root origin. From 3d246bb61aefcaa243932615838a8ddb214d1535 Mon Sep 17 00:00:00 2001 From: didiermis Date: Mon, 7 Nov 2022 12:26:44 -0600 Subject: [PATCH 08/12] Update naics code data type. Fix #245 --- pallets/fund-admin/src/functions.rs | 20 ++++++++++++++------ pallets/fund-admin/src/lib.rs | 4 ++-- pallets/fund-admin/src/types.rs | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/pallets/fund-admin/src/functions.rs b/pallets/fund-admin/src/functions.rs index 919c09b9..f99f86a7 100644 --- a/pallets/fund-admin/src/functions.rs +++ b/pallets/fund-admin/src/functions.rs @@ -87,7 +87,7 @@ impl Pallet { Option>, Option, Option, - Option, + Option>, Option, CUDAction, Option<[u8;32]>, @@ -566,7 +566,7 @@ impl Pallet { Option>, // 0: name Option, // 1: type Option, // 2: amount - Option, // 3: naics code + Option>, // 3: naics code Option, // 4: jobs multiplier CUDAction, // 5: CUDAction Option<[u8;32]>, // 6: expenditure_id @@ -639,7 +639,7 @@ impl Pallet { name: BoundedVec, expenditure_type: ExpenditureType, expenditure_amount: u64, - naics_code: Option, + naics_code: Option>, jobs_multiplier: Option, ) -> DispatchResult { //Ensure project exists @@ -657,13 +657,21 @@ impl Pallet { // Create expenditure id let expenditure_id = (project_id, name.clone(), expenditure_type, timestamp).using_encoded(blake2_256); + // NAICS code + let get_naics_code = match naics_code { + Some(mod_naics_code) => { + Some(mod_naics_code.into_inner()[0].clone()) + }, + None => None, + }; + // Create expenditurte data let expenditure_data = ExpenditureData { project_id, name: name.into_inner()[0].clone(), expenditure_type, expenditure_amount, - naics_code, + naics_code: get_naics_code, jobs_multiplier, }; @@ -687,7 +695,7 @@ impl Pallet { expenditure_id: [u8;32], name: Option>, expenditure_amount: Option, - naics_code: Option, + naics_code: Option>, jobs_multiplier: Option, ) -> DispatchResult { //Ensure project exists @@ -715,7 +723,7 @@ impl Pallet { expenditure.expenditure_amount = mod_expenditure_amount; } if let Some(mod_naics_code) = naics_code { - expenditure.naics_code = Some(mod_naics_code); + expenditure.naics_code = Some(mod_naics_code.into_inner()[0].clone()); } if let Some(mod_jobs_multiplier) = jobs_multiplier { expenditure.jobs_multiplier = Some(mod_jobs_multiplier); diff --git a/pallets/fund-admin/src/lib.rs b/pallets/fund-admin/src/lib.rs index 9275b352..cb3fb672 100644 --- a/pallets/fund-admin/src/lib.rs +++ b/pallets/fund-admin/src/lib.rs @@ -541,7 +541,7 @@ pub mod pallet { Option>, Option, Option, - Option, + Option>, Option, CUDAction, Option<[u8;32]>, @@ -615,7 +615,7 @@ pub mod pallet { Option>, Option, Option, - Option, + Option>, Option, CUDAction, Option<[u8;32]>, diff --git a/pallets/fund-admin/src/types.rs b/pallets/fund-admin/src/types.rs index 412a8a90..6ccaf332 100644 --- a/pallets/fund-admin/src/types.rs +++ b/pallets/fund-admin/src/types.rs @@ -70,7 +70,7 @@ pub struct ExpenditureData { pub name: FieldName, pub expenditure_type: ExpenditureType, pub expenditure_amount: u64, - pub naics_code: Option, + pub naics_code: Option, pub jobs_multiplier: Option, } From 48dbb89a635e22c54597d0df7c49acf943bef1ff Mon Sep 17 00:00:00 2001 From: didiermis Date: Mon, 7 Nov 2022 12:45:57 -0600 Subject: [PATCH 09/12] Update storagemap hasher type. Fix #242 --- pallets/fund-admin/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pallets/fund-admin/src/lib.rs b/pallets/fund-admin/src/lib.rs index cb3fb672..43115bf1 100644 --- a/pallets/fund-admin/src/lib.rs +++ b/pallets/fund-admin/src/lib.rs @@ -127,7 +127,7 @@ pub mod pallet { #[pallet::getter(fn users_info)] pub(super) type UsersInfo = StorageMap< _, - Identity, + Blake2_128Concat, T::AccountId, // Key account_id UserData, // Value UserData OptionQuery, @@ -157,7 +157,7 @@ pub mod pallet { #[pallet::getter(fn projects_by_user)] pub(super) type ProjectsByUser = StorageMap< _, - Identity, + Blake2_128Concat, T::AccountId, // Key account_id BoundedVec<[u8;32], T::MaxProjectsPerUser>, // Value projects ValueQuery, From 023272dafdea86d86bb6b1e12aed32454a850a19 Mon Sep 17 00:00:00 2001 From: didiermis Date: Mon, 7 Nov 2022 12:50:36 -0600 Subject: [PATCH 10/12] Update RBAC runtime constants. Fix #244 --- pallets/fund-admin/src/mock.rs | 14 +++++++------- runtime/src/lib.rs | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pallets/fund-admin/src/mock.rs b/pallets/fund-admin/src/mock.rs index c3c14161..b8fba3b8 100644 --- a/pallets/fund-admin/src/mock.rs +++ b/pallets/fund-admin/src/mock.rs @@ -114,13 +114,13 @@ impl pallet_timestamp::Config for Test { } parameter_types! { - pub const MaxScopesPerPallet: u32 = 2; - pub const MaxRolesPerPallet: u32 = 6; - pub const RoleMaxLen: u32 = 25; - pub const PermissionMaxLen: u32 = 25; - pub const MaxPermissionsPerRole: u32 = 20; - pub const MaxRolesPerUser: u32 = 2; - pub const MaxUsersPerRole: u32 = 2; + pub const MaxScopesPerPallet: u32 = 1000; + pub const MaxRolesPerPallet: u32 = 50; + pub const RoleMaxLen: u32 = 50; + pub const PermissionMaxLen: u32 = 50; + pub const MaxPermissionsPerRole: u32 = 100; + pub const MaxRolesPerUser: u32 = 10; + pub const MaxUsersPerRole: u32 = 2500; } impl pallet_rbac::Config for Test { type Event = Event; diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 7fdbd1ef..90795753 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -691,12 +691,12 @@ impl pallet_confidential_docs::Config for Runtime { parameter_types! { pub const MaxScopesPerPallet: u32 = 1000; - pub const MaxRolesPerPallet: u32 = 20; - pub const RoleMaxLen: u32 = 30; - pub const PermissionMaxLen: u32 = 30; - pub const MaxPermissionsPerRole: u32 = 12; + pub const MaxRolesPerPallet: u32 = 50; + pub const RoleMaxLen: u32 = 50; + pub const PermissionMaxLen: u32 = 50; + pub const MaxPermissionsPerRole: u32 = 100; pub const MaxRolesPerUser: u32 = 10; - pub const MaxUsersPerRole: u32 = 10; + pub const MaxUsersPerRole: u32 = 2500; } impl pallet_rbac::Config for Runtime { type Event = Event; From 1fa981d78934cf0c34abd5e91f712206e70a4f3b Mon Sep 17 00:00:00 2001 From: Erick Casanova Date: Mon, 7 Nov 2022 17:36:58 -0600 Subject: [PATCH 11/12] remove unused constans on fruniques pallet --- pallets/fruniques/src/lib.rs | 3 --- parachain-runtime/src/lib.rs | 2 -- runtime/src/lib.rs | 2 -- 3 files changed, 7 deletions(-) diff --git a/pallets/fruniques/src/lib.rs b/pallets/fruniques/src/lib.rs index 35f073a9..9d3b1f1a 100644 --- a/pallets/fruniques/src/lib.rs +++ b/pallets/fruniques/src/lib.rs @@ -30,9 +30,6 @@ pub mod pallet { /// Maximum number of children a Frunique can have #[pallet::constant] type ChildMaxLen: Get; - /// Solution to fix issue with an optional BoundedVec - #[pallet::constant] - type LimitBoundedVec: Get; } #[pallet::pallet] diff --git a/parachain-runtime/src/lib.rs b/parachain-runtime/src/lib.rs index 62edf473..b4113974 100644 --- a/parachain-runtime/src/lib.rs +++ b/parachain-runtime/src/lib.rs @@ -946,7 +946,6 @@ parameter_types! { pub const KeyLimit: u32 = 32; pub const ValueLimit: u32 = 256; pub const ChildMaxLen: u32 = 25; - pub const LimitBoundedVec: u8 = 1; } impl pallet_uniques::Config for Runtime { @@ -974,7 +973,6 @@ impl pallet_fruniques::Config for Runtime { type Event = Event; type RemoveOrigin = RootOrThreeFifthsOfCouncil; type ChildMaxLen = ChildMaxLen; - type LimitBoundedVec = LimitBoundedVec; } parameter_types! { diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 423aa014..58602820 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -520,7 +520,6 @@ parameter_types! { pub const KeyLimit: u32 = 32; pub const ValueLimit: u32 = 256; pub const ChildMaxLen: u32 = 100; - pub const LimitBoundedVec: u8 = 1; } impl pallet_uniques::Config for Runtime { @@ -552,7 +551,6 @@ impl pallet_fruniques::Config for Runtime { >; type ChildMaxLen = ChildMaxLen; - type LimitBoundedVec = LimitBoundedVec; } From 5830369bd483fb508cc05123d83a060a2114e9fd Mon Sep 17 00:00:00 2001 From: Erick Casanova Date: Mon, 7 Nov 2022 17:40:37 -0600 Subject: [PATCH 12/12] Release 125 Remove dependencies on fruniques unused constant --- pallets/fruniques/src/mock.rs | 2 -- pallets/gated-marketplace/src/mock.rs | 2 -- runtime/src/lib.rs | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/pallets/fruniques/src/mock.rs b/pallets/fruniques/src/mock.rs index 2b61d62b..ddb59b34 100644 --- a/pallets/fruniques/src/mock.rs +++ b/pallets/fruniques/src/mock.rs @@ -27,7 +27,6 @@ construct_runtime!( parameter_types! { pub const BlockHashCount: u64 = 250; pub const ChildMaxLen: u32 = 10; - pub const LimitBoundedVec: u8 = 1; } impl frame_system::Config for Test { @@ -61,7 +60,6 @@ impl pallet_fruniques::Config for Test { type Event = Event; type RemoveOrigin = EnsureRoot; type ChildMaxLen = ChildMaxLen; - type LimitBoundedVec = LimitBoundedVec; } parameter_types! { diff --git a/pallets/gated-marketplace/src/mock.rs b/pallets/gated-marketplace/src/mock.rs index f93abb24..f22786e9 100644 --- a/pallets/gated-marketplace/src/mock.rs +++ b/pallets/gated-marketplace/src/mock.rs @@ -94,14 +94,12 @@ impl pallet_gated_marketplace::Config for Test { } parameter_types! { pub const ChildMaxLen: u32 = 10; - pub const LimitBoundedVec: u8 = 1; } impl pallet_fruniques::Config for Test { type Event = Event; type RemoveOrigin = EnsureRoot; type ChildMaxLen = ChildMaxLen; - type LimitBoundedVec = LimitBoundedVec; } parameter_types! { diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 58602820..119d6247 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -106,7 +106,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 124, + spec_version: 125, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1,