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

refactor: refactor x/token,collection query errors #980

Merged
merged 6 commits into from
Apr 19, 2023

Conversation

0Tech
Copy link
Collaborator

@0Tech 0Tech commented Apr 17, 2023

Description

This patch would refactor the query APIs on x/token and x/collection.
The following items are the ground rules over the query APIs.

  • If the parameters are invalid regardless of the chain state, it would emit an gRPC error INVALID_ARGUMENT.
  • If the response type is of number (e.g. sdk.Int) or boolean, and any of the relevant assets does not exist, it would simply return 0 or false, respectively.
  • If the response type is in singular form (e.g. NFT), and any of the relevant assets does not exist, it would emit an gRPC error NOT_FOUND.
  • If the response type is in plural form (i.e. list), and any of the relevant assets does not exist, it would simply return empty list.
  • The errors caused by the page request would NOT be wrapped by the correct gRPC error, because we cannot simply discriminate it unless we change the upstream's code.

Motivation and context

The client requested consistent error policy over the query APIs. Also no more backward compatibility is required by the client. So we refactor those APIs before the launch.

Checklist:

  • I followed the contributing guidelines and code of conduct.
  • I have added a relevant changelog to CHANGELOG.md
  • I have added tests to cover my changes.
  • I have updated the documentation accordingly.
  • I have updated API documentation client/docs/swagger-ui/swagger.yaml

@0Tech 0Tech marked this pull request as ready for review April 18, 2023 06:47
@loin3
Copy link
Contributor

loin3 commented Apr 19, 2023

Would you add description when the response type is boolean like hasParent query's response type?

@0Tech
Copy link
Collaborator Author

0Tech commented Apr 19, 2023

Would you add description when the response type is boolean like hasParent query's response type?

I've updated the description. Thank you!

@0Tech 0Tech merged commit 4845096 into Finschia:rc/v0.47.0-alpha1 Apr 19, 2023
@0Tech 0Tech deleted the refactor-query-errors branch April 19, 2023 05:05
zemyblue added a commit to zemyblue/finschia-sdk that referenced this pull request Apr 21, 2023
* rc/v0.47.0-alpha1: (34 commits)
  ci: update docker action (Finschia#983)
  fix: revert Finschia#952 (Finschia#984)
  refactor: refactor x/token,collection query errors (Finschia#980)
  fix: not to throw error when no txs in block (Finschia#982)
  chore: change import path to `github.com/Finschia/finschia-sdk` (Finschia#970)
  fix: remove legacy events on x/collection and x/token (Finschia#966)
  chore: provide specific error messages on x/collection queries (Finschia#965)
  fix: check event determinism on original modules (Finschia#963)
  fix: refactor queries of x/collection and x/token (Finschia#957)
  chore: address generation of the empty coins in x/foundation (Finschia#952)
  fix: do not loop enum in x/collection (Finschia#961)
  fix: fix default next class ids of x/collection (Finschia#960)
  fix: revert Finschia#955 and add Query/HasParent into x/collection (Finschia#959)
  fix: replace query errors on the original modules into gRPC ones (Finschia#956)
  fix: return nil where the parent not exists in x/collection Query/Parent (Finschia#955)
  fix: remove duplicated events in x/collection Msg/Modify (Finschia#954)
  fix: allow zero amount of coin in x/collection Query/Balance (Finschia#953)
  fix: unpack proposals in x/foundation import-genesis (Finschia#947)
  fix: fix broken x/foundation invariant on treasury (Finschia#946)
  docs: update comments in the x/token,collection events proto (Finschia#944)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants