-
Notifications
You must be signed in to change notification settings - Fork 11.3k
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
2/n improve sui-json-rpc error codes and handling #11833
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The latest updates on your projects. Learn more about Vercel for Git ↗︎ |
wlmyng
force-pushed
the
better-error-handling-2
branch
5 times, most recently
from
May 9, 2023 23:03
bfcd908
to
7b4dd74
Compare
wlmyng
commented
May 11, 2023
healthydeve
approved these changes
May 11, 2023
wlmyng
force-pushed
the
better-error-handling-2
branch
from
May 11, 2023 19:53
7b4dd74
to
ce1f397
Compare
Closed
gegaowp
approved these changes
May 11, 2023
gegaowp
approved these changes
May 11, 2023
…_by_sequence_number -> Replace anyhow::Error with SuiResult<T> for easier error handling downstream. Also introduce new errors in UserInputError
wlmyng
force-pushed
the
better-error-handling-2
branch
from
May 12, 2023 01:57
a08d409
to
8d6bb51
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Update
authority.rs
to useSuiResult
instead ofanyhow::Error
. Some places that depended onanyhow::Error
needed to be updated. Most noticeably, previously, because ofanyhow::Error
, there's no need to convert the underlyingSuiError
intoError
(SuiJsonRpcError
) where Rust can then do the conversion intoError
(RpcError
), as RpcError supportsfrom anyhow::Error
. Now though, we need to explicitly convert into the intermediary, causing instances where we have.map_err(Error::from)?.map_err(Error::from)?
. One thought is to have an_internal()
fn for all methods that rely on calls to state and other services.Test Plan
Existing unit + integration tests. Manually call each api endpoint and verify that success and error responses are as expected
If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)
Release notes
The following endpoints have a change in error response codes:
Previously, these endpoints returned an error code of
-32000
for any error response. With this update, if the underlying error maps to one of the following error types:The error code will now be
-32602
instead.Action Required:
Clients and consumers of the API relying on the previous error code
-32000
for handling specific errors should update their implementations to handle the new error code-32602
. This will ensure the correct handling of errors related to UserInputError, TransactionNotFound, and TransactionsNotFound.Also note that the error string for error variants not mentioned may be slightly different.