Source code for evmos.eip712

from __future__ import annotations

from typing import Final

from evmos.eip712.base import (
    Domain,
    EIPToSign,
    MsgInterface,
    create_eip712,
    generate_fee,
    generate_message,
    generate_message_with_multiple_transactions,
    generate_types,
)
from evmos.eip712.erc20 import (
    MSG_CONVERT_COIN_TYPES,
    MSG_CONVERT_ERC20_TYPES,
    create_msg_convert_coin,
    create_msg_convert_erc20,
)
from evmos.eip712.revenue import (
    MSG_CANCEL_REVENUE_TYPES,
    MSG_REGISTER_REVENUE_TYPES,
    MSG_UPDATE_REVENUE_TYPES,
    create_msg_cancel_revenue,
    create_msg_register_revenue,
    create_msg_update_revenue,
)
from evmos.eip712.staking import (
    MSG_BEGIN_REDELEGATE_TYPES,
    MSG_DELEGATE_TYPES,
    MSG_SET_WITHDRAW_ADDRESS_TYPES,
    MSG_UNDELEGATE_TYPES,
    MSG_WITHDRAW_DELEGATOR_REWARD_TYPES,
    MSG_WITHDRAW_VALIDATOR_COMMISSION_TYPES,
    create_msg_begin_redelegate,
    create_msg_delegate,
    create_msg_set_withdraw_address,
    create_msg_undelegate,
    create_msg_withdraw_delegator_reward,
    create_msg_withdraw_validator_commission,
)
from evmos.eip712.validator import MSG_EDIT_VALIDATOR_TYPES, create_msg_edit_validator

__all__ = [
    'create_eip712',
    'create_ibc_msg_transfer',
    'create_msg_begin_redelegate',
    'create_msg_cancel_revenue',
    'create_msg_convert_coin',
    'create_msg_convert_erc20',
    'MSG_CANCEL_REVENUE_TYPES',
    'create_msg_delegate',
    'create_msg_edit_validator',
    'create_msg_set_withdraw_address',
    'MSG_VOTE_TYPES',
    'create_msg_register_revenue',
    'create_msg_send',
    'create_msg_undelegate',
    'create_msg_update_revenue',
    'MSG_DELEGATE_TYPES',
    'create_msg_vote',
    'create_msg_withdraw_delegator_reward',
    'create_msg_withdraw_validator_commission',
    'generate_fee',
    'MSG_CONVERT_COIN_TYPES',
    'generate_message',
    'generate_message_with_multiple_transactions',
    'generate_types',
    'IBC_MSG_TRANSFER_TYPES',
    'MSG_BEGIN_REDELEGATE_TYPES',
    'MSG_CONVERT_ERC20_TYPES',
    'MSG_REGISTER_REVENUE_TYPES',
    'MSG_SEND_TYPES',
    'MSG_UNDELEGATE_TYPES',
    'MSG_UPDATE_REVENUE_TYPES',
    'MSG_WITHDRAW_DELEGATOR_REWARD_TYPES',
    'MSG_WITHDRAW_VALIDATOR_COMMISSION_TYPES',
    'MSG_EDIT_VALIDATOR_TYPES',
    'MSG_SET_WITHDRAW_ADDRESS_TYPES',
    'EIPToSign',
    'Domain',
]


# gov.ts
MSG_VOTE_TYPES: Final = {
    'MsgValue': [
        {'name': 'proposal_id', 'type': 'uint64'},
        {'name': 'voter', 'type': 'string'},
        {'name': 'option', 'type': 'int32'},
    ],
}
"""Types for voting message."""


[docs]def create_msg_vote(proposal_id: int, option: int, sender: str) -> MsgInterface: """Create voting (governmental) message.""" return { 'type': 'cosmos-sdk/MsgVote', 'value': { 'proposalId': proposal_id, 'voter': sender, 'option': option, }, }
# ibcMsgTransfer.ts IBC_MSG_TRANSFER_TYPES: Final = { 'MsgValue': [ {'name': 'sourcePort', 'type': 'string'}, {'name': 'sourceChannel', 'type': 'string'}, {'name': 'token', 'type': 'TypeToken'}, {'name': 'sender', 'type': 'string'}, {'name': 'receiver', 'type': 'string'}, {'name': 'timeoutHeight', 'type': 'TypeTimeoutHeight'}, {'name': 'timeoutTimestamp', 'type': 'uint64'}, ], 'TypeToken': [ {'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}, ], 'TypeTimeoutHeight': [ {'name': 'revisionNumber', 'type': 'uint64'}, {'name': 'revisionHeight', 'type': 'uint64'}, ], } """Types for IBC message."""
[docs]def create_ibc_msg_transfer( receiver: str, sender: str, source_channel: str, source_port: str, revision_height: int, revision_number: int, timeout_timestamp: str, amount: str, denom: str, ) -> MsgInterface: """Create IBC (inter-blockchain) message transfer. See Also: https://tutorials.cosmos.network/academy/4-ibc/what-is-ibc.html """ return { 'type': 'cosmos-sdk/MsgTransfer', 'value': { 'receiver': receiver, 'sender': sender, 'sourceChannel': source_channel, 'sourcePort': source_port, 'timeoutHeight': { 'revisionHeight': str(revision_height), 'revisionNumber': str(revision_number), }, 'timeoutTimestamp': timeout_timestamp, 'token': {'amount': amount, 'denom': denom}, }, }
# msgSend.ts MSG_SEND_TYPES: Final = { 'MsgValue': [ {'name': 'from_address', 'type': 'string'}, {'name': 'to_address', 'type': 'string'}, {'name': 'amount', 'type': 'TypeAmount[]'}, ], 'TypeAmount': [ {'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}, ], } """Types for message sending."""
[docs]def create_msg_send( amount: str, denom: str, from_address: str, to_address: str, ) -> MsgInterface: """Create message for sending.""" return { 'type': 'cosmos-sdk/MsgSend', 'value': { 'amount': [ {'amount': amount, 'denom': denom}, ], 'from_address': from_address, 'to_address': to_address, }, }