feat!: Add bech32 prefix to authkeeper (#9759)

<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes **Step1** from #9690

<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

- Add auth keeper methods and gRPC queries:
  - the `NewAccountKeeper` should take a `string bech32Prefix` argument
  - ` auth AccountKeeper` implements `Codec` interface that contains 2 methods:  `ConvertAddressStringToBytes` and `ConvertAddressBytesToString` 
  - Add the 3 following gRPC queries:
    - Get bech32 prefix
    - `AddressStringToBytes` (converts `AccountAddr` string to `AccountAddr` bytes)
    - `AddressBytesToString` ( converts `AccountAddr` bytes to `AccountAddr` str)
  - Add the corresponding keeper methods
  - Add tests
---

### 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)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [x] 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)
This commit is contained in:
Andrei Ivasko
2021-08-25 11:17:18 +00:00
committed by GitHub
parent 147d798048
commit 59640fb858
16 changed files with 2080 additions and 357 deletions
+94
View File
@@ -17,6 +17,12 @@
- [PageResponse](#cosmos.base.query.v1beta1.PageResponse)
- [cosmos/auth/v1beta1/query.proto](#cosmos/auth/v1beta1/query.proto)
- [AddressBytesToStringRequest](#cosmos.auth.v1beta1.AddressBytesToStringRequest)
- [AddressBytesToStringResponse](#cosmos.auth.v1beta1.AddressBytesToStringResponse)
- [AddressStringToBytesRequest](#cosmos.auth.v1beta1.AddressStringToBytesRequest)
- [AddressStringToBytesResponse](#cosmos.auth.v1beta1.AddressStringToBytesResponse)
- [Bech32PrefixRequest](#cosmos.auth.v1beta1.Bech32PrefixRequest)
- [Bech32PrefixResponse](#cosmos.auth.v1beta1.Bech32PrefixResponse)
- [QueryAccountRequest](#cosmos.auth.v1beta1.QueryAccountRequest)
- [QueryAccountResponse](#cosmos.auth.v1beta1.QueryAccountResponse)
- [QueryAccountsRequest](#cosmos.auth.v1beta1.QueryAccountsRequest)
@@ -846,6 +852,91 @@ corresponding request message has used PageRequest.
<a name="cosmos.auth.v1beta1.AddressBytesToStringRequest"></a>
### AddressBytesToStringRequest
AddressBytesToStringRequest is the request type for AddressString rpc method
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `address_bytes` | [bytes](#bytes) | | |
<a name="cosmos.auth.v1beta1.AddressBytesToStringResponse"></a>
### AddressBytesToStringResponse
AddressBytesToStringResponse is the response type for AddressString rpc method
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `address_string` | [string](#string) | | |
<a name="cosmos.auth.v1beta1.AddressStringToBytesRequest"></a>
### AddressStringToBytesRequest
AddressStringToBytesRequest is the request type for AccountBytes rpc method
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `address_string` | [string](#string) | | |
<a name="cosmos.auth.v1beta1.AddressStringToBytesResponse"></a>
### AddressStringToBytesResponse
AddressStringToBytesResponse is the response type for AddressBytes rpc method
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `address_bytes` | [bytes](#bytes) | | |
<a name="cosmos.auth.v1beta1.Bech32PrefixRequest"></a>
### Bech32PrefixRequest
Bech32PrefixRequest is the request type for Bech32Prefix rpc method
<a name="cosmos.auth.v1beta1.Bech32PrefixResponse"></a>
### Bech32PrefixResponse
Bech32PrefixResponse is the response type for Bech32Prefix rpc method
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `bech32_prefix` | [string](#string) | | |
<a name="cosmos.auth.v1beta1.QueryAccountRequest"></a>
### QueryAccountRequest
@@ -974,6 +1065,9 @@ Query defines the gRPC querier service.
| `Account` | [QueryAccountRequest](#cosmos.auth.v1beta1.QueryAccountRequest) | [QueryAccountResponse](#cosmos.auth.v1beta1.QueryAccountResponse) | Account returns account details based on address. | GET|/cosmos/auth/v1beta1/accounts/{address}|
| `Params` | [QueryParamsRequest](#cosmos.auth.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#cosmos.auth.v1beta1.QueryParamsResponse) | Params queries all parameters. | GET|/cosmos/auth/v1beta1/params|
| `ModuleAccounts` | [QueryModuleAccountsRequest](#cosmos.auth.v1beta1.QueryModuleAccountsRequest) | [QueryModuleAccountsResponse](#cosmos.auth.v1beta1.QueryModuleAccountsResponse) | ModuleAccounts returns all the existing module accounts. | GET|/cosmos/auth/v1beta1/module_accounts|
| `Bech32Prefix` | [Bech32PrefixRequest](#cosmos.auth.v1beta1.Bech32PrefixRequest) | [Bech32PrefixResponse](#cosmos.auth.v1beta1.Bech32PrefixResponse) | Bech32 queries bech32Prefix | GET|/cosmos/auth/v1beta1/bech32|
| `AddressBytesToString` | [AddressBytesToStringRequest](#cosmos.auth.v1beta1.AddressBytesToStringRequest) | [AddressBytesToStringResponse](#cosmos.auth.v1beta1.AddressBytesToStringResponse) | AddressBytesToString converts Account Address bytes to string | GET|/cosmos/auth/v1beta1/bech32/{address_bytes}|
| `AddressStringToBytes` | [AddressStringToBytesRequest](#cosmos.auth.v1beta1.AddressStringToBytesRequest) | [AddressStringToBytesResponse](#cosmos.auth.v1beta1.AddressStringToBytesResponse) | AddressStringToBytes converts Address string to bytes | GET|/cosmos/auth/v1beta1/bech32/{address_string}|
<!-- end services -->