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.
Builds on #631 but ensures that the balance tracked in the main contract is proper even if the transfer submessage (to the cw20 contract) fails, eg hits gas limit or other issue.
I am still struggling a bit with this atomic rollback in the contract. The official wasmd 0.44/0.45 upgrade CosmWasm/wasmd#717 handles this properly using ibcv2 and ensuring that not catching the error properly rolls back all state and returning an application-level error. But not sure how Juno is handling that currentlyWent back to optimistic write to local state on
ibc_packet_receive
and then catch the reply_errors on that one and revert the tally of how much balance can be returned