# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: ibc/lightclients/solomachine/v2/solomachine.proto
# plugin: python-betterproto
# This file has been @generated
from dataclasses import dataclass
import betterproto
import betterproto.lib.google.protobuf as betterproto_lib_google_protobuf
from ....core.channel import v1 as ___core_channel_v1__
from ....core.connection import v1 as ___core_connection_v1__
[docs]
class DataType(betterproto.Enum):
"""
DataType defines the type of solo machine proof being created. This is done
to preserve uniqueness of different data sign byte encodings.
"""
DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0
"""Default State"""
DATA_TYPE_CLIENT_STATE = 1
"""Data type for client state verification"""
DATA_TYPE_CONSENSUS_STATE = 2
"""Data type for consensus state verification"""
DATA_TYPE_CONNECTION_STATE = 3
"""Data type for connection state verification"""
DATA_TYPE_CHANNEL_STATE = 4
"""Data type for channel state verification"""
DATA_TYPE_PACKET_COMMITMENT = 5
"""Data type for packet commitment verification"""
DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6
"""Data type for packet acknowledgement verification"""
DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7
"""Data type for packet receipt absence verification"""
DATA_TYPE_NEXT_SEQUENCE_RECV = 8
"""Data type for next sequence recv verification"""
DATA_TYPE_HEADER = 9
"""Data type for header verification"""
[docs]
@dataclass(eq=False, repr=False)
class ClientState(betterproto.Message):
"""
ClientState defines a solo machine client that tracks the current consensus
state and if the client is frozen.
"""
sequence: int = betterproto.uint64_field(1)
"""latest sequence of the client state"""
is_frozen: bool = betterproto.bool_field(2)
"""frozen sequence of the solo machine"""
consensus_state: "ConsensusState" = betterproto.message_field(3)
allow_update_after_proposal: bool = betterproto.bool_field(4)
"""
when set to true, will allow governance to update a solo machine client.
The client will be unfrozen if it is frozen.
"""
[docs]
@dataclass(eq=False, repr=False)
class ConsensusState(betterproto.Message):
"""
ConsensusState defines a solo machine consensus state. The sequence of a
consensus state is contained in the "height" key used in storing the
consensus state.
"""
public_key: "betterproto_lib_google_protobuf.Any" = betterproto.message_field(1)
"""public key of the solo machine"""
diversifier: str = betterproto.string_field(2)
"""
diversifier allows the same public key to be re-used across different solo
machine clients (potentially on different chains) without being considered
misbehaviour.
"""
timestamp: int = betterproto.uint64_field(3)
[docs]
@dataclass(eq=False, repr=False)
class Misbehaviour(betterproto.Message):
"""
Misbehaviour defines misbehaviour for a solo machine which consists
of a sequence and two signatures over different messages at that sequence.
"""
client_id: str = betterproto.string_field(1)
sequence: int = betterproto.uint64_field(2)
signature_one: "SignatureAndData" = betterproto.message_field(3)
signature_two: "SignatureAndData" = betterproto.message_field(4)
[docs]
@dataclass(eq=False, repr=False)
class SignatureAndData(betterproto.Message):
"""
SignatureAndData contains a signature and the data signed over to create that
signature.
"""
signature: bytes = betterproto.bytes_field(1)
data_type: "DataType" = betterproto.enum_field(2)
data: bytes = betterproto.bytes_field(3)
timestamp: int = betterproto.uint64_field(4)
[docs]
@dataclass(eq=False, repr=False)
class TimestampedSignatureData(betterproto.Message):
"""
TimestampedSignatureData contains the signature data and the timestamp of the
signature.
"""
signature_data: bytes = betterproto.bytes_field(1)
timestamp: int = betterproto.uint64_field(2)
[docs]
@dataclass(eq=False, repr=False)
class SignBytes(betterproto.Message):
"""SignBytes defines the signed bytes used for signature verification."""
sequence: int = betterproto.uint64_field(1)
timestamp: int = betterproto.uint64_field(2)
diversifier: str = betterproto.string_field(3)
data_type: "DataType" = betterproto.enum_field(4)
"""type of the data used"""
data: bytes = betterproto.bytes_field(5)
"""marshaled data"""
[docs]
@dataclass(eq=False, repr=False)
class ClientStateData(betterproto.Message):
"""ClientStateData returns the SignBytes data for client state verification."""
path: bytes = betterproto.bytes_field(1)
client_state: "betterproto_lib_google_protobuf.Any" = betterproto.message_field(2)
[docs]
@dataclass(eq=False, repr=False)
class ConsensusStateData(betterproto.Message):
"""
ConsensusStateData returns the SignBytes data for consensus state
verification.
"""
path: bytes = betterproto.bytes_field(1)
consensus_state: "betterproto_lib_google_protobuf.Any" = betterproto.message_field(
2
)
[docs]
@dataclass(eq=False, repr=False)
class ConnectionStateData(betterproto.Message):
"""
ConnectionStateData returns the SignBytes data for connection state
verification.
"""
path: bytes = betterproto.bytes_field(1)
connection: "___core_connection_v1__.ConnectionEnd" = betterproto.message_field(2)
[docs]
@dataclass(eq=False, repr=False)
class ChannelStateData(betterproto.Message):
"""
ChannelStateData returns the SignBytes data for channel state
verification.
"""
path: bytes = betterproto.bytes_field(1)
channel: "___core_channel_v1__.Channel" = betterproto.message_field(2)
[docs]
@dataclass(eq=False, repr=False)
class PacketCommitmentData(betterproto.Message):
"""
PacketCommitmentData returns the SignBytes data for packet commitment
verification.
"""
path: bytes = betterproto.bytes_field(1)
commitment: bytes = betterproto.bytes_field(2)
[docs]
@dataclass(eq=False, repr=False)
class PacketAcknowledgementData(betterproto.Message):
"""
PacketAcknowledgementData returns the SignBytes data for acknowledgement
verification.
"""
path: bytes = betterproto.bytes_field(1)
acknowledgement: bytes = betterproto.bytes_field(2)
[docs]
@dataclass(eq=False, repr=False)
class PacketReceiptAbsenceData(betterproto.Message):
"""
PacketReceiptAbsenceData returns the SignBytes data for
packet receipt absence verification.
"""
path: bytes = betterproto.bytes_field(1)
[docs]
@dataclass(eq=False, repr=False)
class NextSequenceRecvData(betterproto.Message):
"""
NextSequenceRecvData returns the SignBytes data for verification of the next
sequence to be received.
"""
path: bytes = betterproto.bytes_field(1)
next_seq_recv: int = betterproto.uint64_field(2)