github.com/okex/exchain@v1.8.0/libs/ibc-go/proto/ibc/core/commitment/v1/commitment.proto (about) 1 syntax = "proto3"; 2 3 package ibc.core.commitment.v1; 4 5 option go_package = "github.com/cosmos/ibc-go/v2/modules/core/23-commitment/types"; 6 7 import "gogoproto/gogo.proto"; 8 import "proofs.proto"; 9 10 // MerkleRoot defines a merkle root hash. 11 // In the Cosmos SDK, the AppHash of a block header becomes the root. 12 message MerkleRoot { 13 option (gogoproto.goproto_getters) = false; 14 15 bytes hash = 1; 16 } 17 18 // MerklePrefix is merkle path prefixed to the key. 19 // The constructed key from the Path and the key will be append(Path.KeyPath, 20 // append(Path.KeyPrefix, key...)) 21 message MerklePrefix { 22 bytes key_prefix = 1 [(gogoproto.moretags) = "yaml:\"key_prefix\""]; 23 } 24 25 // MerklePath is the path used to verify commitment proofs, which can be an 26 // arbitrary structured object (defined by a commitment type). 27 // MerklePath is represented from root-to-leaf 28 message MerklePath { 29 option (gogoproto.goproto_stringer) = false; 30 31 repeated string key_path = 1 [(gogoproto.moretags) = "yaml:\"key_path\""]; 32 } 33 34 // MerkleProof is a wrapper type over a chain of CommitmentProofs. 35 // It demonstrates membership or non-membership for an element or set of 36 // elements, verifiable in conjunction with a known commitment root. Proofs 37 // should be succinct. 38 // MerkleProofs are ordered from leaf-to-root 39 message MerkleProof { 40 repeated ics23.CommitmentProof proofs = 1; 41 }