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

[OTE-839] add query for unconditional revshare #2380

Merged
merged 2 commits into from
Sep 26, 2024

Conversation

affanv14
Copy link
Contributor

@affanv14 affanv14 commented Sep 26, 2024

Changelist

Add query to get unconditional revshare

Test Plan

Tested locally

Author/Reviewer Checklist

  • If this PR has changes that result in a different app state given the same prior state and transaction list, manually add the state-breaking label.
  • If the PR has breaking postgres changes to the indexer add the indexer-postgres-breaking label.
  • If this PR isn't state-breaking but has changes that modify behavior in PrepareProposal or ProcessProposal, manually add the label proposal-breaking.
  • If this PR is one of many that implement a specific feature, manually label them all feature:[feature-name].
  • If you wish to for mergify-bot to automatically create a PR to backport your change to a release branch, manually add the label backport/[branch-name].
  • Manually add any of the following labels: refactor, chore, bug.

Summary by CodeRabbit

Release Notes

  • New Features

    • Introduced a new command to query unconditional revenue share configurations via the command line interface.
    • Added methods to retrieve unconditional revenue share configurations through the application and gRPC services.
  • Bug Fixes

    • Enhanced error handling for retrieving unconditional revenue share configurations.
  • Tests

    • Implemented a test suite to validate the functionality of querying unconditional revenue share configurations.

@affanv14 affanv14 requested a review from a team as a code owner September 26, 2024 21:01
Copy link

linear bot commented Sep 26, 2024

Copy link
Contributor

coderabbitai bot commented Sep 26, 2024

Walkthrough

The pull request introduces a new method for querying unconditional revenue share configurations across multiple files in the dydxprotocol module. This includes the addition of new interfaces, RPC methods, command-line commands, and associated test cases. The changes enhance the existing revenue sharing functionality by enabling users to retrieve specific configuration details through both gRPC and CLI commands.

Changes

File Path Change Summary
indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.lcd.ts Added unconditionalRevShareConfig method to LCDQueryClient for querying revenue share config.
indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.rpc.Query.ts Introduced unconditionalRevShareConfig method in Query interface and implemented it in QueryClientImpl.
indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.ts Added interfaces and response types for unconditional revenue share configurations.
proto/dydxprotocol/revshare/query.proto Added UnconditionalRevShareConfig RPC method and associated message types for requests and responses.
protocol/x/revshare/client/cli/query.go Introduced CmdQueryUnconditionalRevShareConfig command for querying via CLI.
protocol/x/revshare/client/cli/query_params.go Created command function for querying unconditional revenue share configuration with execution logic.
protocol/x/revshare/keeper/grpc_query_unconditional_revshare.go Added UnconditionalRevShareConfig method to handle gRPC queries for revenue share configuration.
protocol/x/revshare/keeper/grpc_query_unconditional_revshare_test.go Introduced tests for UnconditionalRevShareConfig method to validate various query scenarios.

Possibly related PRs

Suggested labels

revshare

Suggested reviewers

  • vincentwschau

Poem

In the meadow where bunnies play,
New queries hop in, brightening the day.
Unconditional shares, oh what a delight,
With every config, our future is bright!
Let's gather the carrots, and cheer with glee,
For revenue sharing is now easy as can be! 🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 7c64ff5 and 6c1af8f.

⛔ Files ignored due to path filters (1)
  • protocol/x/revshare/types/tx.pb.go is excluded by !**/*.pb.go
📒 Files selected for processing (2)
  • indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/tx.rpc.msg.ts (1 hunks)
  • proto/dydxprotocol/revshare/tx.proto (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/tx.rpc.msg.ts
  • proto/dydxprotocol/revshare/tx.proto

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 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.

@affanv14 affanv14 force-pushed the affan/unconditional-query branch from 2f84006 to 7c64ff5 Compare September 26, 2024 21:07
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

🧹 Outside diff range and nitpick comments (6)
protocol/x/revshare/keeper/grpc_query_unconditional_revshare.go (1)

14-21: LGTM with a minor suggestion: Consider wrapping the error for better context.

The implementation is concise and follows best practices:

  • Correctly uses sdk.UnwrapSDKContext to access the underlying SDK context.
  • Properly handles errors by returning early if GetUnconditionalRevShareConfigParams fails.
  • Returns the expected response type with the retrieved configuration.

Consider wrapping the error returned by GetUnconditionalRevShareConfigParams to provide more context. This can be achieved using fmt.Errorf:

 	config, err := k.GetUnconditionalRevShareConfigParams(sdk.UnwrapSDKContext(ctx))
 	if err != nil {
-		return nil, err
+		return nil, fmt.Errorf("failed to get unconditional rev share config params: %w", err)
 	}

Don't forget to import the fmt package if you make this change.

indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.lcd.ts (1)

32-33: Consider removing unnecessary blank lines

There are two consecutive blank lines (32-33) that appear to be unnecessary. Consider removing them to maintain consistent spacing throughout the file.

 /* Queries unconditional revenue share config */
-
-
 async unconditionalRevShareConfig(_params: QueryUnconditionalRevShareConfig = {}): Promise<QueryUnconditionalRevShareConfigResponseSDKType> {
proto/dydxprotocol/revshare/query.proto (2)

29-34: LGTM! Consider enhancing the comment.

The new RPC method UnconditionalRevShareConfig is well-defined and consistent with the PR objective. The HTTP mapping is correctly set up.

Consider enhancing the comment to provide more context:

-  // Queries unconditional revenue share config
+  // Queries the unconditional revenue share configuration

56-59: LGTM! Consider enhancing the comment.

The QueryUnconditionalRevShareConfigResponse message is well-defined with an appropriate structure for returning the unconditional revshare configuration. The use of gogoproto.nullable = false for the config field ensures it will always be present in the response.

Consider enhancing the comment to provide more context:

-// Response type for QueryUnconditionalRevShareConfig
+// Response type for QueryUnconditionalRevShareConfig, containing the unconditional revenue share configuration
protocol/x/revshare/client/cli/query_params.go (1)

70-70: Consider adding a comment to describe the command's purpose.

To improve code readability and maintainability, it would be helpful to add a brief comment describing the purpose of this command and what unconditional revenue share config means in this context.

Here's a suggested comment to add above the function:

// CmdQueryUnconditionalRevShareConfig creates a Cobra command to query the unconditional revenue share configuration.
// This configuration determines how revenue is shared without specific conditions attached.
indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.ts (1)

45-58: Consider adding unit tests for the new query interfaces

To ensure the reliability of the new QueryUnconditionalRevShareConfig query and its responses, consider adding unit tests to cover this functionality.

🧰 Tools
🪛 Biome

[error] 45-45: An empty interface is equivalent to {}.

Safe fix: Use a type alias instead.

(lint/suspicious/noEmptyInterface)


[error] 48-48: An empty interface is equivalent to {}.

Safe fix: Use a type alias instead.

(lint/suspicious/noEmptyInterface)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 53258cb and 7c64ff5.

⛔ Files ignored due to path filters (2)
  • protocol/x/revshare/types/query.pb.go is excluded by !**/*.pb.go
  • protocol/x/revshare/types/query.pb.gw.go is excluded by !**/*.pb.gw.go
📒 Files selected for processing (8)
  • indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.lcd.ts (3 hunks)
  • indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.rpc.Query.ts (5 hunks)
  • indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.ts (3 hunks)
  • proto/dydxprotocol/revshare/query.proto (2 hunks)
  • protocol/x/revshare/client/cli/query.go (1 hunks)
  • protocol/x/revshare/client/cli/query_params.go (1 hunks)
  • protocol/x/revshare/keeper/grpc_query_unconditional_revshare.go (1 hunks)
  • protocol/x/revshare/keeper/grpc_query_unconditional_revshare_test.go (1 hunks)
🧰 Additional context used
🪛 Biome
indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.ts

[error] 45-45: An empty interface is equivalent to {}.

Safe fix: Use a type alias instead.

(lint/suspicious/noEmptyInterface)


[error] 48-48: An empty interface is equivalent to {}.

Safe fix: Use a type alias instead.

(lint/suspicious/noEmptyInterface)

🔇 Additional comments (22)
protocol/x/revshare/keeper/grpc_query_unconditional_revshare.go (3)

3-8: LGTM: Imports are appropriate for the context.

The imports are well-structured and include the necessary packages for implementing a gRPC query handler in a Cosmos SDK module. The custom import from dydxprotocol aligns with the specific protocol implementation.


10-13: LGTM: Function signature follows gRPC query handler conventions.

The UnconditionalRevShareConfig method signature is well-structured and follows the conventions for gRPC query handlers in Cosmos SDK:

  • It's a method of the Keeper struct.
  • It takes a context.Context and a pointer to the request type.
  • It returns a pointer to the response type and an error.

The naming is clear and descriptive, accurately representing the query's purpose.


1-21: Summary: Implementation aligns with PR objectives and follows best practices.

This new file successfully implements the gRPC query handler for unconditional revenue sharing configuration, as outlined in the PR objectives. The code is well-structured, follows Cosmos SDK conventions, and implements proper error handling.

A minor suggestion was made to improve error context, but this is not a blocking issue. The implementation should work as intended and can be safely merged.

To ensure this change is properly integrated, please run the following verification script:

This script will help confirm that the new query is properly registered in the gRPC query server, ensuring it can be accessed as intended.

protocol/x/revshare/client/cli/query.go (2)

Line range hint 1-28: Overall, the change is well-implemented and consistent with existing code.

The addition of the new command CmdQueryUnconditionalRevShareConfig() is minimal and follows the existing pattern in the file. It doesn't introduce any apparent issues or inconsistencies. The change aligns well with the PR objective of adding a query for unconditional revshare data.


25-25: LGTM! New command successfully added.

The new command CmdQueryUnconditionalRevShareConfig() has been correctly added to the command set. This addition aligns with the PR objective of introducing a new query for unconditional revshare data.

To ensure the new command is properly implemented, let's verify its existence:

✅ Verification successful

Verified: CmdQueryUnconditionalRevShareConfig is correctly implemented and integrated.

The function CmdQueryUnconditionalRevShareConfig() is properly defined in query_params.go and successfully added to the CLI commands in query.go. No issues were found during the verification process.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the implementation of CmdQueryUnconditionalRevShareConfig

# Test: Search for the function definition
rg --type go -A 5 'func CmdQueryUnconditionalRevShareConfig\(\)'

Length of output: 630


Script:

#!/bin/bash
# Description: Extract the RunE function implementation of CmdQueryUnconditionalRevShareConfig

# Search for the RunE function block within CmdQueryUnconditionalRevShareConfig
rg --type go 'func CmdQueryUnconditionalRevShareConfig\(\)' -A 20

Length of output: 1648

protocol/x/revshare/keeper/grpc_query_unconditional_revshare_test.go (3)

3-10: LGTM: Imports are appropriate for the test file.

The import statements include all necessary packages for testing, including custom test utilities, constants, and the required types from the revshare module.


12-43: LGTM: Well-structured table-driven tests.

The test function TestQueryUnconditionalRevShare is well-organized using table-driven tests. This approach allows for easy addition of new test cases and provides a clear overview of different scenarios being tested.


1-58: Overall, well-structured and effective test file with room for enhancement.

This test file for UnconditionalRevShareConfig is well-organized and follows good testing practices, particularly with its use of table-driven tests. It effectively covers the main scenarios for unconditional revshare configuration.

To further improve the robustness and effectiveness of these tests, consider:

  1. Adding more edge cases and invalid configurations as suggested earlier.
  2. Enhancing error checking and adding more specific assertions in the test execution logic.
  3. Ensuring comprehensive coverage of the UnconditionalRevShareConfig method's behavior.

These enhancements will contribute to a more thorough and maintainable test suite for the revshare module.

indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.lcd.ts (4)

2-2: LGTM: Import statement updated correctly

The import statement has been appropriately updated to include the new types QueryUnconditionalRevShareConfig and QueryUnconditionalRevShareConfigResponseSDKType. This change is consistent with the addition of the new method and follows the existing naming conventions.


14-14: LGTM: Method binding added correctly

The new method unconditionalRevShareConfig is properly bound to the class instance in the constructor. This follows the established pattern in the class and ensures the correct this context when the method is called.


31-37: LGTM: New method implemented correctly

The unconditionalRevShareConfig method is well-implemented and follows the established patterns in the class. It correctly uses an async function, returns a Promise with the expected type, and uses the appropriate endpoint for the GET request. The optional parameter allows for flexibility in the query.


Line range hint 1-37: Summary: Implementation looks good overall

The changes in this file successfully implement the new query for unconditional revenue sharing as described in the PR objectives. The code is well-structured, follows established patterns, and is consistent with the existing codebase. Only minor formatting suggestions were made. The new functionality appears to be correctly implemented and integrated into the LCDQueryClient class.

proto/dydxprotocol/revshare/query.proto (2)

53-54: LGTM! Empty message is appropriate.

The QueryUnconditionalRevShareConfig message is correctly defined as an empty message, which is appropriate for a query that doesn't require any parameters. The naming convention is consistent with other query messages in the file.


Line range hint 28-59: Summary: Changes align well with PR objectives

The additions to the Query service and the new message types (QueryUnconditionalRevShareConfig and QueryUnconditionalRevShareConfigResponse) are well-implemented and align perfectly with the PR objective of adding a query for unconditional revshare configuration. The changes follow existing naming conventions and structure, maintaining consistency within the file.

To ensure that the UnconditionalRevShareConfig type is properly defined, let's verify its existence:

This will help confirm that the UnconditionalRevShareConfig type, which is used in the response, is properly defined in the project.

✅ Verification successful

Verification Successful: UnconditionalRevShareConfig is Defined

The UnconditionalRevShareConfig type is properly defined in proto/dydxprotocol/revshare/revshare.proto, ensuring that the response type in the query is correctly implemented.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the existence of UnconditionalRevShareConfig type

# Test: Search for the UnconditionalRevShareConfig type definition
rg --type proto "message UnconditionalRevShareConfig"

Length of output: 85


Script:

#!/bin/bash
# Description: Verify the existence of UnconditionalRevShareConfig type by searching all .proto files

# Test: Search for the UnconditionalRevShareConfig type definition in .proto files
rg 'message UnconditionalRevShareConfig' --glob '*.proto'

Length of output: 140

protocol/x/revshare/client/cli/query_params.go (1)

70-91: LGTM! The implementation looks good.

The new CmdQueryUnconditionalRevShareConfig function is well-structured and consistent with other query commands in the file. It correctly sets up the Cobra command, handles the query execution, and manages potential errors.

indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.rpc.Query.ts (5)

4-4: LGTM: Import statement correctly updated

The import statement has been appropriately updated to include the new types QueryUnconditionalRevShareConfig and QueryUnconditionalRevShareConfigResponse. This change is necessary for the new functionality being added.


16-18: LGTM: New query method added to interface

The unconditionalRevShareConfig method has been correctly added to the Query interface. The method signature is consistent with other methods in the interface, using an optional request parameter and returning a Promise. The method name accurately describes its purpose of querying unconditional revenue share configuration.


27-27: LGTM: QueryClientImpl class correctly updated

The QueryClientImpl class has been properly updated to include the new unconditionalRevShareConfig method:

  1. The method is correctly bound in the constructor (line 27).
  2. The method implementation (lines 42-46) follows the established pattern:
    • It encodes the request
    • Sends it via RPC with the correct service and method names
    • Decodes the response using the appropriate type

These changes are consistent with the existing code structure and implement the new functionality correctly.

Also applies to: 42-46


59-62: LGTM: createRpcQueryExtension function updated correctly

The createRpcQueryExtension function has been properly updated to include the new unconditionalRevShareConfig method. The implementation is consistent with other methods in the extension and correctly calls the corresponding method on the queryService. This change ensures that the new query method is available through the extended query service.


Line range hint 1-65: Overall assessment: Changes implement the new query successfully

The changes in this file successfully implement the new query for unconditional revenue share configuration as described in the PR objectives. The modifications are consistent with the existing code structure and patterns, and all necessary components (interface, implementation, and extension) have been updated correctly.

Key points:

  1. New imports added correctly
  2. Query interface updated with the new method
  3. QueryClientImpl class implementation added
  4. createRpcQueryExtension function updated to include the new query

The implementation appears to be complete and ready for integration.

indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/query.ts (2)

2-2: New imports for UnconditionalRevShareConfig

The import statement correctly adds UnconditionalRevShareConfig and UnconditionalRevShareConfigSDKType from "./revshare".


229-305: Implementation of encoding and decoding functions

The encoding and decoding functions for QueryUnconditionalRevShareConfig and QueryUnconditionalRevShareConfigResponse are correctly implemented and follow existing patterns in the codebase.

Comment on lines +13 to +43
testCases := map[string]struct {
config types.UnconditionalRevShareConfig
}{
"Single recipient": {
config: types.UnconditionalRevShareConfig{
Configs: []types.UnconditionalRevShareConfig_RecipientConfig{
{
Address: constants.AliceAccAddress.String(),
SharePpm: 100_000,
},
},
},
},
"Multiple recipients": {
config: types.UnconditionalRevShareConfig{
Configs: []types.UnconditionalRevShareConfig_RecipientConfig{
{
Address: constants.AliceAccAddress.String(),
SharePpm: 50_000,
},
{
Address: constants.BobAccAddress.String(),
SharePpm: 30_000,
},
},
},
},
"Empty config": {
config: types.UnconditionalRevShareConfig{},
},
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider adding edge cases and invalid configurations.

The current test cases cover the main scenarios well. To enhance the robustness of the tests, consider adding the following cases:

  1. A configuration with the maximum allowed number of recipients.
  2. A configuration where the total SharePpm exceeds 1,000,000 (100%).
  3. A configuration with an invalid address.
  4. A configuration with a negative SharePpm.

These additional cases would help ensure proper error handling and validation in the UnconditionalRevShareConfig method.

Comment on lines +45 to +57
for name, tc := range testCases {
t.Run(name, func(t *testing.T) {
tApp := testapp.NewTestAppBuilder(t).Build()
ctx := tApp.InitChain()
k := tApp.App.RevShareKeeper

k.SetUnconditionalRevShareConfigParams(ctx, tc.config)

resp, err := k.UnconditionalRevShareConfig(ctx, &types.QueryUnconditionalRevShareConfig{})
require.NoError(t, err)
require.Equal(t, tc.config, resp.Config)
})
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Enhance error checking and add more assertions.

The test execution logic is generally correct, but consider the following improvements:

  1. Add an assertion to check that SetUnconditionalRevShareConfigParams succeeds:

    err := k.SetUnconditionalRevShareConfigParams(ctx, tc.config)
    require.NoError(t, err)
  2. For the query result, add more specific assertions:

    require.Equal(t, len(tc.config.Configs), len(resp.Config.Configs))
    for i, config := range tc.config.Configs {
        require.Equal(t, config.Address, resp.Config.Configs[i].Address)
        require.Equal(t, config.SharePpm, resp.Config.Configs[i].SharePpm)
    }

These changes will provide more detailed error messages if a test fails, making it easier to identify the exact point of failure.

@@ -40,6 +40,22 @@ export interface QueryMarketMapperRevShareDetailsResponse {
export interface QueryMarketMapperRevShareDetailsResponseSDKType {
details?: MarketMapperRevShareDetailsSDKType;
}
/** Queries unconditional revenue share details */

export interface QueryUnconditionalRevShareConfig {}
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Replace empty interfaces with type aliases

The interfaces QueryUnconditionalRevShareConfig and QueryUnconditionalRevShareConfigSDKType are empty. Since empty interfaces are equivalent to {}, consider using type aliases instead for clarity.

Apply this diff to fix the issue:

-export interface QueryUnconditionalRevShareConfig {}
+type QueryUnconditionalRevShareConfig = {};

-export interface QueryUnconditionalRevShareConfigSDKType {}
+type QueryUnconditionalRevShareConfigSDKType = {};

Also applies to: 48-48

🧰 Tools
🪛 Biome

[error] 45-45: An empty interface is equivalent to {}.

Safe fix: Use a type alias instead.

(lint/suspicious/noEmptyInterface)

@affanv14 affanv14 merged commit 60cc7aa into main Sep 26, 2024
39 checks passed
@affanv14 affanv14 deleted the affan/unconditional-query branch September 26, 2024 22:52
@affanv14
Copy link
Contributor Author

https://github.com/Mergifyio backport release/protocol/v7.x

Copy link
Contributor

mergify bot commented Sep 26, 2024

backport release/protocol/v7.x

✅ Backports have been created

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

3 participants