syntax = "proto3"; package celestia.qgb.v1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "google/protobuf/timestamp.proto"; option go_package = "github.com/celestiaorg/celestia-app/x/qgb/types"; // BridgeValidator represents a validator's ETH address and its power message BridgeValidator { // Voting power of the validator. uint64 power = 1; // EVM address that will be used by the validator to sign messages. string evm_address = 2; } // Valset is the EVM Bridge Multsig Set, each qgb validator also // maintains an ETH key to sign messages, these are used to check signatures on // ETH because of the significant gas savings message Valset { option (cosmos_proto.implements_interface) = "AttestationRequestI"; // Universal nonce defined under: // https://github.com/celestiaorg/celestia-app/pull/464 uint64 nonce = 1; // List of BridgeValidator containing the current validator set. repeated BridgeValidator members = 2 [ (gogoproto.nullable) = false ]; // Current chain height uint64 height = 3; // Block time where this valset was created google.protobuf.Timestamp time = 4 [ (gogoproto.nullable) = false, (gogoproto.stdtime) = true ]; } // DataCommitment is the data commitment request message that will be signed // using orchestrators. // It does not contain a `commitment` field as this message will be created // inside the state machine and it doesn't make sense to ask tendermint for the // commitment there. // The range defined by begin_block and end_block is end exclusive. message DataCommitment { option (cosmos_proto.implements_interface) = "AttestationRequestI"; // Universal nonce defined under: // https://github.com/celestiaorg/celestia-app/pull/464 uint64 nonce = 1; // First block defining the ordered set of blocks used to create the // commitment. uint64 begin_block = 2; // End exclusive last block defining the ordered set of blocks used to create // the commitment. uint64 end_block = 3; // Block time where this data commitment was created google.protobuf.Timestamp time = 4 [ (gogoproto.nullable) = false, (gogoproto.stdtime) = true ]; }