Handle custom errors from subtensor #79
Merged
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.
Ported from opentensor/bittensor#2305
In addition to catching the typical error messages we receive, we now also catch errors embedded in
SubstrateRequestException
s by catching these exceptions explicitly and parsing the literal dicts out of the args.E.g.
AsyncSubstrateInterface.submit_extrinsic
can raise aSubstrateRequestException
in two ways:A.
which dumps a number of dict-like responses to the
SubstrateRequestException
's args.or:
B.
which dumps the error dict to the
SubstrateRequestException
's args.We handle this in both cases by parsing the
SubstrateRequestException.args
:This also allows us to handle the majority of raised
SubstrateRequestException
args which have a single string with the message included (case C).