Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update ics29 to tip of main #716

Merged
merged 108 commits into from
Jan 12, 2022
Merged
Changes from 1 commit
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
f6eb414
Bump github.com/spf13/cast from 1.4.0 to 1.4.1 (#338)
dependabot[bot] Aug 23, 2021
f4a017e
Bump github.com/tendermint/tendermint from 0.34.11 to 0.34.12 (#341)
dependabot[bot] Aug 23, 2021
7b5a19f
fix broken links in integration.md (#340)
crodriguezvega Aug 23, 2021
e86cdbe
Created helper functions for emitting packet events (#343)
lukerhoads Aug 24, 2021
ae36ab5
Merge pull request from GHSA-qrhq-96mh-q8jv
colin-axner Aug 25, 2021
662f4dd
Bump codecov/codecov-action from 2.0.2 to 2.0.3 (#346)
dependabot[bot] Aug 26, 2021
950b92d
Bump actions/setup-go from 2.1.3 to 2.1.4 (#349)
dependabot[bot] Aug 26, 2021
358bfa5
increase port identifier limit to 128 characters (#344)
colin-axner Aug 26, 2021
9d5da17
update codeowners to include new team members and granular ownership …
colin-axner Aug 27, 2021
a6bf50d
bump SDK dependency (#367)
colin-axner Sep 2, 2021
74182d8
adding client status cli query (#372)
damiannolan Sep 3, 2021
90ce97e
adding markdown link checker to ci workflows (#377)
damiannolan Sep 6, 2021
760d15a
packet acknowledgment filtering (#375)
damiannolan Sep 7, 2021
a647546
Bump github.com/tendermint/tendermint from 0.34.12 to 0.34.13 (#386)
dependabot[bot] Sep 9, 2021
06c2d76
Change ICS 20 packet data amount to be string (#350)
colin-axner Sep 10, 2021
2fbe682
fix: ibc build docs (#361)
charleenfei Sep 13, 2021
85b4383
feat: scalable version queries (#384)
damiannolan Sep 13, 2021
7a6507b
Bump codecov/codecov-action from 2.0.3 to 2.1.0 (#399)
dependabot[bot] Sep 13, 2021
83315a9
bump go package to v2 (#400)
colin-axner Sep 16, 2021
29d4455
Add migration docs template and updates migration doc for 1.0 to 2.0 …
colin-axner Sep 16, 2021
9e39349
add releases.md file (#408)
crodriguezvega Sep 17, 2021
f705142
fix broken links (#415)
crodriguezvega Sep 17, 2021
2d3181b
chore: update changelog (#422)
crodriguezvega Sep 20, 2021
4f63be0
Adds Generic Middleware helper functions (#383)
AdityaSripal Sep 21, 2021
37eac69
Bump github.com/spf13/viper from 1.8.1 to 1.9.0 (#427)
dependabot[bot] Sep 22, 2021
46a1224
update releases decision tree (#429)
crodriguezvega Sep 22, 2021
a19d1ec
refactor: making IsBound a public function (#425)
seantking Sep 22, 2021
6e56b04
feat: Reusability of Mock module for middleware integration tests (#432)
colin-axner Sep 27, 2021
50d5542
bump SDK v0.44.0 -> v0.44.1 (#455)
colin-axner Sep 30, 2021
e518dac
docs: add steps to revive expired client with governance proposal (#438)
crodriguezvega Oct 4, 2021
cea013a
resize and center the decision tree picture (#469)
crodriguezvega Oct 6, 2021
4479e9c
bump versions in migration guide (#470)
ValarDragon Oct 7, 2021
7384cc9
Add go relayer to list of relayers to be supported (#442)
jackzampolin Oct 8, 2021
6e1a0c1
Update README with docs website (#460)
colin-axner Oct 8, 2021
f4fd265
deps: bump SDK version to `v0.44.2` (#485)
colin-axner Oct 12, 2021
60ca492
deps: bump Go to 1.17 (#404)
fedekunze Oct 12, 2021
e2f351b
Bump google.golang.org/grpc from 1.40.0 to 1.41.0 (#445)
dependabot[bot] Oct 12, 2021
488ad2c
doc: a light client is associated with only one chain (#476)
crodriguezvega Oct 13, 2021
235393b
Bump github.com/tendermint/tendermint from 0.34.13 to 0.34.14 (#489)
dependabot[bot] Oct 15, 2021
ae4ba89
Middleware Developer and Integration Guide (#477)
AdityaSripal Oct 15, 2021
71f929b
Bump github.com/armon/go-metrics from 0.3.9 to 0.3.10 (#501)
dependabot[bot] Oct 25, 2021
3b025bd
deps: bump cosmos-sdk `v0.44.3` (#503)
fedekunze Nov 1, 2021
c0553a8
docs: add middleware child to navigation (#513)
crodriguezvega Nov 1, 2021
ef61608
update changelog (#505)
crodriguezvega Nov 2, 2021
662c547
fix broken link (#515)
crodriguezvega Nov 2, 2021
50cda08
update-client should expect 2 args (#500)
allthatjazzleo Nov 2, 2021
ab65e17
chore: split testing/mock ibcmodule (#516)
damiannolan Nov 2, 2021
1f88b3c
chore: split transfer AppModule/IBCModule (#517)
damiannolan Nov 3, 2021
8cf3d1c
Bump google.golang.org/grpc from 1.41.0 to 1.42.0 (#519)
dependabot[bot] Nov 3, 2021
823ef67
update changelog (#532)
crodriguezvega Nov 9, 2021
e437be6
docs: apply IBC capitalization standards and add simple desc (#543)
Nov 17, 2021
147d985
refactor: GetSelfConsensusState return error instead of bool (#536)
technicallyty Nov 18, 2021
9477b16
docs: editorial love for IBC overview (#544)
Nov 22, 2021
f1d2cce
Bump actions/cache from 2.1.6 to 2.1.7 (#556)
dependabot[bot] Nov 24, 2021
145b5a4
Bump github.com/cosmos/cosmos-sdk from 0.44.3 to 0.44.4 (#567)
dependabot[bot] Nov 30, 2021
172ff88
use local clock time as reference time for timeout timestamp if later…
crodriguezvega Dec 2, 2021
ed06af4
proto: fix for reflection (#583)
tac0turtle Dec 3, 2021
33e7a4b
bump SDK version to v0.44.5 (#589)
colin-axner Dec 3, 2021
812452d
docs: add documentation for NegotiateAppVersion in apps.md (#555)
crodriguezvega Dec 6, 2021
bfbd64b
docs: add v2.0.0 to docs site (#593)
crodriguezvega Dec 6, 2021
cad7b02
fix: emit channel event instead of connection (#603)
seantking Dec 7, 2021
b89e03b
Feature: Interchain accounts v1 (#380)
seantking Dec 7, 2021
ce8b564
update changelog (#602)
crodriguezvega Dec 8, 2021
d618e13
chore: add changelog for ICA (#604)
seantking Dec 8, 2021
7a0fedd
bump go package to v3 (#605)
colin-axner Dec 8, 2021
9b7237e
fix: move changelog entries to unreleased section (#608)
seantking Dec 9, 2021
a09f978
chore: rename types.proto -> packet.proto for alignment (#612)
damiannolan Dec 9, 2021
24e512f
remove unnecessary AccountKeeper field in controller submodule of int…
colin-axner Dec 10, 2021
3b38056
add app.go integration docs for interchain accounts (#619)
colin-axner Dec 13, 2021
01560bd
fix: correctly propagate sdk.Result events to the current ctx (#624)
damiannolan Dec 14, 2021
2995354
docs: adding interchain accounts params docs (#625)
damiannolan Dec 15, 2021
c0277d2
docs: add migrations from v1 to v2 and from v2 to v3 in docs site (#623)
crodriguezvega Dec 15, 2021
c4fdbae
remove proof spec from ClientState interface (#629)
colin-axner Dec 15, 2021
b194949
build(deps): bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#628)
dependabot[bot] Dec 15, 2021
adff2ce
build(deps): bump github.com/spf13/viper from 1.10.0 to 1.10.1 (#638)
dependabot[bot] Dec 15, 2021
4f4e7f0
docs: add clear definition of IBC at top of readme now that Vega upgr…
Dec 15, 2021
2273ef3
build(deps): bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (#637)
dependabot[bot] Dec 16, 2021
7cadfae
docs: add roadmap (#558)
crodriguezvega Dec 20, 2021
b7fb146
remove CounterpartyHops function, add GetChannelConnection (#644)
colin-axner Dec 20, 2021
a8ebc3f
docs: developing ica auth module (#633)
colin-axner Dec 20, 2021
e3036e3
update changelog (#645)
crodriguezvega Dec 20, 2021
8c2c0a5
reorganize channel handshake handler (#647)
colin-axner Dec 21, 2021
c060673
docs: ICA Overview (#626)
seantking Dec 21, 2021
92f8bb3
update go mod for security vulnerabilities (#655)
colin-axner Dec 22, 2021
a5fadc5
update vue dependency (#662)
colin-axner Dec 22, 2021
25d4544
bump glob-parent version in json package (#663)
colin-axner Dec 22, 2021
ce4c81e
build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)
dependabot[bot] Dec 22, 2021
b7fb4f1
docs: begin removal of internal "spec" directories (#634)
colin-axner Dec 22, 2021
411c440
Modify `OnChanOpenTry` application callback to perform app version ne…
colin-axner Dec 22, 2021
297df13
fix broken link (#664)
colin-axner Dec 22, 2021
ffc29d9
chore: update make build-docs, add docs build checker (#667)
colin-axner Dec 23, 2021
ce71056
register ICA query server, fix panics in params query cli (#666)
colin-axner Dec 23, 2021
f849588
update of roadmap with latest release (#653)
crodriguezvega Dec 23, 2021
4523ef5
build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)
dependabot[bot] Dec 23, 2021
e40cdec
allow ics20 to connect to middleware (#675)
colin-axner Jan 3, 2022
1bfa055
fix: register InterchainAccount as x/auth GenesisAccount (#676)
damiannolan Jan 3, 2022
4575650
enable mergify for backports (#678)
crodriguezvega Jan 4, 2022
c351015
build(deps): bump technote-space/get-diff-action from 5 to 6.0.1 (#684)
dependabot[bot] Jan 6, 2022
67cd1a2
update roadmap (#681)
crodriguezvega Jan 6, 2022
3ff0927
ADR 002: importing multiple ibc-go versions (#683)
colin-axner Jan 7, 2022
087bc5d
improve 04-channel logging (#692)
colin-axner Jan 7, 2022
cb9bf5d
add cli to get denom hash from trace path and base denom (#679)
nir1218 Jan 10, 2022
f5962c3
chore: separate import statements by type (#702)
crodriguezvega Jan 10, 2022
57679db
adding ICS 27 Interchain Accounts to README.md supported apps (#708)
damiannolan Jan 11, 2022
53b2f67
Merge branch 'main' of github.com:cosmos/ibc-go into ics29-fee-middle…
colin-axner Jan 12, 2022
e0cc81a
update imports to v3
colin-axner Jan 12, 2022
120fd76
regenerate proto files
colin-axner Jan 12, 2022
0fbc6bb
fix build
colin-axner Jan 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add cli to get denom hash from trace path and base denom (#679)
* get denom hash from denom trace

* revert .gitignore

* final revert

* ignore history files

* Update modules/apps/transfer/client/cli/query.go

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update modules/apps/transfer/keeper/grpc_query.go

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update modules/apps/transfer/keeper/keeper.go

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* Update modules/apps/transfer/keeper/grpc_query.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* code review feedback integration

* moved new feature  to unreleased section

* fix duplicate block in success test case

* fix CHANGELOG format

* fix invalid trace path argument error handling

* refactor positive test case code

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
3 people authored Jan 10, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit cb9bf5dbb283e5e0eb0c29ee658968019bf58f49
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -52,3 +52,6 @@ dependency-graph.png
*.aux
*.out
*.synctex.gz

*.history

1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -63,6 +63,7 @@ Ref: https://keepachangelog.com/en/1.0.0/

* [\#432](https://github.com/cosmos/ibc-go/pull/432) Introduce `MockIBCApp` struct to the mock module. Allows the mock module to be reused to perform custom logic on each IBC App interface function. This might be useful when testing out IBC applications written as middleware.
* [\#380](https://github.com/cosmos/ibc-go/pull/380) Adding the Interchain Accounts module v1
* [\#679](https://github.com/cosmos/ibc-go/pull/679) New CLI command `query ibc-transfer denom-hash <denom trace>` to get the denom hash for a denom trace; this might be useful for debug

### Bug Fixes

66 changes: 66 additions & 0 deletions docs/client/swagger-ui/swagger.yaml
Original file line number Diff line number Diff line change
@@ -4,6 +4,54 @@ info:
description: A REST interface for state queries
version: 1.0.0
paths:
'/ibc/apps/transfer/v1/denom_hashes/{trace}':
get:
summary: DenomHash queries a denomination hash information.
operationId: DenomHash
responses:
'200':
description: A successful response.
schema:
type: object
properties:
hash:
type: string
description: hash (in hex format) of the denomination trace information.
description: >-
QueryDenomHashResponse is the response type for the
Query/DenomHash RPC

method.
default:
description: An unexpected error response
schema:
type: object
properties:
error:
type: string
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
type: object
properties:
type_url:
type: string
value:
type: string
format: byte
parameters:
- name: trace
description: 'The denomination trace ([port_id]/[channel_id])+/[denom]'
in: path
required: true
type: string
tags:
- Query
/ibc/apps/transfer/v1/denom_traces:
get:
summary: DenomTraces queries all denomination traces.
@@ -7326,6 +7374,15 @@ paths:
required: false
type: boolean
format: boolean
- name: packet_commitment_sequences
description: list of packet sequences.
in: query
required: false
type: array
items:
type: string
format: uint64
collectionFormat: multi
tags:
- Query
'/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_acks/{sequence}':
@@ -9839,6 +9896,15 @@ definitions:
SendEnabled

parameter for the denomination to false.
ibc.applications.transfer.v1.QueryDenomHashResponse:
type: object
properties:
hash:
type: string
description: hash (in hex format) of the denomination trace information.
description: |-
QueryDenomHashResponse is the response type for the Query/DenomHash RPC
method.
ibc.applications.transfer.v1.QueryDenomTraceResponse:
type: object
properties:
35 changes: 35 additions & 0 deletions docs/ibc/proto-docs.md
Original file line number Diff line number Diff line change
@@ -28,6 +28,8 @@
- [GenesisState](#ibc.applications.transfer.v1.GenesisState)

- [ibc/applications/transfer/v1/query.proto](#ibc/applications/transfer/v1/query.proto)
- [QueryDenomHashRequest](#ibc.applications.transfer.v1.QueryDenomHashRequest)
- [QueryDenomHashResponse](#ibc.applications.transfer.v1.QueryDenomHashResponse)
- [QueryDenomTraceRequest](#ibc.applications.transfer.v1.QueryDenomTraceRequest)
- [QueryDenomTraceResponse](#ibc.applications.transfer.v1.QueryDenomTraceResponse)
- [QueryDenomTracesRequest](#ibc.applications.transfer.v1.QueryDenomTracesRequest)
@@ -549,6 +551,38 @@ GenesisState defines the ibc-transfer genesis state



<a name="ibc.applications.transfer.v1.QueryDenomHashRequest"></a>

### QueryDenomHashRequest
QueryDenomHashRequest is the request type for the Query/DenomHash RPC
method


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `trace` | [string](#string) | | The denomination trace ([port_id]/[channel_id])+/[denom] |






<a name="ibc.applications.transfer.v1.QueryDenomHashResponse"></a>

### QueryDenomHashResponse
QueryDenomHashResponse is the response type for the Query/DenomHash RPC
method.


| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `hash` | [string](#string) | | hash (in hex format) of the denomination trace information. |






<a name="ibc.applications.transfer.v1.QueryDenomTraceRequest"></a>

### QueryDenomTraceRequest
@@ -655,6 +689,7 @@ Query provides defines the gRPC querier service.
| `DenomTrace` | [QueryDenomTraceRequest](#ibc.applications.transfer.v1.QueryDenomTraceRequest) | [QueryDenomTraceResponse](#ibc.applications.transfer.v1.QueryDenomTraceResponse) | DenomTrace queries a denomination trace information. | GET|/ibc/apps/transfer/v1/denom_traces/{hash}|
| `DenomTraces` | [QueryDenomTracesRequest](#ibc.applications.transfer.v1.QueryDenomTracesRequest) | [QueryDenomTracesResponse](#ibc.applications.transfer.v1.QueryDenomTracesResponse) | DenomTraces queries all denomination traces. | GET|/ibc/apps/transfer/v1/denom_traces|
| `Params` | [QueryParamsRequest](#ibc.applications.transfer.v1.QueryParamsRequest) | [QueryParamsResponse](#ibc.applications.transfer.v1.QueryParamsResponse) | Params queries all parameters of the ibc-transfer module. | GET|/ibc/apps/transfer/v1/params|
| `DenomHash` | [QueryDenomHashRequest](#ibc.applications.transfer.v1.QueryDenomHashRequest) | [QueryDenomHashResponse](#ibc.applications.transfer.v1.QueryDenomHashResponse) | DenomHash queries a denomination hash information. | GET|/ibc/apps/transfer/v1/denom_hashes/{trace}|

<!-- end services -->

1 change: 1 addition & 0 deletions modules/apps/transfer/client/cli/cli.go
Original file line number Diff line number Diff line change
@@ -20,6 +20,7 @@ func GetQueryCmd() *cobra.Command {
GetCmdQueryDenomTraces(),
GetCmdParams(),
GetCmdQueryEscrowAddress(),
GetCmdQueryDenomHash(),
)

return queryCmd
32 changes: 32 additions & 0 deletions modules/apps/transfer/client/cli/query.go
Original file line number Diff line number Diff line change
@@ -135,3 +135,35 @@ func GetCmdQueryEscrowAddress() *cobra.Command {

return cmd
}

// GetCmdQueryDenomHash defines the command to query a denomination hash from a given trace.
func GetCmdQueryDenomHash() *cobra.Command {
cmd := &cobra.Command{
Use: "denom-hash [trace]",
Short: "Query the denom hash info from a given denom trace",
Long: "Query the denom hash info from a given denom trace",
Example: fmt.Sprintf("%s query ibc-transfer denom-hash [denom_trace]", version.AppName),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)

req := &types.QueryDenomHashRequest{
Trace: args[0],
}

res, err := queryClient.DenomHash(cmd.Context(), req)
if err != nil {
return err
}

return clientCtx.PrintProto(res)
},
}

flags.AddQueryFlagsToCmd(cmd)
return cmd
}
27 changes: 27 additions & 0 deletions modules/apps/transfer/keeper/grpc_query.go
Original file line number Diff line number Diff line change
@@ -81,3 +81,30 @@ func (q Keeper) Params(c context.Context, _ *types.QueryParamsRequest) (*types.Q
Params: &params,
}, nil
}

// DenomHash implements the Query/DenomHash gRPC method
func (q Keeper) DenomHash(c context.Context, req *types.QueryDenomHashRequest) (*types.QueryDenomHashResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "empty request")
}

// Convert given request trace path to DenomTrace struct to confirm the path in a valid denom trace format
denomTrace := types.ParseDenomTrace(req.Trace)
if err := denomTrace.Validate(); err != nil {
return nil, status.Error(codes.InvalidArgument, err.Error())
}

ctx := sdk.UnwrapSDKContext(c)
denomHash := denomTrace.Hash()
found := q.HasDenomTrace(ctx, denomHash)
if !found {
return nil, status.Error(
codes.NotFound,
sdkerrors.Wrap(types.ErrTraceNotFound, req.Trace).Error(),
)
}

return &types.QueryDenomHashResponse{
Hash: denomHash.String(),
}, nil
}
67 changes: 67 additions & 0 deletions modules/apps/transfer/keeper/grpc_query_test.go
Original file line number Diff line number Diff line change
@@ -140,3 +140,70 @@ func (suite *KeeperTestSuite) TestQueryParams() {
res, _ := suite.queryClient.Params(ctx, &types.QueryParamsRequest{})
suite.Require().Equal(&expParams, res.Params)
}

func (suite *KeeperTestSuite) TestQueryDenomHash() {

reqTrace := types.DenomTrace{
Path: "transfer/channelToA/transfer/channelToB",
BaseDenom: "uatom",
}

var (
req *types.QueryDenomHashRequest
expHash = reqTrace.Hash().String()
)

testCases := []struct {
msg string
malleate func()
expPass bool
}{
{
"invalid trace",
func() {
req = &types.QueryDenomHashRequest{
Trace: "transfer/channelToA/transfer/",
}
},
false,
},
{
"not found denom trace",
func() {
req = &types.QueryDenomHashRequest{
Trace: "transfer/channelToC/uatom",
}
},
false,
},
{
"success",
func() {},
true,
},
}

for _, tc := range testCases {
suite.Run(fmt.Sprintf("Case %s", tc.msg), func() {
suite.SetupTest() // reset

req = &types.QueryDenomHashRequest{
Trace: reqTrace.GetFullDenomPath(),
}
suite.chainA.GetSimApp().TransferKeeper.SetDenomTrace(suite.chainA.GetContext(), reqTrace)

tc.malleate()
ctx := sdk.WrapSDKContext(suite.chainA.GetContext())

res, err := suite.queryClient.DenomHash(ctx, req)

if tc.expPass {
suite.Require().NoError(err)
suite.Require().NotNil(res)
suite.Require().Equal(expHash, res.Hash)
} else {
suite.Require().Error(err)
}
})
}
}
458 changes: 423 additions & 35 deletions modules/apps/transfer/types/query.pb.go

Large diffs are not rendered by default.

98 changes: 98 additions & 0 deletions modules/apps/transfer/types/query.pb.gw.go
19 changes: 19 additions & 0 deletions proto/ibc/applications/transfer/v1/query.proto
Original file line number Diff line number Diff line change
@@ -25,6 +25,11 @@ service Query {
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
option (google.api.http).get = "/ibc/apps/transfer/v1/params";
}

// DenomHash queries a denomination hash information.
rpc DenomHash(QueryDenomHashRequest) returns (QueryDenomHashResponse) {
option (google.api.http).get = "/ibc/apps/transfer/v1/denom_hashes/{trace}";
}
}

// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC
@@ -65,3 +70,17 @@ message QueryParamsResponse {
// params defines the parameters of the module.
Params params = 1;
}

// QueryDenomHashRequest is the request type for the Query/DenomHash RPC
// method
message QueryDenomHashRequest {
// The denomination trace ([port_id]/[channel_id])+/[denom]
string trace = 1;
}

// QueryDenomHashResponse is the response type for the Query/DenomHash RPC
// method.
message QueryDenomHashResponse {
// hash (in hex format) of the denomination trace information.
string hash = 1;
}