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  }