fix: add routing for sdk messages for staking/distribution and simulate #399
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.
1. Overview
When adding LSM forked version for default staking and distribution packages, the original SDK messages are not handled and their routing was impossible on the current testnet. The following messages were affected:
From staking:
cosmos.staking.v1beta1.MsgCreateValidator
cosmos.staking.v1beta1.MsgEditValidator
cosmos.staking.v1beta1.MsgDelegate
cosmos.staking.v1beta1.MsgBeginRedelegate
cosmos.staking.v1beta1.MsgUndelegate
cosmos.staking.v1beta1.MsgCancelUnbondingDelegation
cosmos.staking.v1beta1.MsgUnbondValidator
From distribution:
cosmos.distribution.v1beta1.MsgSetWithdrawAddress
cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward
cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission
cosmos.distribution.v1beta1.MsgFundCommunityPool
2. Implementation details
This PR adds a thin wrapper around MsgServer that routes all "legacy" messages into the new handler, i.e.
cosmos.staking.*
gets routed aslsnative.staking.*
.It also adds a parallel suite of simulation operations into integration tests to simulate interaction using clients that send usual
cosmos.staking.*
andcosmos.distribution.*
messages - e.g. Keplr3. How to test/use
Clone the repo, then:
Without fixes to routing and a wrapper, the simulation tests would fail with errors like this: