From 7e1e91c7fabe805ea8c5718e17f6e9687819e22f Mon Sep 17 00:00:00 2001 From: pauldelucia Date: Mon, 29 Apr 2024 18:22:58 +0700 Subject: [PATCH 1/6] feat: make purchase document public --- packages/rs-sdk/src/platform/transition.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rs-sdk/src/platform/transition.rs b/packages/rs-sdk/src/platform/transition.rs index d8abdb5eb0..ae08111e8f 100644 --- a/packages/rs-sdk/src/platform/transition.rs +++ b/packages/rs-sdk/src/platform/transition.rs @@ -3,7 +3,7 @@ pub mod broadcast; pub(crate) mod broadcast_identity; pub mod broadcast_request; pub(crate) mod context; -mod purchase_document; +pub mod purchase_document; mod put_contract; pub mod put_document; pub mod put_identity; From b47245f8b5f0da6e170615b5254fc55ff1750e8a Mon Sep 17 00:00:00 2001 From: pauldelucia Date: Mon, 29 Apr 2024 18:30:15 +0700 Subject: [PATCH 2/6] feat: make document tranfers public --- packages/rs-sdk/src/platform/transition.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rs-sdk/src/platform/transition.rs b/packages/rs-sdk/src/platform/transition.rs index ae08111e8f..985c730b05 100644 --- a/packages/rs-sdk/src/platform/transition.rs +++ b/packages/rs-sdk/src/platform/transition.rs @@ -9,7 +9,7 @@ pub mod put_document; pub mod put_identity; pub mod put_settings; pub mod top_up_identity; -mod transfer_document; +pub mod transfer_document; mod txid; mod update_price_of_document; pub mod withdraw_from_identity; From 4566ad9c496b1e10a68218d476e1c78c45c608dc Mon Sep 17 00:00:00 2001 From: pauldelucia Date: Mon, 29 Apr 2024 22:37:56 +0700 Subject: [PATCH 3/6] feat: make sdk files public --- packages/rs-sdk/src/platform/transition.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rs-sdk/src/platform/transition.rs b/packages/rs-sdk/src/platform/transition.rs index 985c730b05..7dd65ce9de 100644 --- a/packages/rs-sdk/src/platform/transition.rs +++ b/packages/rs-sdk/src/platform/transition.rs @@ -4,14 +4,14 @@ pub(crate) mod broadcast_identity; pub mod broadcast_request; pub(crate) mod context; pub mod purchase_document; -mod put_contract; +pub mod put_contract; pub mod put_document; pub mod put_identity; pub mod put_settings; pub mod top_up_identity; pub mod transfer_document; mod txid; -mod update_price_of_document; +pub mod update_price_of_document; pub mod withdraw_from_identity; pub use context::*; From d71bfc487718112a0c9c4cb430f98bac99973248 Mon Sep 17 00:00:00 2001 From: pauldelucia Date: Tue, 30 Apr 2024 18:04:44 +0700 Subject: [PATCH 4/6] feat: serialize for indexes and change error messages to strings --- .../rs-dpp/src/data_contract/document_type/index/mod.rs | 4 ++-- packages/rs-drive/src/error/query.rs | 2 +- packages/rs-drive/src/query/mod.rs | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/rs-dpp/src/data_contract/document_type/index/mod.rs b/packages/rs-dpp/src/data_contract/document_type/index/mod.rs index 9213e18cbb..752f491d63 100644 --- a/packages/rs-dpp/src/data_contract/document_type/index/mod.rs +++ b/packages/rs-dpp/src/data_contract/document_type/index/mod.rs @@ -20,7 +20,7 @@ use std::{collections::BTreeMap, convert::TryFrom}; pub mod random_index; // Indices documentation: https://dashplatform.readme.io/docs/reference-data-contracts#document-indices -#[derive(Clone, Debug, PartialEq, Eq)] +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct Index { pub name: String, pub properties: Vec, @@ -53,7 +53,7 @@ impl Index { } } -#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct IndexProperty { pub name: String, pub ascending: bool, diff --git a/packages/rs-drive/src/error/query.rs b/packages/rs-drive/src/error/query.rs index f472519ef0..8b1db734ce 100644 --- a/packages/rs-drive/src/error/query.rs +++ b/packages/rs-drive/src/error/query.rs @@ -96,7 +96,7 @@ pub enum QuerySyntaxError { /// Where clause on non indexed property error #[error("where clause on non indexed property error: {0}")] - WhereClauseOnNonIndexedProperty(&'static str), + WhereClauseOnNonIndexedProperty(String), /// Query is too far from index error #[error("query is too far from index: {0}")] QueryTooFarFromIndex(&'static str), diff --git a/packages/rs-drive/src/query/mod.rs b/packages/rs-drive/src/query/mod.rs index 5db17e742c..2f6db41c17 100644 --- a/packages/rs-drive/src/query/mod.rs +++ b/packages/rs-drive/src/query/mod.rs @@ -1135,9 +1135,10 @@ impl<'a> DriveQuery<'a> { platform_version, )? .ok_or(Error::Query( - QuerySyntaxError::WhereClauseOnNonIndexedProperty( - "query must be for valid indexes", - ), + QuerySyntaxError::WhereClauseOnNonIndexedProperty(format!( + "query must be for valid indexes, valid indexes are: {:?}", + self.document_type.indices() + )), ))?; if difference > defaults::MAX_INDEX_DIFFERENCE { return Err(Error::Query(QuerySyntaxError::QueryTooFarFromIndex( From 751ee6e646475c388be7ca62deab32ae14b9b8f6 Mon Sep 17 00:00:00 2001 From: pauldelucia Date: Tue, 7 May 2024 17:21:23 +0530 Subject: [PATCH 5/6] fix a test --- packages/rs-drive/src/query/test_index.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rs-drive/src/query/test_index.rs b/packages/rs-drive/src/query/test_index.rs index d0b4b12cb6..a721f2f8a2 100644 --- a/packages/rs-drive/src/query/test_index.rs +++ b/packages/rs-drive/src/query/test_index.rs @@ -164,7 +164,7 @@ mod tests { .find_best_index(platform_version) .expect_err("expected to not find index"); assert!( - matches!(error, Error::Query(QuerySyntaxError::WhereClauseOnNonIndexedProperty(message)) if message == "query must be for valid indexes") + matches!(error, Error::Query(QuerySyntaxError::WhereClauseOnNonIndexedProperty(message)) if message.contains("query must be for valid indexes")) ) } } From 1185bc5006a98aa9ac0ea7e26cb262b1623c72bf Mon Sep 17 00:00:00 2001 From: pauldelucia Date: Thu, 9 May 2024 15:57:52 +0530 Subject: [PATCH 6/6] feat: put index serialization behind feature --- packages/rs-dpp/Cargo.toml | 3 +++ .../rs-dpp/src/data_contract/document_type/index/mod.rs | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/rs-dpp/Cargo.toml b/packages/rs-dpp/Cargo.toml index 8710052e86..aeda3a86c7 100644 --- a/packages/rs-dpp/Cargo.toml +++ b/packages/rs-dpp/Cargo.toml @@ -98,6 +98,7 @@ all_features = [ "identity-value-conversion", "identity-json-conversion", "identity-cbor-conversion", + "index-serde-conversion", "state-transition-serde-conversion", "state-transition-value-conversion", "state-transition-json-conversion", @@ -158,6 +159,7 @@ all_features_without_client = [ "identity-value-conversion", "identity-json-conversion", "identity-cbor-conversion", + "index-serde-conversion", "state-transition-serde-conversion", "state-transition-value-conversion", "state-transition-json-conversion", @@ -224,6 +226,7 @@ identity-cbor-conversion = [ "cbor", "platform-value-cbor", ] +index-serde-conversion = [] state-transition-serde-conversion = ["data-contract-serde-conversion"] state-transition-value-conversion = [ "platform-value", diff --git a/packages/rs-dpp/src/data_contract/document_type/index/mod.rs b/packages/rs-dpp/src/data_contract/document_type/index/mod.rs index 752f491d63..cfdcf0f6c4 100644 --- a/packages/rs-dpp/src/data_contract/document_type/index/mod.rs +++ b/packages/rs-dpp/src/data_contract/document_type/index/mod.rs @@ -20,7 +20,8 @@ use std::{collections::BTreeMap, convert::TryFrom}; pub mod random_index; // Indices documentation: https://dashplatform.readme.io/docs/reference-data-contracts#document-indices -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Clone, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "index-serde-conversion", derive(Serialize, Deserialize))] pub struct Index { pub name: String, pub properties: Vec, @@ -53,7 +54,8 @@ impl Index { } } -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "index-serde-conversion", derive(Serialize, Deserialize))] pub struct IndexProperty { pub name: String, pub ascending: bool,