Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
37be68e
Update cargo.toml
didiermis Sep 8, 2022
6635aed
Create benchmarking.rs
didiermis Sep 8, 2022
981004f
update initial mock.rs
didiermis Sep 8, 2022
6fb1ace
Update initial tests.rs
didiermis Sep 8, 2022
a8d58af
Update initial readme.md
didiermis Sep 8, 2022
b5a0b0e
create initial functios.rs
didiermis Sep 8, 2022
538e231
Create initial types.rs
didiermis Sep 8, 2022
b028428
Update initial test.rs
didiermis Sep 8, 2022
c845aac
Update initial lib.rs
didiermis Sep 8, 2022
67a255e
add initial data structures
didiermis Sep 12, 2022
dab1a7e
Declare initial contants
didiermis Sep 12, 2022
90543e6
declare initial constants mock.rs
didiermis Sep 12, 2022
b483cec
add proxy pallet to runtime
didiermis Sep 12, 2022
1cbfbaa
add proxy pallet to runtime
didiermis Sep 12, 2022
b533565
add initial data structures to type.rs
didiermis Sep 12, 2022
7c75939
add proxy pallet
didiermis Sep 12, 2022
59cc214
remove pallet balances
didiermis Sep 12, 2022
c19f044
add a helper function to create the project
didiermis Sep 12, 2022
c2c22c5
add storagemaps for users and projects
didiermis Sep 12, 2022
a303456
add constant CIDMaxLen
didiermis Sep 12, 2022
65cfec3
add constant CIDMaxLen
didiermis Sep 12, 2022
7e89ba4
loosely coupling with timestamp pallet
didiermis Sep 13, 2022
870fa1b
Add some events & errors
didiermis Sep 13, 2022
6461904
add flow for do_create_project
didiermis Sep 13, 2022
921a622
add timestamp pallet to runtime
didiermis Sep 13, 2022
b9e5c60
add pallet rbac to cargo.toml
didiermis Sep 14, 2022
a69456b
loosely coupling rbac pallet
didiermis Sep 14, 2022
88fb6f1
change derive traits for UserData struct
didiermis Sep 14, 2022
ce6403f
add a storagevalue to generate a global scope
didiermis Sep 14, 2022
7025977
add missing event MarketplaceSetupCompleted
didiermis Sep 14, 2022
6c901c4
add helper function do_add_user
didiermis Sep 15, 2022
efb8bf3
add paller error & events
didiermis Sep 15, 2022
60c14cb
change UserData structure
didiermis Sep 15, 2022
25d7589
add type MaxUserPerProject to mock.rs
didiermis Sep 15, 2022
131ee42
add type MaxUserPerProject to runtime.rs
didiermis Sep 15, 2022
0f89cd2
add flow for edit project
didiermis Sep 15, 2022
b3bd387
add extrinsic edit_project, add constants to retrict the number of us…
didiermis Sep 15, 2022
3dfd27c
Add flow for add or change the status of the project
didiermis Sep 15, 2022
c6d23c4
add validations to preven user modify dates with the wrong time
didiermis Sep 15, 2022
5fe9595
add flow to delete a selected project
didiermis Sep 15, 2022
ba13080
set initial permissions for administrator rol
didiermis Sep 16, 2022
48c9401
Add the flow to set global administrators
didiermis Sep 16, 2022
de98e14
add administrator validations
didiermis Sep 16, 2022
d47143e
Update: split user assignation from user registry
didiermis Sep 19, 2022
14d2875
create an scope each time a project is registered
didiermis Sep 19, 2022
853e36f
insert user into an rbac scope pallet
didiermis Sep 19, 2022
e5f93b3
remove field related_projects from UserData structure
didiermis Sep 19, 2022
2a42967
add storage map ProjectsByUser
didiermis Sep 19, 2022
c5d4479
add validations for user assignation
didiermis Sep 19, 2022
ecae53c
change storage maps to ValueQuery, add pallet errors & events
didiermis Sep 19, 2022
9426bed
Create a global scope getter to avoid boilerplate
didiermis Sep 19, 2022
ecb0f75
Add flow to unassig an user from a selected project
didiermis Sep 19, 2022
3a67003
update do_delete_project function
didiermis Sep 19, 2022
437101f
add extrinsic users_update_user
didiermis Sep 19, 2022
d458bf4
declare type FieldName & CID so code is more readable
didiermis Sep 19, 2022
bf74261
update UserData structure for the new UI
didiermis Sep 19, 2022
a1e1e25
update user registration
didiermis Sep 19, 2022
03a36a3
add validations for user update extrinsic
didiermis Sep 19, 2022
d8dca7f
update helper fucntion do_update_user
didiermis Sep 19, 2022
716212e
update flow to delete a selected user
didiermis Sep 20, 2022
33beff3
create a type Documents<T>
didiermis Sep 20, 2022
b9833ef
update image fields for CID type
didiermis Sep 20, 2022
43d4bc5
change field documents from UserData<T> for Option<Documents<T>> type
didiermis Sep 20, 2022
7e43766
Fix validation at user registration
didiermis Sep 20, 2022
b100e28
Update role & project assignment
didiermis Sep 20, 2022
fc100c3
Update proxy roles & permissions due the proxy pallet progress
didiermis Sep 20, 2022
a196469
for now, those validation are not required there, I do the validation…
didiermis Sep 20, 2022
ffb70fd
add type FieldDescription & update all fields that use an string fiel…
didiermis Sep 20, 2022
fa4b652
Update role & project unassignment
didiermis Sep 20, 2022
7632fd2
add adress field for ProjectData<T> struct, update extrinsics that we…
didiermis Sep 21, 2022
221c4b6
add an account for administrator registration, add validations to pre…
didiermis Sep 21, 2022
c40d7bf
update to dos that have been completed
didiermis Sep 21, 2022
db2bde3
update flow for a user deletion, now we can not delete an user is has…
didiermis Sep 21, 2022
9590256
update to dos
didiermis Sep 21, 2022
b0ed07f
update the role field from UserData<T> at user project assignment
didiermis Sep 22, 2022
e52258a
Update to dos
didiermis Sep 22, 2022
71313f8
Simulate a workflow wraping the Option<Bytes> inside a BoundedVec
didiermis Sep 22, 2022
354e893
Update flow for edit an user account
didiermis Sep 22, 2022
d282b1f
Update structure for Expenditures
didiermis Sep 22, 2022
db9270a
add storagemaps to store expenditures
didiermis Sep 22, 2022
f0a41e3
update comments
didiermis Sep 23, 2022
5248564
add field project_id to ExpenditureData<T> structure
didiermis Sep 23, 2022
bc88eef
add an enum to split parent and child accounts
didiermis Sep 23, 2022
8f5c121
add field budget_id to ExpenditureData<T> structure
didiermis Sep 23, 2022
b6bac46
add field budget_amount to ExpenditureData<T> structure
didiermis Sep 23, 2022
61cd7e7
Update naics_code & jobs_multiplier because is not mandatory anymore
didiermis Sep 23, 2022
f01356d
Ad extrinsic create_expenditure
didiermis Sep 23, 2022
925bd85
Update BudgetData structure
didiermis Sep 23, 2022
a3d4aae
Add initial logic for helper function do_create_expenditure
didiermis Sep 23, 2022
1bb6da1
Add storage maps needed for budgets flow
didiermis Sep 23, 2022
3d301a1
change derive traits for BudgetData since no longer using generic types
didiermis Sep 26, 2022
ee03837
add validation for heck expenditure type & expenditure subtype match
didiermis Sep 26, 2022
ab50d41
add initial logic for do_create_budget
didiermis Sep 26, 2022
f872e62
temporarily remove the variable budget_id from structure ExpenditureD…
didiermis Sep 26, 2022
88cfdd0
fix spaces
didiermis Sep 27, 2022
2cab589
Create parent expenditures
didiermis Sep 27, 2022
9693c87
delete unused macro import
didiermis Sep 27, 2022
d7e8bb7
Update validations related expenditures creation
didiermis Sep 27, 2022
f578494
Add flow to create_child_expenditures
didiermis Sep 27, 2022
556dc64
Remove extrinsic extrinsic_testing_edit_project since is no longer ne…
didiermis Sep 27, 2022
4865761
Add initial flow for expenditures_create_expenditure extrinsic
didiermis Sep 28, 2022
2513d00
partial remove of budget amount from ExpenditureData<T> structure due…
didiermis Sep 28, 2022
37deaed
Remove budget amount & budget_id fields from ExpenditureData<T> stru…
didiermis Sep 28, 2022
9b38ede
Remove expenditure_subtype field from ExpenditureData<T> structure
didiermis Sep 28, 2022
0d38884
Remove enum ExpenditureSubType, is no longer requiered since project…
didiermis Sep 28, 2022
ae4b379
Update enum ExpenditureType with the new project types
didiermis Sep 28, 2022
292d977
Remove parent_id, children & num_children fields from ExpenditureData<T>
didiermis Sep 28, 2022
2f2d7e7
add field project_type to structure ProjectData<T>
didiermis Sep 29, 2022
667c771
Since ExpenditureData<T> no longer depends on any arbitrary parameter…
didiermis Sep 29, 2022
65fc7f3
impl default trait for ExpenditureType
didiermis Sep 29, 2022
cec941a
Remove unnecessary variables from extrinsics
didiermis Sep 29, 2022
48153f9
Add helper fucntions to generate default expenditures depending on th…
didiermis Sep 29, 2022
b908b73
Match project type, call default expednitures
didiermis Sep 29, 2022
c81f0f7
Project creation no long need parent & child accounts
didiermis Sep 29, 2022
cf5189a
add a helper function is_project_completed & update previous validations
didiermis Sep 29, 2022
ab31ed7
Remove creation_date from edit_project extrinsic
didiermis Sep 29, 2022
bf6445d
remove deprecated validations for do_create_expenditure
didiermis Sep 29, 2022
51a43b3
remove helper function create_parent_expenditures
didiermis Sep 29, 2022
4ce0735
remove helper function get_parent_expenditures
didiermis Sep 29, 2022
2ac1db0
remove helper function check_expenditure_subtype
didiermis Sep 29, 2022
0ed1495
remove deprecated validations from do_edit_expenditure
didiermis Sep 29, 2022
96e49cd
remove pallet error related to parent expenditures
didiermis Sep 29, 2022
1c11259
remove pallet error related to parent expenditures
didiermis Sep 29, 2022
2e6c67c
remove constant MaxChildrens from lib, mock & runtime
didiermis Sep 29, 2022
4ba7302
Update pending/completed tasks
didiermis Sep 29, 2022
71fcf5e
Add flow for expenditures_delete_expenditure extrinsic
didiermis Sep 29, 2022
ce0eaee
Remove those validations.
didiermis Sep 30, 2022
6ca19d6
remove enum Symbol because Substrate doesn not support token distribu…
didiermis Sep 30, 2022
3137906
remove struct Balance because Substrate does not support token distri…
didiermis Sep 30, 2022
354c611
Update validations for change_project_status helper function
didiermis Oct 3, 2022
161fcdf
add storage maps for Drawdowns flow
didiermis Oct 3, 2022
a5699bb
Add pallet constant MaxDrawdownsPerProject
didiermis Oct 3, 2022
f54265c
Update drawdown possible status
didiermis Oct 3, 2022
86dca8d
Remove TransactionSubtype struct because is no longer needed
didiermis Oct 3, 2022
88f7de4
Update struct TransactionData<T> for its initial setup
didiermis Oct 3, 2022
43ee2c5
Add pallet constants & storagemaps for Initial transactions setup
didiermis Oct 3, 2022
dc9bad1
Change derive traits for TransactionData<T> structure
didiermis Oct 3, 2022
c0ea086
Add flow for do_create_transaction helper function
didiermis Oct 4, 2022
6ee5e1b
implement default for DrawdownStatus
didiermis Oct 4, 2022
20c2642
Add flow for do_create_drawdown function
didiermis Oct 4, 2022
cadaf7d
Add a helper function do_initialize_drawdowns & add it to do_create_p…
didiermis Oct 4, 2022
c916d99
implement the lifecycle for tarnsactions. Add an enum to track transa…
didiermis Oct 4, 2022
1722f96
Update do_create_transaction fuction. Add transaction status.
didiermis Oct 4, 2022
d0b8d5c
Add a close date for TransactionData<T> structure
didiermis Oct 4, 2022
8a06427
Add flow and helper functions for do_edit_transaction
didiermis Oct 4, 2022
e7b2984
Add flow for do_delete_transaction function.
didiermis Oct 6, 2022
4d2ae9c
Update UserData<T> role field, is no longer needed to be an Option
didiermis Oct 6, 2022
a02e13c
Update do_register_user signature function
didiermis Oct 6, 2022
e1ec6bc
Update users_register_user extrinsic signature
didiermis Oct 6, 2022
62cee11
Update sudo_add_administrator extrinsic signature
didiermis Oct 6, 2022
909c283
Update flow for admin registration
didiermis Oct 6, 2022
bc46616
Update flow for users_register_user in order to allow admin registrat…
didiermis Oct 6, 2022
44b513a
Add pallet constant MaxResgitrationsAtTime
didiermis Oct 6, 2022
dac7fc7
update do_register_user in order to accept multiple registrations at …
didiermis Oct 6, 2022
2c9e1e8
update do_register_user in order to accept multiple registrations at …
didiermis Oct 6, 2022
22b0b80
Fix typo MaxResgistrationsAtTime
didiermis Oct 7, 2022
c594765
Update create_expenditure extrinsic & Remove expenditure id from Expe…
didiermis Oct 7, 2022
7ebc385
Update function do_create_expenditure in order to receive an array of…
didiermis Oct 7, 2022
ef74524
Remove helper functions that were used to generate default expenditures
didiermis Oct 7, 2022
7a8ec97
Modify flow for projects_assign_user extrinsic in order to accept an …
didiermis Oct 10, 2022
7bee8b9
fix typo MaxResgistrationsAtTime
didiermis Oct 10, 2022
32afc1b
Update create_project flow in order to be compatible with UI design
didiermis Oct 10, 2022
d8b9d5a
Update cargo toml
didiermis Oct 10, 2022
668bfd7
Merge branch 'develop' into feature/proxy-migration
didiermis Oct 10, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion pallets/gated-marketplace/src/functions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ impl<T: Config> Pallet<T> {
let _appraiser_role_id = T::Rbac::create_and_set_roles(pallet_id.clone(), [MarketplaceRole::Appraiser.to_vec()].to_vec())?;
// redemption specialist role and permissions
let _redemption_role_id = T::Rbac::create_and_set_roles(pallet_id, [MarketplaceRole::RedemptionSpecialist.to_vec()].to_vec())?;

Self::deposit_event(Event::MarketplaceSetupCompleted);
Ok(())
}

Expand All @@ -36,7 +38,7 @@ impl<T: Config> Pallet<T> {
// ensure the generated id is unique
ensure!(!<Marketplaces<T>>::contains_key(marketplace_id), Error::<T>::MarketplaceAlreadyExists);
//Insert on marketplaces and marketplaces by auth
T::Rbac::create_scope(Self::pallet_id(),marketplace_id)?;
T::Rbac::create_scope(Self::pallet_id(), marketplace_id)?;
Self::insert_in_auth_market_lists(owner.clone(), MarketplaceRole::Owner, marketplace_id)?;
Self::insert_in_auth_market_lists(admin.clone(), MarketplaceRole::Admin, marketplace_id)?;
<Marketplaces<T>>::insert(marketplace_id, marketplace);
Expand Down
2 changes: 2 additions & 0 deletions pallets/gated-marketplace/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,8 @@ pub mod pallet {
OfferDuplicated([u8;32], [u8;32]),
/// Offer was removed. [offer_id], [marketplace_id]
OfferRemoved([u8;32], [u8;32]),
/// Initial palllet setup
MarketplaceSetupCompleted,
}

// Errors inform users that something went wrong.
Expand Down
2 changes: 1 addition & 1 deletion pallets/gated-marketplace/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub type CustodianFields<T> = ( AccountIdOf<T>, Cids<<T as Config>::MaxFiles>);
#[scale_info(skip_type_params(T))]
#[codec(mel_bound())]
pub struct Marketplace<T: Config>{
pub label: BoundedVec<u8,T::LabelMaxLen>,
pub label: BoundedVec<u8, T::LabelMaxLen>,
}

#[derive(Encode, Decode, Clone, Eq, PartialEq, RuntimeDebugNoBound, TypeInfo,)]
Expand Down
46 changes: 46 additions & 0 deletions pallets/proxy/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[package]
name = "pallet-proxy"
version = "4.0.0-dev"
description = "Proxy migration pallet"
authors = ["Hashed <https://github.com/hashed-io"]
homepage = "https://hashed.io"
edition = "2021"
license = "Unlicense"
publish = false
repository = "https://github.com/hashed-io/hashed-substrate"

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
log = "0.4"
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [
"derive",
] }
scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }
frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27"}
frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27", optional = true }
sp-runtime = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }

pallet-timestamp = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
pallet-rbac = { default-features = false, version = "4.0.0-dev", path="../rbac/"}

[dev-dependencies]
sp-core = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }

[features]
default = ["std"]
std = [
"codec/std",
"scale-info/std",
"frame-support/std",
"frame-system/std",
"frame-benchmarking/std",
"pallet-timestamp/std",
"pallet-rbac/std"
]

runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"]
try-runtime = ["frame-support/try-runtime"]
35 changes: 35 additions & 0 deletions pallets/proxy/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Proxy
Proxy pallet it was designed to migrate Proxy project to Substrate.

- [Proxy](#proxy)
- [Overview](#overview)
- [Terminology](#terminology)
- [Interface](#interface)
- [Helper functions](#helper-functions)
- [Getters](#getters)
- [Constants](#constants)
- [Usage](#usage)
- [Querying with Polkadot-js CLI](#querying-with-polkadot-js-cli)
- [Errors](#errors)
- [Events](#events)


## Overview

## Terminology

## Interface

### Helper functions

### Getters

### Constants

## Usage

### Querying with Polkadot-js CLI

## Errors

## Events
20 changes: 20 additions & 0 deletions pallets/proxy/src/benchmarking.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//! Benchmarking setup for pallet-template

use super::*;

#[allow(unused)]
use crate::Pallet as Template;
use frame_benchmarking::{benchmarks, whitelisted_caller};
use frame_system::RawOrigin;

benchmarks! {
do_something {
let s in 0 .. 100;
let caller: T::AccountId = whitelisted_caller();
}: _(RawOrigin::Signed(caller), s)
verify {
assert_eq!(Something::<T>::get(), Some(s));
}

impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test);
}
Loading