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.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__ = [
    "IBC_MSG_TRANSFER_TYPES",
    "MSG_BEGIN_REDELEGATE_TYPES",
    "MSG_CONVERT_COIN_TYPES",
    "MSG_CONVERT_ERC20_TYPES",
    "MSG_DELEGATE_TYPES",
    "MSG_EDIT_VALIDATOR_TYPES",
    "MSG_SEND_TYPES",
    "MSG_SET_WITHDRAW_ADDRESS_TYPES",
    "MSG_UNDELEGATE_TYPES",
    "MSG_VOTE_TYPES",
    "MSG_WITHDRAW_DELEGATOR_REWARD_TYPES",
    "MSG_WITHDRAW_VALIDATOR_COMMISSION_TYPES",
    "Domain",
    "EIPToSign",
    "create_eip712",
    "create_ibc_msg_transfer",
    "create_msg_begin_redelegate",
    "create_msg_convert_coin",
    "create_msg_convert_erc20",
    "create_msg_delegate",
    "create_msg_edit_validator",
    "create_msg_send",
    "create_msg_set_withdraw_address",
    "create_msg_undelegate",
    "create_msg_vote",
    "create_msg_withdraw_delegator_reward",
    "create_msg_withdraw_validator_commission",
    "generate_fee",
    "generate_message",
    "generate_message_with_multiple_transactions",
    "generate_types",
]


# 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, }, }