cosmos-sdk/x/auth/keeper
Amaury 9898ac5e9d
fix: Make module queries deterministic (#11644)
## Description

The Juno halt was caused by a smart contract calling a SDK's gRPC query that was not deterministic (at least that's my understanding).

As such, a fix was proposed on cosmwasm to whitelist only the gRPC queries that are deterministic. For example, gRPC queries that return node-specific config would not be whitelisted.

In my opinion, all module queries MUST be deterministic, since they can be part of the state machine. This PR will also help adr-033.

i made a quick audit of all `x/*` grpc_query.go, to make sure all of them were deterministic. The only non-determinism I found was in auth's ModuleAccount, but it's introduced in v0.46 and not released yet.



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2022-04-15 09:08:33 +00:00
..
account.go perf!: Add HasAccount to the AuthKeeper to save protobuf decoding time (#10022) 2021-08-31 05:07:31 +00:00
bech32_codec.go feat!: Add bech32 prefix to authkeeper (#9759) 2021-08-25 11:17:18 +00:00
grpc_query.go fix: Make module queries deterministic (#11644) 2022-04-15 09:08:33 +00:00
grpc_query_test.go fix: Make module queries deterministic (#11644) 2022-04-15 09:08:33 +00:00
integration_test.go refactor(test)!: refactor `simapp.Setup` function (#9938) 2021-08-17 00:52:06 +00:00
keeper.go refactor: Remove store type aliases (#10295) 2021-10-04 16:36:38 +00:00
keeper_bench_test.go refactor(test)!: refactor `simapp.Setup` function (#9938) 2021-08-17 00:52:06 +00:00
keeper_test.go feat!: Add bech32 prefix to authkeeper (#9759) 2021-08-25 11:17:18 +00:00
migrations.go refactor: Rename x/{mod}/legacy to x/{mod}/migrations (#9628) 2021-07-05 14:55:51 +00:00
params.go Merge PR #4760: update x/auth to match module spec 2019-07-29 08:27:01 -07:00
querier.go Change `address` from bytes to bech32 strings (#7242) 2020-09-25 10:25:37 +00:00
querier_test.go refactor(test)!: refactor `simapp.Setup` function (#9938) 2021-08-17 00:52:06 +00:00