Skip to content

Commit

Permalink
refactor(x/gov)!: Use KVStoreService, context.Context, return errors,…
Browse files Browse the repository at this point in the history
… better iterators (cosmos#15988)

Co-authored-by: Julien Robert <julien@rbrt.fr>
  • Loading branch information
2 people authored and rllola committed May 11, 2023
1 parent fb445e5 commit e874ad9
Show file tree
Hide file tree
Showing 48 changed files with 952 additions and 585 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ Ref: https://keepachangelog.com/en/1.0.0/

### API Breaking Changes

* (x/gov) [#15988](https://github.com/cosmos/cosmos-sdk/issues/15988) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context` and return an `error` (instead of panicking or returning a `found bool`). Iterators callback functions now return an error instead of a `bool`.
* (x/auth) [#15985](https://github.com/cosmos/cosmos-sdk/pull/15985) The `AccountKeeper` does not expose the `QueryServer` and `MsgServer` APIs anymore.
* (x/authz) [#15962](https://github.com/cosmos/cosmos-sdk/issues/15962) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. The `Authorization` interface's `Accept` method now takes a `context.Context` instead of a `sdk.Context`.
* (x/distribution) [#15948](https://github.com/cosmos/cosmos-sdk/issues/15948) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. Keeper methods also now return an `error`.
Expand Down
2 changes: 2 additions & 0 deletions UPGRADING.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ The following modules `NewKeeper` function now take a `KVStoreService` instead o
* `x/consensus`
* `x/distribution`
* `x/feegrant`
* `x/gov`
* `x/nft`

User manually wiring their chain need to use the `runtime.NewKVStoreService` method to create a `KVStoreService` from a `StoreKey`:
Expand All @@ -97,6 +98,7 @@ The following modules' `Keeper` methods now take in a `context.Context` instead
* `x/authz`
* `x/bank`
* `x/distribution`
* `x/gov`

**Users using depinject do not need any changes, this is automatically done for them.**

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ require (
cosmossdk.io/collections v0.1.0
cosmossdk.io/core v0.6.1
cosmossdk.io/depinject v1.0.0-alpha.3
cosmossdk.io/errors v1.0.0-beta.7
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4
cosmossdk.io/log v1.1.0
cosmossdk.io/math v1.0.0
cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ cosmossdk.io/collections v0.1.0 h1:nzJGeiq32KnZroSrhB6rPifw4I85Cgmzw/YAmr4luv8=
cosmossdk.io/collections v0.1.0/go.mod h1:xbauc0YsbUF8qKMVeBZl0pFCunxBIhKN/WlxpZ3lBuo=
cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw=
cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU=
cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w=
cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4 h1:rOy7iw7HlwKc5Af5qIHLXdBx/F98o6du/I/WGwOW6eA=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4/go.mod h1:AwrAxbvuH9FdatzJX463kMYNMVkjujWU/xR+HsimWTw=
cosmossdk.io/log v1.1.0 h1:v0ogPHYeTzPcBTcPR1A3j1hkei4pZama8kz8LKlCMv0=
cosmossdk.io/log v1.1.0/go.mod h1:6zjroETlcDs+mm62gd8Ig7mZ+N+fVOZS91V17H+M4N4=
cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw=
Expand Down
2 changes: 1 addition & 1 deletion simapp/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ func NewSimApp(
govConfig.MaxMetadataLen = 10000
*/
govKeeper := govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper,
appCodec, runtime.NewKVStoreService(keys[govtypes.StoreKey]), app.AccountKeeper, app.BankKeeper,
app.StakingKeeper, app.DistrKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)

Expand Down
2 changes: 1 addition & 1 deletion simapp/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ require (
cloud.google.com/go/iam v0.13.0 // indirect
cloud.google.com/go/storage v1.30.0 // indirect
cosmossdk.io/collections v0.1.0 // indirect
cosmossdk.io/errors v1.0.0-beta.7 // indirect
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4 // indirect
cosmossdk.io/x/tx v0.6.1 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
Expand Down
4 changes: 2 additions & 2 deletions simapp/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,8 @@ cosmossdk.io/collections v0.1.0 h1:nzJGeiq32KnZroSrhB6rPifw4I85Cgmzw/YAmr4luv8=
cosmossdk.io/collections v0.1.0/go.mod h1:xbauc0YsbUF8qKMVeBZl0pFCunxBIhKN/WlxpZ3lBuo=
cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw=
cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU=
cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w=
cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4 h1:rOy7iw7HlwKc5Af5qIHLXdBx/F98o6du/I/WGwOW6eA=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4/go.mod h1:AwrAxbvuH9FdatzJX463kMYNMVkjujWU/xR+HsimWTw=
cosmossdk.io/log v1.1.0 h1:v0ogPHYeTzPcBTcPR1A3j1hkei4pZama8kz8LKlCMv0=
cosmossdk.io/log v1.1.0/go.mod h1:6zjroETlcDs+mm62gd8Ig7mZ+N+fVOZS91V17H+M4N4=
cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw=
Expand Down
2 changes: 1 addition & 1 deletion tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ require (
cosmossdk.io/api v0.4.1
cosmossdk.io/core v0.6.2-0.20230323161322-ccd8d40119e4
cosmossdk.io/depinject v1.0.0-alpha.3
cosmossdk.io/errors v1.0.0-beta.7
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4
cosmossdk.io/log v1.1.0
cosmossdk.io/math v1.0.0
cosmossdk.io/simapp v0.0.0-20230309163709-87da587416ba
Expand Down
4 changes: 2 additions & 2 deletions tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@ cosmossdk.io/collections v0.1.0 h1:nzJGeiq32KnZroSrhB6rPifw4I85Cgmzw/YAmr4luv8=
cosmossdk.io/collections v0.1.0/go.mod h1:xbauc0YsbUF8qKMVeBZl0pFCunxBIhKN/WlxpZ3lBuo=
cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw=
cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU=
cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w=
cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4 h1:rOy7iw7HlwKc5Af5qIHLXdBx/F98o6du/I/WGwOW6eA=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4/go.mod h1:AwrAxbvuH9FdatzJX463kMYNMVkjujWU/xR+HsimWTw=
cosmossdk.io/log v1.1.0 h1:v0ogPHYeTzPcBTcPR1A3j1hkei4pZama8kz8LKlCMv0=
cosmossdk.io/log v1.1.0/go.mod h1:6zjroETlcDs+mm62gd8Ig7mZ+N+fVOZS91V17H+M4N4=
cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw=
Expand Down
38 changes: 21 additions & 17 deletions tests/integration/gov/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,15 @@ func TestImportExportQueues(t *testing.T) {
assert.NilError(t, err)
proposalID2 := proposal2.Id

votingStarted, err := s1.GovKeeper.AddDeposit(ctx, proposalID2, addrs[0], s1.GovKeeper.GetParams(ctx).MinDeposit)
params, _ := s1.GovKeeper.GetParams(ctx)
votingStarted, err := s1.GovKeeper.AddDeposit(ctx, proposalID2, addrs[0], params.MinDeposit)
assert.NilError(t, err)
assert.Assert(t, votingStarted)

proposal1, ok := s1.GovKeeper.GetProposal(ctx, proposalID1)
assert.Assert(t, ok)
proposal2, ok = s1.GovKeeper.GetProposal(ctx, proposalID2)
assert.Assert(t, ok)
proposal1, err = s1.GovKeeper.GetProposal(ctx, proposalID1)
assert.NilError(t, err)
proposal2, err = s1.GovKeeper.GetProposal(ctx, proposalID2)
assert.NilError(t, err)
assert.Assert(t, proposal1.Status == v1.StatusDepositPeriod)
assert.Assert(t, proposal2.Status == v1.StatusVotingPeriod)

Expand All @@ -105,7 +106,7 @@ func TestImportExportQueues(t *testing.T) {
distributionGenState := s1.DistrKeeper.ExportGenesis(ctx)

// export the state and import it into a new app
govGenState := gov.ExportGenesis(ctx, s1.GovKeeper)
govGenState, _ := gov.ExportGenesis(ctx, s1.GovKeeper)
genesisState := s1.appBuilder.DefaultGenesis()

genesisState[authtypes.ModuleName] = s1.cdc.MustMarshalJSON(authGenState)
Expand Down Expand Up @@ -144,27 +145,30 @@ func TestImportExportQueues(t *testing.T) {

ctx2 := s2.app.BaseApp.NewContext(false, cmtproto.Header{})

params, err = s2.GovKeeper.GetParams(ctx2)
assert.NilError(t, err)
// Jump the time forward past the DepositPeriod and VotingPeriod
ctx2 = ctx2.WithBlockTime(ctx2.BlockHeader().Time.Add(*s2.GovKeeper.GetParams(ctx2).MaxDepositPeriod).Add(*s2.GovKeeper.GetParams(ctx2).VotingPeriod))
ctx2 = ctx2.WithBlockTime(ctx2.BlockHeader().Time.Add(*params.MaxDepositPeriod).Add(*params.VotingPeriod))

// Make sure that they are still in the DepositPeriod and VotingPeriod respectively
proposal1, ok = s2.GovKeeper.GetProposal(ctx2, proposalID1)
assert.Assert(t, ok)
proposal2, ok = s2.GovKeeper.GetProposal(ctx2, proposalID2)
assert.Assert(t, ok)
proposal1, err = s2.GovKeeper.GetProposal(ctx2, proposalID1)
assert.NilError(t, err)
proposal2, err = s2.GovKeeper.GetProposal(ctx2, proposalID2)
assert.NilError(t, err)
assert.Assert(t, proposal1.Status == v1.StatusDepositPeriod)
assert.Assert(t, proposal2.Status == v1.StatusVotingPeriod)

macc := s2.GovKeeper.GetGovernanceAccount(ctx2)
assert.DeepEqual(t, sdk.Coins(s2.GovKeeper.GetParams(ctx2).MinDeposit), s2.BankKeeper.GetAllBalances(ctx2, macc.GetAddress()))
assert.DeepEqual(t, sdk.Coins(params.MinDeposit), s2.BankKeeper.GetAllBalances(ctx2, macc.GetAddress()))

// Run the endblocker. Check to make sure that proposal1 is removed from state, and proposal2 is finished VotingPeriod.
gov.EndBlocker(ctx2, s2.GovKeeper)
err = gov.EndBlocker(ctx2, s2.GovKeeper)
assert.NilError(t, err)

proposal1, ok = s2.GovKeeper.GetProposal(ctx2, proposalID1)
assert.Assert(t, ok == false)
proposal1, err = s2.GovKeeper.GetProposal(ctx2, proposalID1)
assert.ErrorContains(t, err, "proposal 1 doesn't exist")

proposal2, ok = s2.GovKeeper.GetProposal(ctx2, proposalID2)
assert.Assert(t, ok)
proposal2, err = s2.GovKeeper.GetProposal(ctx2, proposalID2)
assert.NilError(t, err)
assert.Assert(t, proposal2.Status == v1.StatusRejected)
}
30 changes: 15 additions & 15 deletions tests/integration/gov/keeper/tally_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func TestTallyNoOneVotes(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -57,7 +57,7 @@ func TestTallyNoQuorum(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, _ := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, _, _ := app.GovKeeper.Tally(ctx, proposal)
assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
}
Expand All @@ -83,7 +83,7 @@ func TestTallyOnlyValidatorsAllYes(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes)
assert.Assert(t, burnDeposits == false)
Expand All @@ -110,7 +110,7 @@ func TestTallyOnlyValidators51No(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, _ := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, _, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand All @@ -136,7 +136,7 @@ func TestTallyOnlyValidators51Yes(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -164,7 +164,7 @@ func TestTallyOnlyValidatorsVetoed(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits)
Expand Down Expand Up @@ -192,7 +192,7 @@ func TestTallyOnlyValidatorsAbstainPasses(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -220,7 +220,7 @@ func TestTallyOnlyValidatorsAbstainFails(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -248,7 +248,7 @@ func TestTallyOnlyValidatorsNonVoter(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -286,7 +286,7 @@ func TestTallyDelgatorOverride(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -323,7 +323,7 @@ func TestTallyDelgatorInherit(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -365,7 +365,7 @@ func TestTallyDelgatorMultipleOverride(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -408,7 +408,7 @@ func TestTallyDelgatorMultipleInherit(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes == false)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -453,7 +453,7 @@ func TestTallyJailedValidator(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes)
assert.Assert(t, burnDeposits == false)
Expand Down Expand Up @@ -488,7 +488,7 @@ func TestTallyValidatorMultipleDelegations(t *testing.T) {

proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
assert.Assert(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
passes, burnDeposits, tallyResults, _ := app.GovKeeper.Tally(ctx, proposal)

assert.Assert(t, passes)
assert.Assert(t, burnDeposits == false)
Expand Down
2 changes: 1 addition & 1 deletion tools/rosetta/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ require (
cosmossdk.io/collections v0.1.0 // indirect
cosmossdk.io/core v0.6.1 // indirect
cosmossdk.io/depinject v1.0.0-alpha.3 // indirect
cosmossdk.io/errors v1.0.0-beta.7 // indirect
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4 // indirect
cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc // indirect
cosmossdk.io/x/tx v0.6.1 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions tools/rosetta/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ cosmossdk.io/collections v0.1.0 h1:nzJGeiq32KnZroSrhB6rPifw4I85Cgmzw/YAmr4luv8=
cosmossdk.io/collections v0.1.0/go.mod h1:xbauc0YsbUF8qKMVeBZl0pFCunxBIhKN/WlxpZ3lBuo=
cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw=
cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU=
cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w=
cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4 h1:rOy7iw7HlwKc5Af5qIHLXdBx/F98o6du/I/WGwOW6eA=
cosmossdk.io/errors v1.0.0-beta.7.0.20230429155654-3ee8242364e4/go.mod h1:AwrAxbvuH9FdatzJX463kMYNMVkjujWU/xR+HsimWTw=
cosmossdk.io/log v1.1.0 h1:v0ogPHYeTzPcBTcPR1A3j1hkei4pZama8kz8LKlCMv0=
cosmossdk.io/log v1.1.0/go.mod h1:6zjroETlcDs+mm62gd8Ig7mZ+N+fVOZS91V17H+M4N4=
cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw=
Expand Down
Loading

0 comments on commit e874ad9

Please sign in to comment.