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

Content dir 2 #396

Merged
merged 165 commits into from
Jun 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
2dc0cf5
Merge versioned store & versioned-permissions core logic
iorveth Apr 6, 2020
56a7049
Fix mock runtime, add example
iorveth Apr 7, 2020
ba350d7
Merge failure cases for class creation, update existing class & entit…
iorveth Apr 7, 2020
8638a8c
Add class schema full test coverage merged
iorveth Apr 7, 2020
1b3338f
Add schema support to entity & update entity properties full test cov…
iorveth Apr 7, 2020
2765651
Clean up, versiond-store events removed
iorveth Apr 7, 2020
a215e76
Get rid of versioned store, clen up
iorveth Apr 7, 2020
05aaa6b
Remove unnecessary default trait implementation
iorveth Apr 8, 2020
01548aa
Remove entity_id from Entity structure
iorveth Apr 8, 2020
f58444b
Merge pull request #1 from iorveth/content_dir_2
iorveth Apr 8, 2020
8513791
Switch to serde with derive feature
iorveth Apr 8, 2020
e9a0085
Merge branch 'content_dir_2_issue_189' of https://github.com/iorveth/…
iorveth Apr 8, 2020
df8da46
Rename PropertyType::Internal to PropertyType::Reference, and same fo…
iorveth Apr 8, 2020
fe389e0
Remove PropertyType::None, PropertyValue::None
iorveth Apr 8, 2020
e7a791a
Add ClassSchema status related logic
iorveth Apr 9, 2020
670411e
ClassSchema -> Schema renaming
iorveth Apr 9, 2020
1adebe1
Full test coverage for Schema status related logic
iorveth Apr 9, 2020
2395986
Rename to content-directory
iorveth Apr 9, 2020
53de22e
Rename to content-directory
iorveth Apr 9, 2020
c69f7cc
Fix runtime namings
iorveth Apr 9, 2020
aecd002
Revert vlos & vlos permissions removal
iorveth Apr 10, 2020
627fd27
revert related changes
iorveth Apr 10, 2020
affd773
Architecture reworkings: values field of Entity type changed to BTree…
iorveth Apr 10, 2020
d0621b8
Remove redundant ClassPropertyValue structure
iorveth Apr 10, 2020
d0b1fe9
Architecture reworkings: in_class_schema_indexes switched to BTreeSet…
iorveth Apr 10, 2020
48888d5
Drop security/configuration constraints from runtime storage, make th…
iorveth Apr 10, 2020
6e5e345
Bunch of logic refactoring & optimizations performed
iorveth Apr 10, 2020
b773d78
Apply rustfmt
iorveth Apr 13, 2020
35b40f5
avoid potential panic, when completing entity property values update
iorveth Apr 13, 2020
d7f3269
clear, remove_at property value level vector operations initial imple…
iorveth Apr 13, 2020
d4a085d
Property value level insert_at vector operation implemented
iorveth Apr 14, 2020
a778bed
insert_at error improvements
iorveth Apr 15, 2020
eaf1aef
Security: implement mechanism for entity vector level specific operat…
iorveth Apr 15, 2020
6821daa
Entity property vector cleaning basic test coverage
iorveth Apr 15, 2020
10d8be7
Entity property vector remove_at basic test coverage
iorveth Apr 15, 2020
3dbdc40
Tests: refactoring
iorveth Apr 15, 2020
39e0cf2
Entity property vector insert_at basic test coverage
iorveth Apr 15, 2020
639e637
Core logic refactoring, insert_at ReferenceVec, when uknown internal …
iorveth Apr 16, 2020
2eccac7
Fix clippy warnings
iorveth Apr 17, 2020
52bd20f
Introduce new nonce-like mechanism, tests updated
iorveth Apr 17, 2020
85c5354
Improve error handling, when entity vector value index is out of range
iorveth Apr 17, 2020
e0ee630
Tests: add respective failure cases for insert_at, remove_at entity v…
iorveth Apr 17, 2020
3de80c0
Fix nonce mechanism design issue
iorveth Apr 21, 2020
766c8ce
Raw index u16 types, except of schema id type, replaced with respecti…
iorveth Apr 21, 2020
279e5da
SchemaId type alias introduced
iorveth Apr 22, 2020
a161533
Bunch of refactoring & optimizations
iorveth Apr 22, 2020
1d53021
Fix mut in required() method
iorveth Apr 22, 2020
d533491
Entity removal implementation, part 1
iorveth Apr 22, 2020
3a4df8c
Add additional equality check to forbid updating equal prop values
iorveth Apr 23, 2020
21a344e
Entity removal implementation, part 2
iorveth Apr 23, 2020
1f8eec3
Fix add schema support not updating entity counter in case of reference
iorveth Apr 23, 2020
2067612
Fix batch transaction test
iorveth Apr 24, 2020
629ba85
Bunch of matching trees refactoring
iorveth Apr 24, 2020
9725e55
Entities removal test coverage added
iorveth Apr 24, 2020
7399812
Introduce new permissions data structure
iorveth Apr 27, 2020
6d15ed5
Update entity controller functionality added
iorveth Apr 28, 2020
d1bea65
Add entity creator funtionality implementation
iorveth Apr 28, 2020
310a78c
Remove entity creator functionality added
iorveth Apr 28, 2020
3a76414
Remove/add entity maintainer funtionality added
iorveth Apr 28, 2020
0774cc1
Indrtoduce update_entity_creation_voucher functionality
iorveth Apr 28, 2020
256d918
Update class_permissions, update_entity_permissions functionality added
iorveth Apr 28, 2020
b1a90b3
Remove redundant root extrinsic
iorveth Apr 29, 2020
c3fdcd9
Move schema related logic to separate file
iorveth Apr 29, 2020
f40d993
Made EntityID, ClassId configurable through runtime
iorveth Apr 29, 2020
29b8c9d
Cargo fmt
iorveth Apr 29, 2020
bf2dbbb
Create entity functionality adjusted to the new permissions design
iorveth Apr 29, 2020
4440fbf
Major schema related refactoring & clean up
iorveth Apr 29, 2020
549197b
Class permissions adjusted, new entities permissions in progress
iorveth May 1, 2020
a428056
Create entity missing security checks added, entity removal adjustment
iorveth May 4, 2020
19166c7
Complete adjustment of entity related logic
iorveth May 4, 2020
f1dcdbf
Implement security checks for property types locking mechanism
iorveth May 4, 2020
bb0ffa0
Clean up
iorveth May 4, 2020
b60e553
Property type locking mechanism core logic implemented
iorveth May 4, 2020
0c25d60
Commit broken tests
iorveth May 5, 2020
6f86a42
Switch to if let in ensure_valid_reference_prop
iorveth May 5, 2020
1232d4d
Fix property id security check
iorveth May 5, 2020
c4817a6
Simplify PropertyType locking mechanism
iorveth May 5, 2020
112a055
Same owner boolean flag constraint for PropertyType::Reference, Refer…
iorveth May 5, 2020
043ce67
Add missing check to ensure property values were not locked on class …
iorveth May 6, 2020
ad099f5
Fix namings
iorveth May 6, 2020
10dedf2
Add missing entity redrencable check
iorveth May 6, 2020
bd0b74b
Simplify and fix ensure_referancable
iorveth May 6, 2020
175dd0f
Comment broken test coverage
iorveth May 6, 2020
662dab8
Reverting governance stuff
iorveth May 6, 2020
5847536
Cargo.lock
iorveth May 7, 2020
9ade8a8
Fix clippy warnings
iorveth May 7, 2020
ad4cb43
Number of classes, number of schemas per class, number of properties …
iorveth May 7, 2020
eb926b8
minor constaraints issues fixed
iorveth May 7, 2020
8233cc7
Simplify vec max len property value validation
iorveth May 7, 2020
2628109
Add security/configuration length constraint for text and vec proper…
iorveth May 7, 2020
8973bad
Simplify ensure_prop_value_can_be_inserted_at_prop_vec implementation
iorveth May 7, 2020
ce442a5
Clippy fix
iorveth May 7, 2020
2d97765
Introduce class entities creation, individual entities creation per c…
iorveth May 8, 2020
5b6c75d
Additional security check for update entities creation voucher
iorveth May 8, 2020
6a96df8
Do not forget to increment/decrement class entities counter after res…
iorveth May 8, 2020
dbfcf97
Add entities creator simplified & additional security check
iorveth May 8, 2020
07cbb66
New actor model initial implementation
iorveth May 13, 2020
216aeef
Remove curator group extrinsic fixed
iorveth May 13, 2020
83aa6b6
Add/remove entity maintainer extrinsics adjusted
iorveth May 13, 2020
93af3c7
Update maintainer related errors
iorveth May 13, 2020
915c04c
Add/remove entities creatorextrinsics and related logic added
iorveth May 13, 2020
801f2d1
Additional security check to forbid adding class maintainer, entity c…
iorveth May 14, 2020
924b3fb
Add number of maintainers, entity creators per class constraints
iorveth May 14, 2020
a35869b
Add entities creator extrinsic: Create entity creation voucher in cas…
iorveth May 14, 2020
909f5cd
Create class extrinsic: Additional security check to ensure class per…
iorveth May 14, 2020
bc389f4
Additional security checks for update_class_permissions extrinsic
iorveth May 14, 2020
f58b0a3
Cargo fmt
iorveth May 14, 2020
d12ffaa
Complete schema related logic reworking
iorveth May 18, 2020
ff30810
Simplify actor model
iorveth May 19, 2020
08d6579
update_entity_creation_voucher extrinsic logic improved
iorveth May 19, 2020
7617811
allow entity maintainers to add entity schema support
iorveth May 19, 2020
b2ac6c5
Refactoring & optimizations
iorveth May 19, 2020
2abe6e9
add missing add/remove curator extrinsics and corresponding curators …
iorveth May 19, 2020
5d06be5
remove unused Credential type
iorveth May 19, 2020
d83967a
Set curator group status extrinsic and related logic added
iorveth May 19, 2020
2a0a3b7
cargo fmt
iorveth May 19, 2020
527b38d
Refactoring and documentation
iorveth May 19, 2020
6913c5d
Additional type documentation
iorveth May 19, 2020
0c7d5c6
remove example.rs
iorveth May 19, 2020
784987e
remove example mod
iorveth May 19, 2020
0e3aab2
Adjust broken transaction extrinsic
iorveth May 20, 2020
07c1161
Remove PropertyType mutations completely
iorveth May 20, 2020
07f7fd6
Unused function removed
iorveth May 20, 2020
5e11cc4
Unique constraint option on properties implementation
iorveth May 20, 2020
c6e5227
Force all null non-required values pass uniqueness check
iorveth May 20, 2020
45ceb1a
clippy fixed
iorveth May 20, 2020
1e0754a
Added events for all extrinsics& refactoring
iorveth May 21, 2020
dfb9c64
Forbid to change entity controller in update_entity_permissions to av…
iorveth May 22, 2020
cb0d785
Remove the rest of class Property's mutation functionality & introduc…
iorveth May 22, 2020
5e14444
Begun work on entities ownership transfer implementation, introduce E…
iorveth May 22, 2020
c76c7e8
Cargo fmt
iorveth May 22, 2020
3e7ec9b
Transfer entity ownership extrinsic implemented
iorveth May 25, 2020
72180b7
Extrinsics: Missing entities ownership transfer event added
iorveth May 25, 2020
eb542e3
Renamings: perform_lead_auth -> ensure_is_lead
iorveth May 25, 2020
1407f88
Remove obsolete CreationLimit type
iorveth May 25, 2020
21c334d
Make MaximumNumberOfOperationsDuringAtomicBatching static module para…
iorveth May 25, 2020
96c6cc7
Renamings: lead extrinsics
iorveth May 25, 2020
ef71043
Drop create_class_with_default_permissions extrinsic
iorveth May 25, 2020
421d211
Renaming: Security/configuration constraints
iorveth May 25, 2020
994841b
add_curator_group_extrinsic: Force T::CuratorGroupId to be autogenera…
iorveth May 25, 2020
9efec14
Extrinsics: get rid of iteration in remove_curator_group, related log…
iorveth May 26, 2020
8bcb2b5
PR comments fixes, additional documentation
iorveth May 26, 2020
ac6e00a
Renamings: get -> ensure
iorveth May 26, 2020
712f921
Renamings: get -> ensure
iorveth May 26, 2020
7d13d18
Update entity permissions extrinsic issues fixed
iorveth May 26, 2020
da4fd9e
Update class permissions extrinsic issues fixed
iorveth May 26, 2020
c4b3c38
Improve update entity_permissions & update_class_permission extrinsic…
iorveth May 26, 2020
09db913
Additional ensure_curator_in_group_exists check for remove_curator_fr…
iorveth May 26, 2020
9d0312a
Transaction extrinsic: Hold entities id, created in operation in Vec …
iorveth May 27, 2020
7a69ebe
insert_at_entity_property_vector extrinsic: Do not forget to ensure P…
iorveth May 27, 2020
fb46345
remove_at_entity_property_vector extrinsic: Move mutation safe marker
iorveth May 27, 2020
fb5ab12
Refactoring & fixes: update_entity_property_values extrinsic and rela…
iorveth May 27, 2020
a59e686
Refactoring: add_schema_support_to_entity extrinsic and related logic
iorveth May 27, 2020
68bd7b1
Clippy warning fixed
iorveth May 27, 2020
491488c
Move mutation safe marker
iorveth May 27, 2020
0c28fe8
add_class_schema extrinsic: refactoring
iorveth May 27, 2020
a7d72b6
add_class_schema extrinsic: docs update
iorveth May 27, 2020
b45c0fb
update_entity_creation_voucher, create_entity extrinsics: Get rid of …
iorveth May 28, 2020
09def5d
Renamings: per_controller_entity_creation_limit -> default_entity_cre…
iorveth May 28, 2020
4069caa
remove_entity extrinsic fixed, do not forget to credit entity_creatio…
iorveth May 28, 2020
624e422
Module documentation & refactoring
iorveth May 28, 2020
0aec99c
add_class_schema extrinsic refactoring, get rid of possible side effects
iorveth May 28, 2020
11dfeff
Fix Cargo.lock merge conflict
iorveth May 29, 2020
d5445c8
Namings fixed
iorveth Jun 2, 2020
64c9ebd
Voucher related logic fixed
iorveth Jun 3, 2020
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
245 changes: 134 additions & 111 deletions Cargo.lock

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ members = [
"runtime-modules/token-minting",
"runtime-modules/versioned-store",
"runtime-modules/versioned-store-permissions",
"runtime-modules/content-directory",
"node",
"utils/chain-spec-builder/"
]

[profile.release]
# Substrate runtime requires unwinding.
panic = "unwind"
panic = "unwind"
40 changes: 40 additions & 0 deletions runtime-modules/content-directory/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[package]
name = 'substrate-content-directory-module'
version = '1.0.1'
authors = ['Joystream contributors']
edition = '2018'

[dependencies]
hex-literal = '0.1.0'
codec = { package = 'parity-scale-codec', version = '1.0.0', default-features = false, features = ['derive'] }
rstd = { package = 'sr-std', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
runtime-primitives = { package = 'sr-primitives', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
srml-support = { package = 'srml-support', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
srml-support-procedural = { package = 'srml-support-procedural', git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
system = { package = 'srml-system', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
timestamp = { package = 'srml-timestamp', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
runtime-io = { package = 'sr-io', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
# https://users.rust-lang.org/t/failure-derive-compilation-error/39062
quote = '<=1.0.2'

[dependencies.serde]
features = ['derive']
optional = true
version = '1.0.101'

[dev-dependencies]
runtime-io = { package = 'sr-io', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}
primitives = { package = 'substrate-primitives', git = 'https://github.com/paritytech/substrate.git', rev = 'c37bb08535c49a12320af7facfd555ce05cce2e8'}

[features]
default = ['std']
std = [
'serde',
'codec/std',
'rstd/std',
'runtime-io/std',
'runtime-primitives/std',
'srml-support/std',
'system/std',
'timestamp/std',
]
114 changes: 114 additions & 0 deletions runtime-modules/content-directory/src/errors.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
// Validation errors
// --------------------------------------

pub const ERROR_PROPERTY_NAME_TOO_SHORT: &str = "Property name is too short";
pub const ERROR_PROPERTY_NAME_TOO_LONG: &str = "Property name is too long";
pub const ERROR_PROPERTY_DESCRIPTION_TOO_SHORT: &str = "Property description is too long";
pub const ERROR_PROPERTY_DESCRIPTION_TOO_LONG: &str = "Property description is too long";

pub const ERROR_CLASS_NAME_TOO_SHORT: &str = "Class name is too short";
pub const ERROR_CLASS_NAME_TOO_LONG: &str = "Class name is too long";
pub const ERROR_CLASS_DESCRIPTION_TOO_SHORT: &str = "Class description is too long";
pub const ERROR_CLASS_DESCRIPTION_TOO_LONG: &str = "Class description is too long";

pub const ERROR_CLASS_LIMIT_REACHED: &str = "Maximum number of classes limit reached";
pub const ERROR_CLASS_SCHEMAS_LIMIT_REACHED: &str =
"Maximum number of given class schemas limit reached";
pub const ERROR_CLASS_PROPERTIES_LIMIT_REACHED: &str =
"Maximum number of properties in schema limit reached";
pub const ERROR_PER_CONTROLLER_ENTITIES_CREATION_LIMIT_EXCEEDS_OVERALL_LIMIT: &str =
"Entities creation limit per controller should be less than overall entities creation limit";
pub const ERROR_ENTITIES_NUMBER_PER_CLASS_CONSTRAINT_VIOLATED: &str =
"Number of entities per class is to big";
pub const ERROR_NUMBER_OF_CLASS_ENTITIES_PER_ACTOR_CONSTRAINT_VIOLATED: &str =
"Number of class entities per actor constraint violated";
pub const ERROR_INDIVIDUAL_NUMBER_OF_CLASS_ENTITIES_PER_ACTOR_IS_TOO_BIG: &str =
"Individual number of class entities per actor is too big";
pub const ERROR_NEW_ENTITIES_MAX_COUNT_IS_LESS_THAN_NUMBER_OF_ALREADY_CREATED: &str =
"Cannot set voucher entities count to be less than number of already created entities";
pub const ERROR_MAX_NUMBER_OF_OPERATIONS_DURING_ATOMIC_BATCHING_LIMIT_REACHED: &str =
"Number of operations during atomic batching limit reached";
pub const ERROR_TEXT_PROP_IS_TOO_LONG: &str = "Text property is too long";
pub const ERROR_VEC_PROP_IS_TOO_LONG: &str = "Vector property is too long";
pub const ERROR_ENTITY_PROP_VALUE_VECTOR_IS_TOO_LONG: &str =
"Propery value vector can`t contain more values";
pub const ERROR_ENTITY_PROP_VALUE_VECTOR_INDEX_IS_OUT_OF_RANGE: &str =
"Given property value vector index is out of range";

// Main logic errors
// --------------------------------------

pub const ERROR_CLASS_NOT_FOUND: &str = "Class was not found by id";
pub const ERROR_UNKNOWN_CLASS_SCHEMA_ID: &str = "Unknown class schema id";
pub const ERROR_CLASS_SCHEMA_NOT_ACTIVE: &str = "Given class schema is not active";
pub const ERROR_CLASS_SCHEMA_REFERS_UNKNOWN_PROP_INDEX: &str =
"New class schema refers to an unknown property index";
pub const ERROR_CLASS_SCHEMA_REFERS_UNKNOWN_CLASS: &str =
"New class schema refers to an unknown class id";
pub const ERROR_NO_PROPS_IN_CLASS_SCHEMA: &str =
"Cannot add a class schema with an empty list of properties";
pub const ERROR_ENTITY_NOT_FOUND: &str = "Entity was not found by id";
pub const ERROR_SCHEMA_ALREADY_ADDED_TO_ENTITY: &str =
"Cannot add a schema that is already added to this entity";
pub const ERROR_PROP_VALUE_DONT_MATCH_TYPE: &str =
"Some of the provided property values don't match the expected property type";
pub const ERROR_PROP_VALUE_DONT_MATCH_VEC_TYPE: &str =
"Property value don't match the expected vector property type";
pub const ERROR_PROP_VALUE_UNDER_GIVEN_INDEX_IS_NOT_A_VECTOR: &str =
"Property value under given index is not a vector";
pub const ERROR_PROP_VALUE_VEC_NONCES_DOES_NOT_MATCH: &str =
"Current property value vector nonce does not equal to provided one";
pub const ERROR_PROP_NAME_NOT_UNIQUE_IN_A_CLASS: &str =
"Property name is not unique within its class";
pub const ERROR_MISSING_REQUIRED_PROP: &str =
"Some required property was not found when adding schema support to entity";
pub const ERROR_UNKNOWN_ENTITY_PROP_ID: &str = "Some of the provided property ids cannot be found on the current list of propery values of this entity";
pub const ERROR_PROP_VALUE_TYPE_DOESNT_MATCH_INTERNAL_ENTITY_VECTOR_TYPE: &str =
"Propery value type does not match internal entity vector type";
pub const ERROR_PROP_DOES_NOT_MATCH_ITS_CLASS: &str = "Internal property does not match its class";
pub const ERROR_ENTITY_RC_DOES_NOT_EQUAL_TO_ZERO: &str =
"Entity removal can`t be completed, as there are some property values pointing to given entity";
pub const ERROR_ENTITY_INBOUND_SAME_OWNER_RC_DOES_NOT_EQUAL_TO_ZERO: &str =
"Entity ownership transfer can`t be completed, as there are some property values pointing to given entity with same owner flag set";
pub const ERROR_CLASS_PROP_NOT_FOUND: &str = "Class property under given index not found";
pub const ERROR_CURATOR_GROUP_REMOVAL_FORBIDDEN: &str =
"Curator group can`t be removed, as it currently maintains at least one class";

// Permission errors

pub const ERROR_ALL_PROP_WERE_LOCKED_ON_CLASS_LEVEL: &str =
"All property values, related to a given entity were locked on class level";
pub const ERROR_CURATOR_IS_NOT_A_MEMBER_OF_A_GIVEN_CURATOR_GROUP: &str =
"Curator under provided curator id is not a member of curaror group under given id";
pub const ERROR_CURATOR_GROUP_DOES_NOT_EXIST: &str = "Given curator group does not exist";
pub const ERROR_SAME_CONTROLLER_CONSTRAINT_VIOLATION: &str =
"Entity should be referenced from the entity, owned by the same controller";
pub const ERROR_MAINTAINER_DOES_NOT_EXIST: &str = "Given maintainer does not exist";
pub const ERROR_MAINTAINER_ALREADY_EXISTS: &str = "Given maintainer already exist";
pub const ERROR_ACTOR_CAN_NOT_CREATE_ENTITIES: &str =
"Provided actor can`t create entities of given class";
pub const ERROR_MAX_NUMBER_OF_ENTITIES_PER_CLASS_LIMIT_REACHED: &str =
"Maximum numbers of entities per class limit reached";
pub const ERROR_ENTITY_CREATION_BLOCKED: &str = "Current class entities creation blocked";
pub const ERROR_VOUCHER_LIMIT_REACHED: &str = "Entities voucher limit reached";
pub const ERROR_LEAD_AUTH_FAILED: &str = "Lead authentication failed";
pub const ERROR_MEMBER_AUTH_FAILED: &str = "Member authentication failed";
pub const ERROR_CURATOR_AUTH_FAILED: &str = "Curator authentication failed";
pub const ERROR_BAD_ORIGIN: &str = "Expected root or signed origin";
pub const ERROR_ENTITY_REMOVAL_ACCESS_DENIED: &str = "Entity removal access denied";
pub const ERROR_ENTITY_ADD_SCHEMA_SUPPORT_ACCESS_DENIED: &str =
"Add entity schema support access denied";
pub const ERROR_CLASS_ACCESS_DENIED: &str = "Class access denied";
pub const ERROR_ENTITY_ACCESS_DENIED: &str = "Entity access denied";
pub const ERROR_ENTITY_CAN_NOT_BE_REFRENCED: &str = "Given entity can`t be referenced";
pub const ERROR_CLASS_PROPERTY_TYPE_IS_LOCKED_FOR_GIVEN_ACTOR: &str =
"Given class property type is locked for updating";
pub const ERROR_NUMBER_OF_MAINTAINERS_PER_CLASS_LIMIT_REACHED: &str =
"Class maintainers limit reached";
pub const ERROR_NUMBER_OF_CURATORS_PER_GROUP_LIMIT_REACHED: &str =
"Max number of curators per group limit reached";
pub const ERROR_CURATOR_GROUP_IS_NOT_ACTIVE: &str = "Curator group is not active";
pub const ERROR_ORIGIN_CANNOT_BE_MADE_INTO_RAW_ORIGIN: &str =
"Origin cannot be made into raw origin";
pub const ERROR_PROPERTY_VALUE_SHOULD_BE_UNIQUE: &str =
"Provided property value should be unique across all entity property values";
Loading