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

feat(platform): proof verification for many queries and a few more queries #2431

Merged
merged 3 commits into from
Jan 19, 2025

Conversation

QuantumExplorer
Copy link
Member

@QuantumExplorer QuantumExplorer commented Jan 19, 2025

Summary by CodeRabbit

Based on the comprehensive summary of changes, here are the release notes:

  • New Features

    • Added support for querying token total supply
    • Introduced methods to fetch and verify token balances, statuses, and total supply
    • Enhanced platform service with new RPC methods for token and group information retrieval
  • Improvements

    • Expanded token-related verification capabilities
    • Added cryptographic proof mechanisms for token data validation
    • Improved version handling for token-related queries
  • Technical Updates

    • Updated dependency versions for GroveDB
    • Introduced new data structures for token balance and supply tracking
    • Expanded platform versioning to support new token-related features

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

Copy link
Contributor

coderabbitai bot commented Jan 19, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This pull request introduces comprehensive enhancements to token-related functionality across multiple packages. The changes focus on adding new methods and structures for token total supply, aggregated identity balances, and token verification. Key additions include RPC methods in the platform service, new query and verification methods in the Drive implementation, and version tracking for these new features. The modifications span gRPC protocol definitions, Rust implementation files, and version management components.

Changes

File Change Summary
packages/dapi-grpc/protos/platform/v0/platform.proto Added two new RPC methods: getTokenTotalSupply and getGroupInfos with corresponding request and response message types
packages/rs-dpp/src/balances/credits.rs Introduced SignedTokenAmount type for representing signed token amounts
packages/rs-drive-abci/src/query/service.rs Added get_token_total_supply and get_group_infos methods, commented out get_active_group_actions
packages/rs-drive/src/drive/tokens/* Added multiple modules and methods for fetching, proving, and verifying token total supply, balances, and statuses
packages/rs-platform-version/* Updated version tracking structures to include new token-related method and query versions

Sequence Diagram

sequenceDiagram
    participant Client
    participant PlatformService
    participant Drive
    participant GroveDB

    Client->>PlatformService: getTokenTotalSupply(token_id)
    PlatformService->>Drive: fetch_token_total_supply
    Drive->>GroveDB: Query token total supply
    GroveDB-->>Drive: Return total supply
    Drive-->>PlatformService: Return token total supply
    PlatformService-->>Client: Respond with total supply
Loading

Poem

🐰 A Rabbit's Ode to Token Tokens 🐰

In bytes of balance, secrets unfurl,
Token supply, a numerical swirl
Proving amounts with cryptic might
Drive and GroveDB dance just right
CodeRabbit's tokens now take flight! 🚀


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@QuantumExplorer
Copy link
Member Author

@coderabbitai review

Copy link
Contributor

coderabbitai bot commented Jan 19, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (23)
packages/rs-drive/src/verify/tokens/verify_token_statuses/v0/mod.rs (1)

51-54: Use a more specific error variant for unexpected item types.

In the match arm handling unexpected proof elements, you're using ProofError::IncorrectValueSize. Consider defining and using a more precise error variant like ProofError::InvalidItemType to enhance error clarity.

Apply this diff to improve error specificity:

-_ => Err(Error::Proof(ProofError::IncorrectValueSize(
+_ => Err(Error::Proof(ProofError::InvalidItemType(
    "proof did not point to an item as expected for token info",
))),
packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/v0/mod.rs (1)

41-56: Avoid using unwrap() to prevent potential panics.

Even though proved_key_values is confirmed to have two elements, using unwrap() could lead to panics if changes occur in the future. It's safer to use direct indexing or pattern matching without unwrap().

Apply this refactor to eliminate unwrap() usage:

-let (
-    _aggregated_identity_balances_path,
-    _aggregated_identity_balances_key,
-    Some(aggregated_identity_balances_element),
-) = proved_key_values.get(0).unwrap()
+let (
+    _aggregated_identity_balances_path,
+    _aggregated_identity_balances_key,
+    Some(aggregated_identity_balances_element),
+) = &proved_key_values[0];

And similarly for the second element:

-let (
-    _total_supply_path,
-    _total_supply_key,
-    Some(total_supply_element),
-) = proved_key_values.get(1).unwrap()
+let (
+    _total_supply_path,
+    _total_supply_key,
+    Some(total_supply_element),
+) = &proved_key_values[1];
packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/v0/mod.rs (2)

43-52: Improve token ID extraction for clarity and maintainability

Consider refactoring the extraction of token_id from proved_key_value.0.get(2):

  • Use a named constant or variable for the index 2 to enhance readability.
  • Add comments explaining the structure of proved_key_value.0 and why index 2 is used.

Additionally, enhance the error messages to provide more context:

  • Include details about the actual length or content when expected sizes are not met.
  • For example, modify the error message to indicate the current size of the path or the problematic value.

54-61: Enhance error messages for unexpected proof elements

The error message "proof did not point to a sum item" could be more informative:

  • Include information about the actual element type encountered in the proof.
  • Providing additional context will assist in debugging and identifying the root cause of the issue.
packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/v0/mod.rs (1)

54-63: Provide detailed error information for proof validation

When the proof does not point to the expected Item, the error message could be more descriptive:

  • Specify the actual element type found in the proof.
  • Including this information will help diagnose issues during proof validation and improve debugging efficiency.
packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/mod.rs (1)

14-74: Consider refactoring to eliminate code duplication

The implementation of verify_token_balances_for_identity_id closely mirrors that of verify_token_infos_for_identity_id in structure and logic. To improve maintainability and reduce code duplication, consider abstracting the common patterns into shared utility functions or traits.

packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/mod.rs (1)

15-68: Refactor common version dispatching logic

Similar to other verification methods, verify_token_total_supply_and_aggregated_identity_balance contains repetitive version dispatching code. Abstracting this pattern into a generic helper function or macro could reduce code duplication and enhance code maintainability.

packages/rs-drive-abci/src/query/token_queries/token_total_supply/v0/mod.rs (3)

23-28: Enhance error message for token_id conversion failure

The error message when token_id conversion fails could be more informative to aid debugging. Including the actual length of the provided token_id can help identify issues quickly.

Consider updating the error handling as follows:

- QueryError::InvalidArgument(
-     "token_id must be a valid identifier (32 bytes long)".to_string(),
- )
+ QueryError::InvalidArgument(format!(
+     "token_id must be a valid 32-byte identifier, but got {} bytes",
+     token_id.len()
+ ))

46-53: Clarify error message when aggregated identity balances are missing

The current error message might suggest that the token itself does not exist, whereas the issue could be specifically with the aggregated identity balances.

Consider refining the error message for clarity:

- QueryError::NotFound(
-     format!("Token {} not found", Identifier::new(token_id)),
- )
+ QueryError::NotFound(
+     format!("Aggregated identity balances for token {} not found", Identifier::new(token_id)),
+ )

55-62: Align error message for missing token total supply

Similarly, clarify the error message when the total supply for the token is not found to accurately reflect the issue.

Update the error message for consistency and clarity:

- QueryError::NotFound(
-     format!("Token {} total supply not found", Identifier::new(token_id)),
- )
+ QueryError::NotFound(
+     format!("Total supply for token {} not found", Identifier::new(token_id)),
+ )
packages/rs-drive/src/verify/tokens/mod.rs (1)

1-6: Standardize module naming for consistency

The module verify_token_total_supply_and_aggregated_identity_balance uses the singular form "balance" while other modules use plural forms (e.g., verify_token_balances_for_identity_id). For consistency, consider renaming it to verify_token_total_supply_and_aggregated_identity_balances.

This change will align the naming convention across the modules and improve code readability.

packages/rs-dpp/src/balances/total_single_token_balance/mod.rs (2)

5-12: Enhance struct documentation with validation rules.

While the documentation explains the relationship between fields, it would be helpful to include:

  • Valid ranges for both fields (non-negative values)
  • Error conditions that could occur
  • Example usage

26-49: Consider enhancing error messages and method naming.

  1. The method name ok could be more descriptive, e.g., validate_balance or verify_balance_equality.
  2. Error messages could include the actual values to aid in debugging.
-            return Err(ProtocolError::Generic(
-                "Token in platform are less than 0".to_string(),
-            ));
+            return Err(ProtocolError::Generic(
+                format!("Token supply is negative: {}", token_supply),
+            ));

-            return Err(ProtocolError::Generic(
-                "Token in aggregated identity balances are less than 0".to_string(),
-            ));
+            return Err(ProtocolError::Generic(
+                format!("Aggregated identity balances is negative: {}", aggregated_token_account_balances),
+            ));
packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/mod.rs (1)

Line range hint 12-22: Update documentation to reflect parameter change.

The documentation still references drive_version parameter, but the method now uses platform_version.

-    /// * `drive_version` - A `DriveVersion` object specifying the version of the Drive.
+    /// * `platform_version` - A `PlatformVersion` object specifying the version of the platform.
packages/rs-drive-abci/src/query/token_queries/token_total_supply/mod.rs (1)

13-14: Consider enhancing the documentation.

While the implementation is solid, the documentation could be more detailed. Consider adding:

  • Expected input/output examples
  • Version compatibility notes
  • Error scenarios and handling
packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/mod.rs (1)

38-47: Consider simplifying the parameter types.

The estimated_costs_only_with_layer_info parameter has a complex type signature. Consider creating a type alias or dedicated struct to improve readability:

pub type EstimatedCostsInfo = Option<HashMap<KeyInfoPath, EstimatedLayerInformation>>;

pub struct TokenSupplyOperationParams {
    pub estimated_costs: EstimatedCostsInfo,
    pub transaction: TransactionArg,
    pub drive_operations: Vec<LowLevelDriveOperation>,
}
packages/rs-dpp/src/balances/credits.rs (1)

25-26: Enhance documentation for SignedTokenAmount type.

While the type definition is correct and consistent with other signed types, consider adding more detailed documentation explaining:

  • Use cases for signed token amounts
  • Relationship with TokenAmount
  • Valid range considerations
packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/mod.rs (1)

41-51: Enhance method documentation.

Consider adding more detailed documentation for:

  • Return type explanation (what does None signify?)
  • Parameter estimated_costs_only_with_layer_info purpose and usage
  • Expected error cases
packages/rs-drive/src/error/proof.rs (1)

95-95: Consider removing deprecated error code function.

The get_error_code function is marked as deprecated and unused. Consider removing it or documenting why it's being kept.

packages/rs-drive/src/drive/tokens/balance/queries.rs (1)

99-119: Consider adding documentation for the return value format.

The function implementation looks good, merging queries efficiently. However, it would be helpful to document the format of the returned data since it combines two different types of information.

Add documentation like this:

/// Returns a merged query that fetches both total supply and aggregated identity balances.
/// The query result will contain two items in the following order:
/// 1. Aggregated identity balances
/// 2. Total token supply
packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs (1)

22-39: Consider adding documentation for the operation method.

While the implementation is correct, adding documentation would help explain:

  • The purpose of drive_operations
  • The expected format of the proof
  • Any potential error conditions
packages/rs-drive-abci/src/query/service.rs (1)

Line range hint 715-724: Remove commented out code.

If the get_active_group_actions method is no longer needed, it should be removed rather than left commented out. This helps maintain code cleanliness and prevents confusion.

-    // async fn get_active_group_actions(
-    //     &self,
-    //     request: Request<GetActiveGroupActionsRequest>,
-    // ) -> Result<Response<GetActiveGroupActionsResponse>, Status> {
-    //     self.handle_blocking_query(
-    //         request,
-    //         Platform::<DefaultCoreRPC>::query_active_group_actions,
-    //         "get_active_group_actions",
-    //     )
-    //     .await
-    // }
packages/dapi-grpc/protos/platform/v0/platform.proto (1)

66-67: Remove commented out RPC methods.

If these methods are no longer needed, they should be removed rather than left commented out.

-//  rpc getActiveGroupActions(GetActiveGroupActionsRequest) returns (GetActiveGroupActionsResponse);
-//  rpc getClosedGroupActions(GetClosedGroupActionsRequest) returns (GetClosedGroupActionsResponse);
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 55a1e03 and 2fb8fb4.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (47)
  • packages/dapi-grpc/protos/platform/v0/platform.proto (2 hunks)
  • packages/rs-dpp/src/balances/credits.rs (1 hunks)
  • packages/rs-dpp/src/balances/mod.rs (1 hunks)
  • packages/rs-dpp/src/balances/total_single_token_balance/mod.rs (1 hunks)
  • packages/rs-drive-abci/src/execution/platform_events/tokens/validate_token_aggregated_balance/v0/mod.rs (1 hunks)
  • packages/rs-drive-abci/src/query/service.rs (4 hunks)
  • packages/rs-drive-abci/src/query/token_queries/mod.rs (1 hunks)
  • packages/rs-drive-abci/src/query/token_queries/token_status/mod.rs (1 hunks)
  • packages/rs-drive-abci/src/query/token_queries/token_total_supply/mod.rs (1 hunks)
  • packages/rs-drive-abci/src/query/token_queries/token_total_supply/v0/mod.rs (1 hunks)
  • packages/rs-drive/Cargo.toml (1 hunks)
  • packages/rs-drive/src/drive/shared/shared_estimation_costs/add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs (3 hunks)
  • packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/v0/mod.rs (3 hunks)
  • packages/rs-drive/src/drive/tokens/balance/queries.rs (3 hunks)
  • packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/mod.rs (2 hunks)
  • packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/v0/mod.rs (4 hunks)
  • packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/v0/mod.rs (3 hunks)
  • packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/v0/mod.rs (3 hunks)
  • packages/rs-drive/src/drive/tokens/info/queries.rs (2 hunks)
  • packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/v0/mod.rs (2 hunks)
  • packages/rs-drive/src/drive/tokens/status/prove_token_statuses/v0/mod.rs (3 hunks)
  • packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/system/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/mod.rs (1 hunks)
  • packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/error/proof.rs (2 hunks)
  • packages/rs-drive/src/verify/tokens/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_statuses/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_statuses/v0/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/mod.rs (1 hunks)
  • packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/v0/mod.rs (1 hunks)
  • packages/rs-platform-version/Cargo.toml (1 hunks)
  • packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/mod.rs (1 hunks)
  • packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/v1.rs (1 hunks)
  • packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/mod.rs (2 hunks)
  • packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/v1.rs (2 hunks)
  • packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/mod.rs (1 hunks)
  • packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/v1.rs (1 hunks)
  • packages/rs-platform-version/src/version/mocks/v2_test.rs (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • packages/rs-drive-abci/src/query/token_queries/mod.rs
  • packages/rs-dpp/src/balances/mod.rs
  • packages/rs-drive/src/drive/shared/shared_estimation_costs/add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded/v0/mod.rs
🔇 Additional comments (53)
packages/rs-drive/src/verify/tokens/verify_token_statuses/v0/mod.rs (1)

15-63: Well-structured function with appropriate error handling.

The verify_token_statuses_v0 function is well-implemented, with clear logic and proper error handling. The use of generics and iterators aligns with Rust best practices, and the function correctly handles various proof verification scenarios.

packages/rs-drive/src/verify/tokens/verify_token_statuses/mod.rs (1)

14-67: Correct implementation of version dispatching.

The verify_token_statuses method correctly dispatches to the version-specific implementation based on platform_version. This approach ensures future compatibility and maintainability as new versions are added.

packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/v0/mod.rs (1)

14-72: Efficient proof verification and result extraction.

The verify_token_total_supply_and_aggregated_identity_balance_v0 function effectively verifies the proof and retrieves the necessary token balance information. The logical flow and error handling are appropriate.

packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/v0/mod.rs (1)

43-53: Refine token ID extraction and improve error handling

Similar to the previous module, consider the following improvements:

  • Refactor the extraction of token_id from proved_key_value.0.get(2) by using a named constant or variable for the index.
  • Add comments to explain the structure of proved_key_value.0, enhancing code readability.
  • Enhance error messages to include actual and expected values or sizes, aiding in debugging.
packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/mod.rs (1)

14-73: Well-structured method with comprehensive documentation

The verify_token_infos_for_identity_id method is correctly implemented with proper version dispatching based on the platform_version. The comprehensive documentation provides clear explanations of parameters, return values, and potential errors, enhancing the maintainability and readability of the code.

packages/rs-drive-abci/src/query/token_queries/token_total_supply/v0/mod.rs (1)

30-44: Ensure robust handling of proof generation errors

In the if prove block, any errors during proof generation should be properly handled to prevent unexpected failures.

Please verify that prove_token_total_supply_and_aggregated_identity_balances handles all potential errors internally and that any critical errors are correctly propagated. If necessary, add error handling to manage unexpected scenarios.

packages/rs-drive/src/drive/tokens/system/mod.rs (1)

3-5: New modules added appropriately

The modules fetch_token_total_aggregated_identity_balances, fetch_token_total_supply, and prove_token_total_supply_and_aggregated_identity_balances are correctly added to the system tokens module, enhancing the functionality as intended.

packages/rs-drive-abci/src/execution/platform_events/tokens/validate_token_aggregated_balance/v0/mod.rs (1)

19-19: LGTM! Parameter update aligns with the new method signature.

The change from &platform_version.drive to platform_version matches the updated signature of calculate_total_tokens_balance and maintains proper error handling.

packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/mod.rs (2)

15-20: LGTM! Well-structured method signature with clear documentation.

The method signature is well-defined with appropriate parameters and documentation.


21-38: LGTM! Robust version handling with clear error messages.

The implementation:

  • Properly handles version dispatch
  • Provides clear error messages for unknown versions
  • Follows the established pattern for version-based method dispatch
packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/v1.rs (1)

16-17: LGTM! Version configuration aligns with new functionality.

The addition of new fields for token total supply and aggregated balances is consistent with the new functionality being implemented. Starting versions at 0 follows the established pattern.

Also applies to: 27-27

packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/v0/mod.rs (1)

18-18: LGTM! Parameter update maintains functionality while improving version handling.

The change from drive_version to platform_version is consistent with the codebase-wide transition to using PlatformVersion. The core calculation logic and error handling remain intact.

Also applies to: 28-28, 39-39

packages/rs-dpp/src/balances/total_single_token_balance/mod.rs (1)

14-25: LGTM! Clean Display implementation.

The Display trait implementation provides well-formatted output with proper indentation and newlines.

packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/mod.rs (1)

34-40: LGTM! Clean version handling implementation.

The version check has been properly updated to use the platform version hierarchy.

packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/mod.rs (1)

23-24: LGTM! Well-structured feature version additions.

The new fields are appropriately placed and follow consistent naming conventions:

  • token_total_supply
  • token_total_aggregated_identity_balances
  • total_supply_and_aggregated_identity_balances

Also applies to: 36-36

packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/v0/mod.rs (1)

34-34: Verify the implementation of token_statuses_query helper.

The code now uses Drive::token_statuses_query helper method. Please ensure this method is properly implemented and tested.

✅ Verification successful

Implementation of token_statuses_query is properly implemented and well integrated

The method is correctly implemented in packages/rs-drive/src/drive/tokens/info/queries.rs and follows the established patterns for token-related queries in the codebase. It's actively used across fetch, prove, and verify operations, demonstrating proper integration and testing through usage.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for the implementation of token_statuses_query
ast-grep --pattern 'impl Drive {
  $$$
  fn token_statuses_query($$$) {
    $$$
  }
  $$$
}'

Length of output: 94


Script:

#!/bin/bash
# Search for any mention of token_statuses_query
rg -l "token_statuses_query"

# Search with context to understand the implementation
rg "token_statuses_query" -A 5

# Search for Drive implementation files
fd -t f "drive\.rs$"

# Search for similar method names
rg "token.*query" -A 5

Length of output: 35124

packages/rs-drive-abci/src/query/token_queries/token_status/mod.rs (1)

23-23: LGTM! Error message accurately reflects the context.

The error message now correctly refers to "token statuses" instead of "token infos", maintaining consistent terminology throughout the codebase.

packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs (2)

36-36: LGTM! Improved code maintainability.

Using Drive::token_balances_for_identity_id_query simplifies the path query construction and reduces code duplication.


48-51: Verify the path structure change.

The token ID index has changed from 1 to 2, suggesting a modification in the path structure. Please ensure this change is consistent with the updated path structure across the codebase.

✅ Verification successful

Path structure change is consistent

The token ID is consistently accessed at index 2 across token-related operations in the codebase, as evidenced by identical implementations in both token balance and token info modules.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the consistency of token ID path indexing across the codebase

# Search for similar path index access patterns
rg -A 2 "path\.get\([12]\)" --type rust

# Search for token ID extraction patterns
ast-grep --pattern 'path.get($_).ok_or($_)' 

Length of output: 3835

packages/rs-drive-abci/src/query/token_queries/token_total_supply/mod.rs (1)

13-58: LGTM! Well-structured implementation of token total supply queries.

The implementation follows best practices with proper error handling, version validation, and clean separation of concerns.

packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/mod.rs (1)

15-35: LGTM! Clean implementation of token total supply fetching.

The implementation follows the Drive's versioning pattern with proper error handling and version routing.

packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/v0/mod.rs (2)

37-37: LGTM! Improved code organization with dedicated query method.

The refactoring to use Drive::token_infos_for_identity_id_query improves code organization and reusability.


49-51: Verify path structure change impact.

The change in path index from 1 to 2 suggests a modification in the expected path structure. This could be a breaking change if not all callers are updated.

Let's verify the usage:

✅ Verification successful

Change correctly aligns with token path structure

The change from index 1 to 2 is actually fixing a bug to match the defined path structure in paths.rs. The token identity info paths are consistently defined as 3-part paths where index 2 contains the token_id.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any other code that might be accessing path indices in token info queries
rg -A 5 "token_infos.*path.*get\(\d+\)" 

Length of output: 41


Script:

#!/bin/bash
# Search for any path.get() calls to understand the path structure
rg -A 3 "path.*get\(\d+\)"

# Search for path-related tests and documentation
rg -l "path.*structure|path.*format" --type rust

# Look for the specific file and its tests
fd "fetch_identity_token_infos" --type f

Length of output: 7357


Script:

#!/bin/bash
# Check the token paths structure
cat packages/rs-drive/src/drive/tokens/paths.rs

# Look for related tests
rg -A 5 "fetch_identity_token_infos.*test" --type rust

Length of output: 2953

packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/v1.rs (1)

36-38: LGTM! New verification methods align with PR objectives.

The addition of three new token verification methods with consistent version initialization enhances the platform's verification capabilities:

  • verify_token_infos_for_identity_id
  • verify_token_statuses
  • verify_token_total_supply_and_aggregated_identity_balance
packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/mod.rs (1)

14-39: LGTM! Well-structured implementation with proper version handling.

The implementation follows best practices with proper error handling and version compatibility checks.

packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs (1)

14-29: LGTM! Clean implementation of the wrapper method.

The method correctly initializes the operations vector and delegates to the detailed implementation.

packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/mod.rs (1)

33-33: LGTM! Consistent versioning structure.

The addition of token_total_supply follows the established pattern for feature versioning.

packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/mod.rs (1)

51-53: LGTM! Well-structured verification methods.

The new verification methods are logically grouped and follow consistent naming patterns.

packages/rs-drive/src/error/proof.rs (1)

33-38: LGTM! Clear distinction between system and user errors.

The new error variant provides a clear separation between system errors (IncorrectProof) and user errors (UnexpectedResultProof), with good documentation.

packages/rs-drive/src/drive/tokens/info/queries.rs (2)

38-57: LGTM! Well-structured query implementation.

The function efficiently handles multiple token IDs and correctly sets up the subquery path for the identity ID.


59-73: LGTM! Clean implementation of token status query.

The function follows consistent patterns and properly handles multiple token IDs.

packages/rs-drive/src/drive/tokens/balance/queries.rs (1)

40-59: LGTM! Well-implemented balance query function.

The function follows consistent patterns and properly handles multiple token IDs.

packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/v1.rs (1)

102-106: LGTM! Version configuration is consistent.

The new token_total_supply feature version bounds are properly configured and follow the same pattern as other features.

packages/rs-drive/src/drive/tokens/status/prove_token_statuses/v0/mod.rs (3)

29-29: LGTM! Good refactoring of query construction.

The code is simplified by using the new helper method token_statuses_query.


40-188: LGTM! Comprehensive test coverage for token status proofs.

The test thoroughly verifies:

  • Multiple token status proofs
  • Different token states (paused vs. non-paused)
  • Proper proof verification

190-220: LGTM! Good edge case testing.

The test properly verifies behavior with non-existent tokens.

packages/rs-platform-version/src/version/mocks/v2_test.rs (1)

240-244: LGTM! Version configuration follows established patterns.

The addition of token_total_supply with version bounds consistent with other feature versions is appropriate.

packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs (3)

8-20: LGTM! Clean implementation of the proof generation method.

The method correctly delegates to the operation-based implementation while maintaining a clean interface.


57-171: Well-structured test case with comprehensive assertions.

The test effectively validates:

  • Proof generation for multiple identities
  • Root hash validation
  • Balance verification
  • Total supply calculation

173-256: Good coverage of edge case with empty token.

The test properly verifies that the proof system works correctly with zero balances.

packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/v0/mod.rs (3)

32-32: LGTM! Clean query construction.

The use of Self::token_infos_for_identity_id_query encapsulates query logic effectively.


62-218: Thorough test coverage for token freezing scenario.

The test effectively validates:

  • Token freezing state
  • Multiple token handling
  • Proof verification

Line range hint 220-302: Comprehensive edge case testing.

Both tests effectively cover:

  • Empty token balances
  • Non-existent identity scenarios
  • Proof verification for edge cases

Also applies to: 304-381

packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/v0/mod.rs (3)

32-32: LGTM! Clean query construction.

The use of Self::token_balances_for_identity_id_query maintains consistency with other proof implementations.


61-218: Well-structured test for multiple token balances.

The test thoroughly validates:

  • Multiple token minting
  • Balance verification
  • Proof generation and verification

220-302: Comprehensive edge case coverage.

Tests effectively verify:

  • Zero balance scenarios
  • Non-existent identity handling
  • Proof verification for edge cases

Also applies to: 304-381

packages/rs-drive-abci/src/query/service.rs (3)

25-26: LGTM!

The new imports are correctly ordered and match the added functionality for token supply and group info types.

Also applies to: 41-42


679-689: LGTM!

The implementation follows the established pattern for query methods and correctly uses handle_blocking_query with appropriate parameters.


703-713: LGTM!

The implementation follows the established pattern for query methods and correctly uses handle_blocking_query with appropriate parameters.

packages/rs-platform-version/Cargo.toml (1)

14-14: Verify the grovedb dependency version.

The grovedb-version dependency has been updated to a new revision. Please ensure this is the latest stable version and verify its compatibility with other packages.

Run the following script to check the commit history and latest tags:

✅ Verification successful

The grovedb dependency version is appropriate and consistent

The specified commit (e3ac3f7) is 2 commits ahead of the latest tag v2.2.1 and contains a critical bugfix for query handling. All packages in the codebase consistently use this same commit, maintaining proper version alignment across the project.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the grovedb repository for commit info and latest tags.

# Get commit info
gh api repos/dashpay/grovedb/commits/e3ac3f7883bb0f2e25936153f76d447b42ebc9c0 --jq '.commit.message'

# Get latest tags
gh api repos/dashpay/grovedb/tags --jq '.[0:5] | .[] | {name: .name, sha: .commit.sha}'

Length of output: 572


Script:

#!/bin/bash
# Check if the commit is ahead of the latest tag
gh api repos/dashpay/grovedb/compare/v2.2.1...e3ac3f7883bb0f2e25936153f76d447b42ebc9c0 --jq '.status, .ahead_by, .behind_by'

# Find other grovedb dependencies
fd Cargo.toml --exec rg -l "grovedb"

Length of output: 319


Script:

#!/bin/bash
# Check grovedb dependency versions in all Cargo.toml files
for file in ./packages/strategy-tests/Cargo.toml ./packages/rs-platform-version/Cargo.toml ./packages/rs-drive/Cargo.toml ./packages/rs-drive-abci/Cargo.toml; do
  echo "=== $file ==="
  rg "grovedb.*=.*\".*\"" "$file" || true
done

Length of output: 2222

packages/dapi-grpc/protos/platform/v0/platform.proto (3)

63-63: LGTM!

The new RPC methods are correctly added to the Platform service.

Also applies to: 65-65


1403-1430: LGTM!

The token total supply message types are well-structured with:

  • Proper versioning support
  • Clear field naming
  • Correct field numbering
  • Support for proof requests

Line range hint 1431-1579: LGTM!

The group info message types are well-structured with:

  • Proper versioning support
  • Pagination support
  • Clear field naming
  • Correct field numbering
  • Support for proof requests

@QuantumExplorer QuantumExplorer merged commit 0220302 into v2.0-tokens-dev Jan 19, 2025
4 checks passed
@QuantumExplorer QuantumExplorer deleted the feat/TokenQueries1 branch January 19, 2025 07:43
@thephez thephez added the dapi-endpoint DAPI endpoint addition or modification label Jan 28, 2025
@thephez thephez added this to the v2.0.0 milestone Jan 28, 2025
lklimek added a commit that referenced this pull request Mar 6, 2025
commit 6776651
Author: QuantumExplorer <[email protected]>
Date:   Sat Mar 1 22:23:41 2025 +0700

    chore: update to latest dash core 37 (#2483)

commit 1501103
Merge: a7c7a0f da17fc5
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 27 14:21:41 2025 +0700

    chore: merge master and resolve conflicts (#2481)

commit da17fc5
Author: pshenmic <[email protected]>
Date:   Thu Feb 27 13:31:51 2025 +0700

    feat(js-dash-sdk): fix tests after merge

commit c7e40cb
Merge: c57e8b2 f9eb069
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 27 09:35:02 2025 +0700

    Merge remote-tracking branch 'origin/chore/merge-master' into chore/merge-master

commit c57e8b2
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 27 09:34:40 2025 +0700

    test(dpp): fix assertion with the same value

commit 045b6fa
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 27 09:32:33 2025 +0700

    chore(dpp): remove unnecessary type conversion

commit 8160ccd
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 27 09:31:32 2025 +0700

    chore: remove duplicated commented code

commit f9eb069
Merge: 05d0085 a7c7a0f
Author: pshenmic <[email protected]>
Date:   Wed Feb 26 20:03:00 2025 +0700

    Merge branch 'v2.0-dev' into chore/merge-master

commit a7c7a0f
Author: pshenmic <[email protected]>
Date:   Wed Feb 26 19:52:02 2025 +0700

    build: bump rust version to 1.85 (#2480)

commit 05d0085
Merge: bcf1785 196976c
Author: Ivan Shumkov <[email protected]>
Date:   Wed Feb 26 18:03:38 2025 +0700

    Merge branch 'master' into v2.0-dev

commit bcf1785
Author: lklimek <[email protected]>
Date:   Fri Feb 21 08:43:35 2025 +0100

    feat: wasm sdk build proof-of-concept (#2405)

    Co-authored-by: Ivan Shumkov <[email protected]>

commit 5e32426
Author: Paul DeLucia <[email protected]>
Date:   Thu Feb 20 19:22:52 2025 +0700

    fix: token already paused unpaused and frozen validation (#2466)

commit 374a036
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 20 17:46:57 2025 +0700

    test: fix slowdown of JS SDK unit tests (#2475)

commit 1fed09b
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 20 13:46:36 2025 +0700

    fix(dpp): invalid feature flag usage (#2477)

commit 33507bb
Author: Paul DeLucia <[email protected]>
Date:   Thu Feb 20 13:18:55 2025 +0700

    fix: destroy frozen funds used wrong identity and proof verification (#2467)

commit 91a9766
Author: Ivan Shumkov <[email protected]>
Date:   Wed Feb 19 16:57:32 2025 +0700

    feat(sdk): return state transition execution error (#2454)

commit cb915a7
Author: Ivan Shumkov <[email protected]>
Date:   Wed Feb 19 16:46:54 2025 +0700

    test: fix token history contract tests (#2470)

commit 04276d5
Author: Ivan Shumkov <[email protected]>
Date:   Tue Feb 18 21:00:05 2025 +0700

    fix: xss vulnerability in mocha (#2469)

commit 196976c
Author: pshenmic <[email protected]>
Date:   Fri Feb 14 18:50:08 2025 +0700

    fix(sdk)!: bigint for uint64 values (#2443)

commit 0bd29a6
Author: pshenmic <[email protected]>
Date:   Fri Feb 14 17:29:35 2025 +0700

    feat(dpp): extra methods for state transitions in wasm (#2462)

commit 1eae781
Author: pshenmic <[email protected]>
Date:   Fri Feb 14 15:29:17 2025 +0700

    chore(platform): npm audit fix (#2463)

commit ddf4e67
Author: Ivan Shumkov <[email protected]>
Date:   Fri Feb 14 11:28:08 2025 +0700

    test: fix `fetchProofForStateTransition` tests and warnings (#2460)

commit d88ea46
Author: Ivan Shumkov <[email protected]>
Date:   Fri Feb 14 09:52:53 2025 +0700

    fix(dpp): invalid imports and tests (#2459)

commit 82e4d4c
Merge: 125cfe7 4becf5f
Author: Paul DeLucia <[email protected]>
Date:   Thu Feb 13 19:05:51 2025 +0700

    fix: check if token is paused on token transfers (#2458)

commit 4becf5f
Author: pauldelucia <[email protected]>
Date:   Thu Feb 13 18:34:24 2025 +0700

    add costs

commit 907971d
Merge: 9026669 125cfe7
Author: Paul DeLucia <[email protected]>
Date:   Thu Feb 13 18:05:06 2025 +0700

    Merge branch 'v2.0-dev' into feat/token-paused-validation

commit 125cfe7
Merge: 91f65c6 c286ec0
Author: Ivan Shumkov <[email protected]>
Date:   Thu Feb 13 15:51:46 2025 +0700

    Merge branch 'v2.0-dev' into v2.0-tokens-dev

commit 9026669
Author: pauldelucia <[email protected]>
Date:   Thu Feb 13 13:41:19 2025 +0700

    feat: check if token is paused on token transfers

commit c286ec0
Author: pshenmic <[email protected]>
Date:   Wed Feb 12 15:41:21 2025 +0700

    feat(sdk): add option to request all keys (#2445)

commit 91f65c6
Merge: d6b40e6 1a1c50b
Author: Paul DeLucia <[email protected]>
Date:   Wed Feb 12 12:04:58 2025 +0700

    fix: wrong order of parameters in UnauthorizedTokenActionError (#2456)

commit 1a1c50b
Author: pauldelucia <[email protected]>
Date:   Wed Feb 12 11:51:31 2025 +0700

    fix: wrong order of parameters in UnauthorizedTokenActionError

commit 26aff36
Author: lklimek <[email protected]>
Date:   Tue Feb 11 13:06:54 2025 +0100

    build: bump Alpine version to 3.21 (#2074)

commit 9daa195
Author: Ivan Shumkov <[email protected]>
Date:   Tue Feb 11 14:38:55 2025 +0700

    ci: use github-hosted arm runner for release workflow (#2452)

commit 2b1c252
Author: Paul DeLucia <[email protected]>
Date:   Tue Feb 4 16:40:34 2025 +0700

    fix: proof result error for credit transfers in sdk (#2451)

commit d6b40e6
Author: QuantumExplorer <[email protected]>
Date:   Tue Feb 4 06:49:03 2025 +0700

    feat(platform): token distribution part two (#2450)

commit 93f7d44
Author: Ivan Shumkov <[email protected]>
Date:   Wed Jan 29 14:07:55 2025 +0700

    fix(dpp): invalid feature flag instructions (#2448)

commit 6d5af88
Author: QuantumExplorer <[email protected]>
Date:   Mon Jan 27 16:59:39 2025 +0700

    feat(dpp): token distribution model (#2447)

commit e735313
Author: Ivan Shumkov <[email protected]>
Date:   Mon Jan 27 14:24:26 2025 +0700

    feat: add token transitions to SDK and DAPI (#2434)

commit 0743be2
Author: pshenmic <[email protected]>
Date:   Sun Jan 26 22:00:40 2025 +0700

    feat(dpp): extra methods for state transitions in wasm (#2401)

commit f609bcf
Merge: 3733f56 cbddb8d
Author: Ivan Shumkov <[email protected]>
Date:   Fri Jan 24 18:16:38 2025 +0700

    Merge branch 'v2.0-dev' into v2.0-tokens-dev

commit cbddb8d
Author: QuantumExplorer <[email protected]>
Date:   Fri Jan 24 17:59:16 2025 +0700

    chore(platform): make bls sig compatibility an optional feature (#2440)

    Co-authored-by: Ivan Shumkov <[email protected]>

commit 764684b
Author: Ivan Shumkov <[email protected]>
Date:   Fri Jan 24 17:57:27 2025 +0700

    chore: ignore deprecated `lodash.get` (#2441)

commit 3733f56
Author: QuantumExplorer <[email protected]>
Date:   Thu Jan 23 09:16:12 2025 +0700

    feat(platform)!: enhance token configuration and validation mechanisms (#2439)

commit 2480ceb
Author: QuantumExplorer <[email protected]>
Date:   Wed Jan 22 16:33:13 2025 +0700

    chore: dapi grpc queries (#2437)

commit c9ab154
Author: QuantumExplorer <[email protected]>
Date:   Wed Jan 22 15:50:25 2025 +0700

    feat(platform)!: improved token validation and token config update transition (#2435)

commit d9647cc
Author: QuantumExplorer <[email protected]>
Date:   Tue Jan 21 10:28:58 2025 +0700

    feat: get proofs for tokens (#2433)

commit e5964b8
Author: QuantumExplorer <[email protected]>
Date:   Mon Jan 20 23:31:50 2025 +0700

    feat: group queries (#2432)

commit 0220302
Author: QuantumExplorer <[email protected]>
Date:   Sun Jan 19 14:43:51 2025 +0700

    feat(platform): proof verification for many queries and a few more queries (#2431)

commit cd1527d
Author: QuantumExplorer <[email protected]>
Date:   Fri Jan 17 19:39:37 2025 +0700

    fix(dpp)!: wrapping overflow issue (#2430)

commit fd7ee85
Merge: d7143cc e4e156c
Author: Ivan Shumkov <[email protected]>
Date:   Thu Jan 16 21:45:47 2025 +0700

    Merge branch 'master' into v1.9-dev

commit e4e156c
Author: QuantumExplorer <[email protected]>
Date:   Thu Jan 16 18:11:57 2025 +0700

    chore(release): update change log and release v1.8.0 (#2427)

    Co-authored-by: Ivan Shumkov <[email protected]>

commit 55a1e03
Author: QuantumExplorer <[email protected]>
Date:   Thu Jan 16 15:30:42 2025 +0700

    feat(platform)!: token base support (#2383)

commit 59bf0af
Author: QuantumExplorer <[email protected]>
Date:   Thu Jan 16 13:10:39 2025 +0700

    chore(release): bump to v1.8.0-rc.2 (#2426)

commit 410eb09
Author: QuantumExplorer <[email protected]>
Date:   Thu Jan 16 06:31:26 2025 +0700

    fix(drive-abci): rebroadcasting should not only take first 2 quorums too (#2425)

commit 2abce8e
Author: Ivan Shumkov <[email protected]>
Date:   Wed Jan 15 22:51:58 2025 +0700

    chore(release): update changelog and bump version to 1.8.0-rc.1 (#2423)

commit ad5f604
Author: Ivan Shumkov <[email protected]>
Date:   Wed Jan 15 22:14:13 2025 +0700

    chore: update bls library (#2424)

commit c6feb5b
Author: QuantumExplorer <[email protected]>
Date:   Wed Jan 15 18:57:49 2025 +0700

    feat(platform)!: distribute prefunded specialized balances after vote (#2422)

    Co-authored-by: Ivan Shumkov <[email protected]>

commit 94dcbb2
Author: Ivan Shumkov <[email protected]>
Date:   Wed Jan 15 05:51:45 2025 +0700

    chore(drive): increase withdrawal limits to 2000 Dash per day (#2287)

commit 6a0aede
Author: Ivan Shumkov <[email protected]>
Date:   Tue Jan 14 21:42:59 2025 +0700

    chore: fix test suite configuration script (#2402)

commit e94b7bb
Author: QuantumExplorer <[email protected]>
Date:   Tue Jan 14 19:23:46 2025 +0700

    fix(drive-abci): document purchase on mutable document from different epoch had issue (#2420)

commit 4ee57a6
Author: Ivan Shumkov <[email protected]>
Date:   Tue Jan 14 19:12:20 2025 +0700

    fix(drive): more than one key was returned when expecting only one result (#2421)

commit be5cd6d
Author: Ivan Shumkov <[email protected]>
Date:   Mon Jan 13 15:12:33 2025 +0700

    fix(sdk): failed to deserialize consensus error (#2410)

commit e07271e
Author: Ivan Shumkov <[email protected]>
Date:   Mon Jan 13 14:57:08 2025 +0700

    chore: resolve NPM audit warnings (#2417)

commit a809df7
Author: QuantumExplorer <[email protected]>
Date:   Sun Jan 12 09:21:48 2025 +0700

    test: unify identity versioned cost coverage (#2416)

commit 6d637fe
Author: Paul DeLucia <[email protected]>
Date:   Fri Dec 27 09:42:04 2024 -0500

    fix: try DriveDocumentQuery from DocumentQuery start field (#2407)

commit cfd9c4d
Author: Ivan Shumkov <[email protected]>
Date:   Thu Dec 19 18:30:06 2024 +0700

    chore(release): update changelog and bump version to 1.8.0-dev.2 (#2404)

commit fecda31
Merge: 37d5732 fc7d994
Author: Ivan Shumkov <[email protected]>
Date:   Thu Dec 19 15:33:45 2024 +0700

    Merge branch 'master' into v1.8-dev

commit fc7d994
Author: Ivan Shumkov <[email protected]>
Date:   Thu Dec 19 14:40:44 2024 +0700

    chore(release): update changelog and bump version to 1.7.1 (#2403)

commit adcd3b8
Author: QuantumExplorer <[email protected]>
Date:   Thu Dec 19 09:54:07 2024 +0300

    fix!: emergency hard fork to fix masternode voting (#2397)

commit 37d5732
Author: Ivan Shumkov <[email protected]>
Date:   Wed Dec 18 22:24:37 2024 +0700

    fix(dashmate): some group commands fail with mtime not found (#2400)

commit 01a5b7a
Author: Ivan Shumkov <[email protected]>
Date:   Wed Dec 18 20:44:44 2024 +0700

    refactor(dpp): using deprecated param to init wasm module (#2399)

commit c5f5878
Author: Ivan Shumkov <[email protected]>
Date:   Wed Dec 18 18:04:14 2024 +0700

    fix(dashmate): local network starting issues (#2394)

commit 71c41ff
Author: Ivan Shumkov <[email protected]>
Date:   Wed Dec 18 18:03:55 2024 +0700

    perf(dpp): reduce JS binding size by 3x (#2396)

commit 21ec393
Author: lklimek <[email protected]>
Date:   Wed Dec 18 10:47:58 2024 +0100

    build!: update rust to 1.83 - backport #2393 to v1.7 (#2398)

commit d7143cc
Author: lklimek <[email protected]>
Date:   Wed Dec 18 08:53:53 2024 +0100

    build!: optimize for x86-64-v3 cpu microarchitecture (Haswell+) (#2374)

commit d318b1c
Author: lklimek <[email protected]>
Date:   Tue Dec 17 14:56:15 2024 +0100

    build: bump wasm-bindgen to 0.2.99 (#2395)

commit 889d192
Author: Ivan Shumkov <[email protected]>
Date:   Tue Dec 17 19:25:58 2024 +0700

    chore(release): update changelog and bump version to 1.8.0-dev.1 (#2391)

commit 8185d21
Author: lklimek <[email protected]>
Date:   Tue Dec 17 10:47:53 2024 +0100

    feat(sdk)!: allow setting CA cert (#1924)

commit 82a6217
Author: lklimek <[email protected]>
Date:   Tue Dec 17 02:51:18 2024 +0100

    build!: update rust to 1.83 (#2393)

commit 494054a
Author: QuantumExplorer <[email protected]>
Date:   Mon Dec 16 13:47:58 2024 +0300

    refactor(platform): replace bls library (#2257)

    Co-authored-by: Lukasz Klimek <[email protected]>

commit 4c203e4
Author: lklimek <[email protected]>
Date:   Mon Dec 16 10:38:34 2024 +0100

    test(sdk): generate test vectors using testnet (#2381)

commit 0ff6b27
Author: lklimek <[email protected]>
Date:   Mon Dec 16 10:37:35 2024 +0100

    chore: remove deprecated check_network_version.sh (#2084)

commit b265bb8
Author: lklimek <[email protected]>
Date:   Fri Dec 13 13:25:40 2024 +0100

    ci: fix artifact upload issue on release build (#2389)

commit 40ae73f
Author: Ivan Shumkov <[email protected]>
Date:   Fri Dec 13 17:35:40 2024 +0700

    chore(release): update changelog and bump version to 1.7.0 (#2387)

commit 257e3da
Author: Ivan Shumkov <[email protected]>
Date:   Fri Dec 13 15:44:10 2024 +0700

    chore(dashmate)!: update Core to version 22 (#2384)

commit 19a4c6d
Author: Ivan Shumkov <[email protected]>
Date:   Thu Dec 12 18:30:14 2024 +0700

    chore(dashmate): set tenderdash version to 1 (#2385)

commit 0e9d4dc
Author: lklimek <[email protected]>
Date:   Thu Dec 12 11:39:35 2024 +0100

    chore: address vulnerabilty GHSA-mwcw-c2x4-8c55 (#2382)

    Co-authored-by: Ivan Shumkov <[email protected]>

commit bdae90c
Author: Ivan Shumkov <[email protected]>
Date:   Thu Dec 12 13:36:04 2024 +0700

    chore(dashmate): increase subsidy for devnet (#2353)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dapi-endpoint DAPI endpoint addition or modification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants