EIP-712 messages

Miscellaneous

evmos.eip712.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'}], 'TypeTimeoutHeight': [{'name': 'revisionNumber', 'type': 'uint64'}, {'name': 'revisionHeight', 'type': 'uint64'}], 'TypeToken': [{'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}]}

Types for IBC message.

evmos.eip712.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.

evmos.eip712.MSG_VOTE_TYPES: Final = {'MsgValue': [{'name': 'proposal_id', 'type': 'uint64'}, {'name': 'voter', 'type': 'string'}, {'name': 'option', 'type': 'int32'}]}

Types for voting message.

evmos.eip712.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[source]

Create IBC (inter-blockchain) message transfer.

evmos.eip712.create_msg_send(amount: str, denom: str, from_address: str, to_address: str) MsgInterface[source]

Create message for sending.

evmos.eip712.create_msg_vote(proposal_id: int, option: int, sender: str) MsgInterface[source]

Create voting (governmental) message.

class evmos.eip712.base.Domain(name: str, version: str, chainId: int, verifyingContract: str, salt: str)[source]

Bases: object

This describes domain field of EIPToSign.

chainId: int

Chain ID.

name: str

Domain name.

salt: str

Used salt (usually '0').

verifyingContract: str

Verifying contract address.

version: str

Version (usually 1.0.0).

class evmos.eip712.base.EIPToSign(types: dict[str, Any], primaryType: str, domain: Domain, message: dict[str, Any])[source]

Bases: object

EIP message to sign.

domain: Domain

Domain.

message: dict[str, Any]

Message to sign itself, mapping.

primaryType: str

Type name of message attribute.

types: dict[str, Any]

Message types for ABI encoding, mapping name to type.

class evmos.eip712.base.MsgInterface[source]

Bases: TypedDict

Validator editing message.

type: str

Type for ABI encoding.

value: Any

Message itself.

class evmos.eip712.base.MsgWithValidatorInterface[source]

Bases: TypedDict

Validator editing message.

type: str

Type for ABI encoding.

value: WithValidator

Message itself.

class evmos.eip712.base.WithValidator[source]

Bases: TypedDict

TypedDict with string validator_address field.

validator_address: str

Validator address.

evmos.eip712.base.create_eip712(types: dict[str, Any], chain_id: int, message: dict[str, Any]) EIPToSign[source]

Create EIP712 data.

evmos.eip712.base.generate_fee(amount: str, denom: str, gas: str, fee_payer: str) dict[str, Any][source]

Generate fee definition structure.

evmos.eip712.base.generate_message(account_number: str, sequence: str, chain_cosmos_id: str, memo: str, fee: dict[str, Any], msg: Mapping[str, Any]) dict[str, Any][source]

Create a message with one transaction included.

evmos.eip712.base.generate_message_with_multiple_transactions(account_number: str, sequence: str, chain_cosmos_id: str, memo: str, fee: dict[str, Any], msgs: Sequence[Mapping[str, Any]]) dict[str, Any][source]

Create a message with multiple transactions included.

evmos.eip712.base.generate_types(msg_values: dict[str, Any]) dict[str, Any][source]

Generate EIP-712 types.

ERC20

evmos.eip712.erc20.MSG_CONVERT_COIN_TYPES: Final = {'MsgValue': [{'name': 'coin', 'type': 'TypeCoin'}, {'name': 'receiver', 'type': 'string'}, {'name': 'sender', 'type': 'string'}], 'TypeCoin': [{'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}]}

Types for message for coin types conversion.

evmos.eip712.erc20.MSG_CONVERT_ERC20_TYPES: Final = {'MsgValue': [{'name': 'contract_address', 'type': 'string'}, {'name': 'amount', 'type': 'string'}, {'name': 'receiver', 'type': 'string'}, {'name': 'sender', 'type': 'string'}]}

Types for message for ERC20 types conversion.

evmos.eip712.erc20.create_msg_convert_coin(denom: str | int, amount: str | int, receiver: str, sender: str) MsgInterface[source]

Create message for coin types conversion.

evmos.eip712.erc20.create_msg_convert_erc20(contract_address: str, amount: str, receiver: str, sender: str) MsgInterface[source]

Create message for ERC20 types conversion.

Revenue

evmos.eip712.revenue.MSG_CANCEL_REVENUE_TYPES: Final = {'MsgValue': [{'name': 'contract_address', 'type': 'string'}, {'name': 'deployer_address', 'type': 'string'}]}

Types for message for revenue cancellation.

evmos.eip712.revenue.MSG_REGISTER_REVENUE_TYPES: Final = {'MsgValue': [{'name': 'contract_address', 'type': 'string'}, {'name': 'deployer_address', 'type': 'string'}, {'name': 'withdrawer_address', 'type': 'string'}, {'name': 'nonces', 'type': 'uint64[]'}]}

Types for message for revenue registration.

evmos.eip712.revenue.MSG_UPDATE_REVENUE_TYPES: Final = {'MsgValue': [{'name': 'contract_address', 'type': 'string'}, {'name': 'deployer_address', 'type': 'string'}, {'name': 'withdrawer_address', 'type': 'string'}]}

Types for message for revenue update.

evmos.eip712.revenue.create_msg_cancel_revenue(contract_address: str, deployer_address: str) MsgInterface[source]

Create message for revenue cancellation.

evmos.eip712.revenue.create_msg_register_revenue(contract_address: str, deployer_address: str, withdrawer_address: str, nonces: Sequence[int]) MsgInterface[source]

Create message for revenue registration.

evmos.eip712.revenue.create_msg_update_revenue(contract_address: str, deployer_address: str, withdrawer_address: str) MsgInterface[source]

Create message for revenue update.

Staking

evmos.eip712.staking.MSG_BEGIN_REDELEGATE_TYPES: Final = {'MsgValue': [{'name': 'delegator_address', 'type': 'string'}, {'name': 'validator_src_address', 'type': 'string'}, {'name': 'validator_dst_address', 'type': 'string'}, {'name': 'amount', 'type': 'TypeAmount'}], 'TypeAmount': [{'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}]}

Types for redelegation beginning message.

evmos.eip712.staking.MSG_DELEGATE_TYPES: Final = {'MsgValue': [{'name': 'delegator_address', 'type': 'string'}, {'name': 'validator_address', 'type': 'string'}, {'name': 'amount', 'type': 'TypeAmount'}], 'TypeAmount': [{'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}]}

Types for delegation message.

evmos.eip712.staking.MSG_SET_WITHDRAW_ADDRESS_TYPES: Final = {'MsgValue': [{'name': 'delegator_address', 'type': 'string'}, {'name': 'withdraw_address', 'type': 'string'}]}

Types for validator withdrawal address setting message.

evmos.eip712.staking.MSG_UNDELEGATE_TYPES: Final = {'MsgValue': [{'name': 'delegator_address', 'type': 'string'}, {'name': 'validator_address', 'type': 'string'}, {'name': 'amount', 'type': 'TypeAmount'}], 'TypeAmount': [{'name': 'denom', 'type': 'string'}, {'name': 'amount', 'type': 'string'}]}

Types for delegation cancellation message.

evmos.eip712.staking.MSG_WITHDRAW_DELEGATOR_REWARD_TYPES: Final = {'MsgValue': [{'name': 'delegator_address', 'type': 'string'}, {'name': 'validator_address', 'type': 'string'}]}

Types for delegation reward withdrawal message.

evmos.eip712.staking.MSG_WITHDRAW_VALIDATOR_COMMISSION_TYPES: Final = {'MsgValue': [{'name': 'validator_address', 'type': 'string'}]}

Types for validator commission withdrawal message.

evmos.eip712.staking.create_msg_begin_redelegate(delegator_address: str, validator_src_address: str, validator_dst_address: str, amount: str, denom: str) MsgInterface[source]

Create redelegation beginning message.

evmos.eip712.staking.create_msg_delegate(delegator_address: str, validator_address: str, amount: str, denom: str) MsgInterface[source]

Create delegation message.

evmos.eip712.staking.create_msg_set_withdraw_address(delegator_address: str, withdraw_address: str) MsgInterface[source]

Create validator withdrawal address setting message.

evmos.eip712.staking.create_msg_undelegate(delegator_address: str, validator_address: str, amount: str, denom: str) MsgInterface[source]

Create delegation cancellation message.

evmos.eip712.staking.create_msg_withdraw_delegator_reward(delegator_address: str, validator_address: str) MsgInterface[source]

Create delegation reward withdrawal message.

evmos.eip712.staking.create_msg_withdraw_validator_commission(validator_address: str) MsgWithValidatorInterface[source]

Create validator commission withdrawal message.

Validators

evmos.eip712.validator.MSG_EDIT_VALIDATOR_TYPES: Final = {'MsgValue': [{'name': 'description', 'type': 'TypeDescription'}, {'name': 'validator_address', 'type': 'string'}, {'name': 'commission_rate', 'type': 'string'}, {'name': 'min_self_delegation', 'type': 'string'}], 'TypeDescription': [{'name': 'moniker', 'type': 'string'}, {'name': 'identity', 'type': 'string'}, {'name': 'website', 'type': 'string'}, {'name': 'security_contact', 'type': 'string'}, {'name': 'details', 'type': 'string'}]}

Types for validator editing message.

evmos.eip712.validator.create_msg_edit_validator(*, moniker: str | None, identity: str | None, website: str | None, security_contact: str | None, details: str | None, validator_address: str, commission_rate: Optional[Union[int, str]] = None, min_self_delegation: Optional[Union[int, str]] = None) MsgInterface[source]

Create validator editing message.