
from cosmos_proto import cosmos_pb2 as _cosmos_pb2
from gogoproto import gogo_pb2 as _gogo_pb2
from google.protobuf import any_pb2 as _any_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor

class BaseAccount(_message.Message):
    __slots__ = ['account_number', 'address', 'pub_key', 'sequence']
    ACCOUNT_NUMBER_FIELD_NUMBER: _ClassVar[int]
    ADDRESS_FIELD_NUMBER: _ClassVar[int]
    PUB_KEY_FIELD_NUMBER: _ClassVar[int]
    SEQUENCE_FIELD_NUMBER: _ClassVar[int]
    account_number: int
    address: str
    pub_key: _any_pb2.Any
    sequence: int

    def __init__(self, address: _Optional[str]=..., pub_key: _Optional[_Union[(_any_pb2.Any, _Mapping)]]=..., account_number: _Optional[int]=..., sequence: _Optional[int]=...) -> None:
        ...

class ModuleAccount(_message.Message):
    __slots__ = ['base_account', 'name', 'permissions']
    BASE_ACCOUNT_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
    base_account: BaseAccount
    name: str
    permissions: _containers.RepeatedScalarFieldContainer[str]

    def __init__(self, base_account: _Optional[_Union[(BaseAccount, _Mapping)]]=..., name: _Optional[str]=..., permissions: _Optional[_Iterable[str]]=...) -> None:
        ...

class Params(_message.Message):
    __slots__ = ['max_memo_characters', 'sig_verify_cost_ed25519', 'sig_verify_cost_secp256k1', 'tx_sig_limit', 'tx_size_cost_per_byte']
    MAX_MEMO_CHARACTERS_FIELD_NUMBER: _ClassVar[int]
    SIG_VERIFY_COST_ED25519_FIELD_NUMBER: _ClassVar[int]
    SIG_VERIFY_COST_SECP256K1_FIELD_NUMBER: _ClassVar[int]
    TX_SIG_LIMIT_FIELD_NUMBER: _ClassVar[int]
    TX_SIZE_COST_PER_BYTE_FIELD_NUMBER: _ClassVar[int]
    max_memo_characters: int
    sig_verify_cost_ed25519: int
    sig_verify_cost_secp256k1: int
    tx_sig_limit: int
    tx_size_cost_per_byte: int

    def __init__(self, max_memo_characters: _Optional[int]=..., tx_sig_limit: _Optional[int]=..., tx_size_cost_per_byte: _Optional[int]=..., sig_verify_cost_ed25519: _Optional[int]=..., sig_verify_cost_secp256k1: _Optional[int]=...) -> None:
        ...
