package gravity.v1

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service Msg

msgs.proto:14

Msg defines the state transitions possible within gravity

service Query

query.proto:15

Query defines the gRPC querier service

message BatchExecutedEvent

msgs.proto:165

BatchExecutedEvent claims that a batch of BatchTxExecutedal operations on the bridge contract was executed successfully on ETH

message BatchTx

gravity.proto:50

BatchTx represents a batch of transactions going from Cosmos to Ethereum. Batch txs are are identified by a unique hash and the token contract that is shared by all the SendToEthereum

Used in: BatchTxResponse, BatchTxsResponse, UnsignedBatchTxsResponse

message BatchTxConfirmation

msgs.proto:93

BatchTxConfirmation is a signature on behalf of a validator for a BatchTx.

Used in: BatchTxConfirmationsResponse

message ContractCallExecutedEvent

msgs.proto:177

NOTE: bytes.HexBytes is supposed to "help" with json encoding/decoding investigate?

message ContractCallTx

gravity.proto:70

ContractCallTx represents an individual arbitrary logic call transaction from Cosmos to Ethereum.

Used in: ContractCallTxResponse, ContractCallTxsResponse, UnsignedContractCallTxsResponse

message ContractCallTxConfirmation

msgs.proto:85

ContractCallTxConfirmation is a signature on behalf of a validator for a ContractCallTx.

Used in: ContractCallTxConfirmationsResponse

message DelegateKeysSignMsg

msgs.proto:137

DelegateKeysSignMsg defines the message structure an operator is expected to sign when submitting a MsgDelegateKeys message. The resulting signature should populate the eth_signature field.

message ERC20DeployedEvent

msgs.proto:188

ERC20DeployedEvent is submitted when an ERC20 contract for a Cosmos SDK coin has been deployed on Ethereum.

message ERC20ToDenom

genesis.proto:121

This records the relationship between an ERC20 token and the denom of the corresponding Cosmos originated asset

Used in: GenesisState

message ERC20Token

gravity.proto:83

Used in: ContractCallTx, SendToEthereum

message EthereumEventVoteRecord

gravity.proto:15

EthereumEventVoteRecord is an event that is pending of confirmation by 2/3 of the signer set. The event is then attested and executed in the state machine once the required threshold is met.

Used in: GenesisState

message EthereumSigner

gravity.proto:31

EthereumSigner represents a cosmos validator with its corresponding bridge operator ethereum address and its staking consensus power.

Used in: SignerSetTx, SignerSetTxExecutedEvent

message GenesisState

genesis.proto:108

GenesisState struct TODO: this need to be audited and potentially simplified using the new interfaces

message IDSet

gravity.proto:91

message LatestEthereumBlockHeight

gravity.proto:24

LatestEthereumBlockHeight defines the latest observed ethereum block height and the corresponding timestamp value in nanoseconds.

message MsgDelegateKeys

msgs.proto:125

MsgDelegateKey allows validators to delegate their voting responsibilities to a given orchestrator address. This key is then used as an optional authentication method for attesting events from Ethereum.

Used as request type in: Msg.SetDelegateKeys

Used as field type in: DelegateKeysResponse, GenesisState

message Params

genesis.proto:72

Params represent the Gravity genesis and store parameters gravity_id: a random 32 byte value to prevent signature reuse, for example if the cosmos validators decided to use the same Ethereum keys for another chain also running Gravity we would not want it to be possible to play a deposit from chain A back on chain B's Gravity. This value IS USED ON ETHEREUM so it must be set in your genesis.json before launch and not changed after deploying Gravity contract_hash: the code hash of a known good version of the Gravity contract solidity code. This can be used to verify the correct version of the contract has been deployed. This is a reference value for goernance action only it is never read by any Gravity code bridge_ethereum_address: is address of the bridge contract on the Ethereum side, this is a reference value for governance only and is not actually used by any Gravity code bridge_chain_id: the unique identifier of the Ethereum chain, this is a reference value only and is not actually used by any Gravity code These reference values may be used by future Gravity client implemetnations to allow for saftey features or convenience features like the Gravity address in your relayer. A relayer would require a configured Gravity address if governance had not set the address on the chain it was relaying for. signed_signer_set_txs_window signed_batches_window signed_ethereum_signatures_window These values represent the time in blocks that a validator has to submit a signature for a batch or valset, or to submit a ethereum_signature for a particular attestation nonce. In the case of attestations this clock starts when the attestation is created, but only allows for slashing once the event has passed target_eth_tx_timeout: This is the 'target' value for when ethereum transactions time out, this is a target because Ethereum is a probabilistic chain and you can't say for sure what the block frequency is ahead of time. average_block_time average_ethereum_block_time These values are the average Cosmos block time and Ethereum block time respectively and they are used to compute what the target batch timeout is. It is important that governance updates these in case of any major, prolonged change in the time it takes to produce a block slash_fraction_signer_set_tx slash_fraction_batch slash_fraction_ethereum_signature slash_fraction_conflicting_ethereum_signature The slashing fractions for the various gravity related slashing conditions. The first three refer to not submitting a particular message, the third for submitting a different ethereum_signature for the same Ethereum event

Used in: GenesisState, ParamsResponse

message SendToCosmosEvent

msgs.proto:149

SendToCosmosEvent is submitted when the SendToCosmosEvent is emitted by they gravity contract. ERC20 representation coins are minted to the cosmosreceiver address.

message SendToEthereum

gravity.proto:60

SendToEthereum represents an individual SendToEthereum from Cosmos to Ethereum

Used in: BatchTx, BatchedSendToEthereumsResponse, GenesisState, UnbatchedSendToEthereumsResponse

message SignerSetTx

gravity.proto:40

SignerSetTx is the Ethereum Bridge multisig set that relays transactions the two chains. The staking validators keep ethereum keys which are used to check signatures on Ethereum in order to get significant gas savings.

Used in: SignerSetTxResponse, SignerSetTxsResponse, UnsignedSignerSetTxsResponse

message SignerSetTxConfirmation

msgs.proto:102

SignerSetTxConfirmation is a signature on behalf of a validator for a SignerSetTx

Used in: SignerSetTxConfirmationsResponse

message SignerSetTxExecutedEvent

msgs.proto:200

This informs the Cosmos module that a validator set has been updated.

message SignerSetTxResponse

query.proto:159

Used as response type in: Query.LatestSignerSetTx, Query.SignerSetTx