"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class Params(google.protobuf.message.Message):
    """Params defines the parameters for the oracle module."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    VOTE_PERIOD_FIELD_NUMBER: builtins.int
    VOTE_THRESHOLD_FIELD_NUMBER: builtins.int
    REWARD_BAND_FIELD_NUMBER: builtins.int
    REWARD_DISTRIBUTION_WINDOW_FIELD_NUMBER: builtins.int
    WHITELIST_FIELD_NUMBER: builtins.int
    SLASH_FRACTION_FIELD_NUMBER: builtins.int
    SLASH_WINDOW_FIELD_NUMBER: builtins.int
    MIN_VALID_PER_WINDOW_FIELD_NUMBER: builtins.int
    vote_period: builtins.int
    vote_threshold: typing.Text
    reward_band: typing.Text
    reward_distribution_window: builtins.int
    @property
    def whitelist(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Pair]: ...
    slash_fraction: typing.Text
    slash_window: builtins.int
    min_valid_per_window: typing.Text
    def __init__(self,
        *,
        vote_period: builtins.int = ...,
        vote_threshold: typing.Text = ...,
        reward_band: typing.Text = ...,
        reward_distribution_window: builtins.int = ...,
        whitelist: typing.Optional[typing.Iterable[global___Pair]] = ...,
        slash_fraction: typing.Text = ...,
        slash_window: builtins.int = ...,
        min_valid_per_window: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["min_valid_per_window",b"min_valid_per_window","reward_band",b"reward_band","reward_distribution_window",b"reward_distribution_window","slash_fraction",b"slash_fraction","slash_window",b"slash_window","vote_period",b"vote_period","vote_threshold",b"vote_threshold","whitelist",b"whitelist"]) -> None: ...
global___Params = Params

class Pair(google.protobuf.message.Message):
    """Pair is the object that holds configuration of each pair."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NAME_FIELD_NUMBER: builtins.int
    TOBIN_TAX_FIELD_NUMBER: builtins.int
    name: typing.Text
    tobin_tax: typing.Text
    def __init__(self,
        *,
        name: typing.Text = ...,
        tobin_tax: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name",b"name","tobin_tax",b"tobin_tax"]) -> None: ...
global___Pair = Pair

class AggregateExchangeRatePrevote(google.protobuf.message.Message):
    """struct for aggregate prevoting on the ExchangeRateVote.
    The purpose of aggregate prevote is to hide vote exchange rates with hash
    which is formatted as hex string in SHA256("{salt}:({pair},{exchange_rate})|...,({pair},{exchange_rate}):{voter}")
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HASH_FIELD_NUMBER: builtins.int
    VOTER_FIELD_NUMBER: builtins.int
    SUBMIT_BLOCK_FIELD_NUMBER: builtins.int
    hash: typing.Text
    voter: typing.Text
    submit_block: builtins.int
    def __init__(self,
        *,
        hash: typing.Text = ...,
        voter: typing.Text = ...,
        submit_block: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["hash",b"hash","submit_block",b"submit_block","voter",b"voter"]) -> None: ...
global___AggregateExchangeRatePrevote = AggregateExchangeRatePrevote

class AggregateExchangeRateVote(google.protobuf.message.Message):
    """MsgAggregateExchangeRateVote - struct for voting on
    the exchange rates different assets.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EXCHANGE_RATE_TUPLES_FIELD_NUMBER: builtins.int
    VOTER_FIELD_NUMBER: builtins.int
    @property
    def exchange_rate_tuples(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExchangeRateTuple]: ...
    voter: typing.Text
    def __init__(self,
        *,
        exchange_rate_tuples: typing.Optional[typing.Iterable[global___ExchangeRateTuple]] = ...,
        voter: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exchange_rate_tuples",b"exchange_rate_tuples","voter",b"voter"]) -> None: ...
global___AggregateExchangeRateVote = AggregateExchangeRateVote

class ExchangeRateTuple(google.protobuf.message.Message):
    """ExchangeRateTuple - struct to store interpreted exchange rates data to store"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    PAIR_FIELD_NUMBER: builtins.int
    EXCHANGE_RATE_FIELD_NUMBER: builtins.int
    pair: typing.Text
    exchange_rate: typing.Text
    def __init__(self,
        *,
        pair: typing.Text = ...,
        exchange_rate: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exchange_rate",b"exchange_rate","pair",b"pair"]) -> None: ...
global___ExchangeRateTuple = ExchangeRateTuple
