Referência de Mensagens de Transação CrossFi
Este guia abrangente descreve todos os campos possíveis para mensagens de transação suportadas pela CrossFi Chain. A plataforma integra múltiplos módulos do Cosmos SDK, Ethermint e implementações específicas da CrossFi.
Visão Geral
A CrossFi Chain suporta múltiplos tipos de mensagens de transação através de diferentes módulos:
- Cosmos Base: Operações fundamentais de moedas
- Módulos Cosmos SDK: Authz, Bank, Distribution, Gov, Feegrant, Staking, Slashing, Vesting
- Ethermint EVM: Transações compatíveis com Ethereum
- Módulos CrossFi: Funcionalidade nativa da CrossFi
Total de tipos de mensagens cobertos: 35+
Cada tipo de mensagem inclui:
- Descrições completas de parâmetros
- Tipos de campos e restrições
- Exemplos de uso
- Condições de falha
Índice
🏦 Módulos Principais
🏛️ Governança e Staking
🌐 Recursos Avançados
Cosmos Base
cosmos.base.v1beta1.Coin
A estrutura fundamental de moeda usada em todos os módulos para representar quantidades de tokens.
Parâmetro | Tipo | Descrição |
---|---|---|
denom | string | Denominação do token (ex. mpx , xfi ). Deve corresponder às denominações registradas. |
amount | string | Quantidade de tokens como string representando inteiro (ex. 1000000 ). Deve ser não-negativo. |
Contexto de Uso:
- Usado em
MsgSend
,MsgMultiSend
para transferências - Usado em
MsgDeposit
para depósitos de governança - Usado em operações de staking para quantidades de delegação
Exemplo:
{
"denom": "mpx",
"amount": "1000000"
}
Módulo Authz
O módulo de autorização permite que uma conta (concedente) autorize outra conta (beneficiário) a executar certas ações em seu nome.
cosmos.authz.v1beta1.MsgGrant
Concede autorização do concedente ao beneficiário para tipos específicos de mensagens.
Parâmetro | Tipo | Descrição |
---|---|---|
granter | string | Endereço da conta que concede permissão (ex. mx1x7... ). |
grantee | string | Endereço da conta que recebe permissão (ex. mx1y2... ). |
grant | cosmos.authz.v1beta1.Grant | Objeto grant contendo detalhes de autorização e expiração. |
Estrutura Grant:
Parâmetro | Tipo | Descrição |
---|---|---|
authorization | google.protobuf.Any | Tipo de autorização (GenericAuthorization, SendAuthorization, etc.). |
expiration | google.protobuf.Timestamp | Tempo de expiração opcional em formato UTC (ex. 2025-12-31T23:59:59Z ). |
Tipos de Autorização:
-
GenericAuthorization
- Fornece permissão ilimitada para o tipo de mensagem especificado
- msg: string - URL completa do tipo de mensagem (ex.
/cosmos.bank.v1beta1.MsgSend
)
-
SendAuthorization
- Permite ao beneficiário enviar moedas com limites de gastos
- spend_limit: repeated Coin - Máximas moedas que podem ser enviadas
- allow_list: repeated string - Lista opcional de endereços de destinatários permitidos
-
StakeAuthorization
- Permite operações de staking com restrições de validador
- validators: repeated string - Lista de endereços de validadores
- authorization_type: AuthorizationType - Tipo de ação de staking (DELEGATE, UNDELEGATE, REDELEGATE)
cosmos.authz.v1beta1.MsgRevoke
Revoga autorização previamente concedida para tipo específico de mensagem.
Parâmetro | Tipo | Descrição |
---|---|---|
granter | string | Endereço da conta que revoga permissão. |
grantee | string | Endereço da conta que perde permissão. |
msg_type_url | string | URL do tipo de mensagem a revogar (ex. /cosmos.bank.v1beta1.MsgSend ). |
cosmos.authz.v1beta1.MsgExec
Executa mensagens em nome do concedente usando autorizações concedidas.
Parâmetro | Tipo | Descrição |
---|---|---|
grantee | string | Endereço da conta que executa mensagens. |
msgs | repeated google.protobuf.Any | Lista de mensagens a executar (ex. MsgSend ). |
Módulo Bank
O módulo bank lida com transferências de tokens e gerenciamento de saldos.
cosmos.bank.v1beta1.MsgSend
Transfere moedas de um endereço para outro.
Parâmetro | Tipo | Descrição |
---|---|---|
from_address | string (cosmos.AddressString) | Endereço do remetente (ex. mx1x7... ). |
to_address | string (cosmos.AddressString) | Endereço do destinatário (ex. mx1y2... ). |
amount | repeated cosmos.base.v1beta1.Coin | Moedas a transferir. Não pode ser null. |
Exemplo:
{
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [{"denom": "mpx", "amount": "1000000"}]
}
Condições de Falha:
- Saldo insuficiente na conta do remetente
- Endereço do destinatário está na lista negra
- Denominação de moeda inválida
cosmos.bank.v1beta1.MsgMultiSend
Envia moedas de uma ou múltiplas entradas para múltiplas saídas.
Parâmetro | Tipo | Descrição |
---|---|---|
inputs | repeated Input | Fontes de entrada. Não pode ser null. |
outputs | repeated Output | Destinos de saída. |
Estrutura Input:
Parâmetro | Tipo | Descrição |
---|---|---|
address | string | Endereço do remetente. |
coins | repeated cosmos.base.v1beta1.Coin | Moedas a enviar. |
Estrutura Output:
Parâmetro | Tipo | Descrição |
---|---|---|
address | string | Endereço do destinatário. |
coins | repeated cosmos.base.v1beta1.Coin | Moedas a receber. |
Módulo Distribution
Gerencia a distribuição de recompensas entre validadores e delegadores.
cosmos.distribution.v1beta1.MsgFundCommunityPool
Financia o pool comunitário diretamente de uma conta.
Parâmetro | Tipo | Descrição |
---|---|---|
amount | repeated cosmos.base.v1beta1.Coin | Moedas a transferir para o pool comunitário. |
depositor | string | Endereço Bech32 que financia o pool (ex. mx1x7... ). |
cosmos.distribution.v1beta1.MsgSetWithdrawAddress
Define um endereço diferente para saques de recompensas.
Parâmetro | Tipo | Descrição |
---|---|---|
delegator_address | string | Endereço Bech32 do delegador definindo endereço de saque. |
withdraw_address | string | Endereço Bech32 onde as recompensas serão enviadas. Não pode ser endereço de módulo. |
cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward
Saca recompensas acumuladas de um validador específico.
Parâmetro | Tipo | Descrição |
---|---|---|
delegator_address | string | Endereço Bech32 do delegador sacando recompensas. |
validator_address | string | Endereço Bech32 do validador (ex. mxvaloper1z3... ). |
cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission
Permite ao validador sacar comissão acumulada.
Parâmetro | Tipo | Descrição |
---|---|---|
validator_address | string | Endereço Bech32 do validador (ex. mxvaloper1z3... ). |
Módulo Gov
O módulo de governança habilita propostas e votação on-chain.
cosmos.gov.v1.MsgDeposit
Deposita moedas em uma proposta para ajudá-la a alcançar o período de votação.
Parâmetro | Tipo | Descrição |
---|---|---|
proposal_id | uint64 | Identificador único da proposta. |
depositor | string | Endereço Bech32 fazendo depósito (ex. mx1x7... ). |
amount | repeated Coin | Quantidade do depósito. |
cosmos.gov.v1.MsgSubmitProposal
Cria uma nova proposta de governança.
Parâmetro | Tipo | Descrição |
---|---|---|
messages | repeated Any | Mensagens a executar se a proposta passar. |
initial_deposit | repeated Coin | Depósito inicial para a proposta. |
proposer | string | Endereço Bech32 do proponente (ex. mx1x7... ). |
metadata | string | Metadados opcionais para a proposta. |
title | string | Título da proposta. |
summary | string | Breve descrição da proposta. |
cosmos.gov.v1.MsgVote
Emite um voto em uma proposta.
Parâmetro | Tipo | Descrição |
---|---|---|
proposal_id | uint64 | Identificador da proposta. |
voter | string | Endereço Bech32 do eleitor (ex. mx1x7... ). |
option | VoteOption | Opção de voto: YES , ABSTAIN , NO , NO_WITH_VETO . |
metadata | string | Metadados opcionais do voto. |
cosmos.gov.v1.MsgVoteWeighted
Emite votos ponderados através de múltiplas opções.
Parâmetro | Tipo | Descrição |
---|---|---|
proposal_id | uint64 | Identificador da proposta. |
voter | string | Endereço Bech32 do eleitor. |
options | repeated WeightedVoteOption | Opções de voto com pesos. |
metadata | string | Metadados opcionais. |
WeightedVoteOption:
Parâmetro | Tipo | Descrição |
---|---|---|
option | VoteOption | Opção de voto. |
weight | string | Peso do voto como decimal (ex. "0.5"). A soma deve ser 1. |
Módulo Feegrant
Permite que contas paguem taxas de transação em nome de outros.
cosmos.feegrant.v1beta1.MsgGrantAllowance
Concede permissão de taxa do concedente ao beneficiário.
Parâmetro | Tipo | Descrição |
---|---|---|
granter | string | Endereço fornecendo permissão de taxa (ex. mx1x7... ). |
grantee | string | Endereço recebendo permissão de taxa (ex. mx1y2... ). |
allowance | google.protobuf.Any | Tipo de permissão de taxa (BasicAllowance, PeriodicAllowance). |
Tipos de Permissão:
-
BasicAllowance - Permissão simples com limite de gastos:
- spend_limit: repeated Coin - Quantidade máxima de taxa
- expiration: Timestamp - Tempo de expiração opcional
-
PeriodicAllowance - Permissão que reinicia periodicamente:
- basic: BasicAllowance - Permissão base
- period: Duration - Período de reinicialização
- period_spend_limit: repeated Coin - Limite por período
cosmos.feegrant.v1beta1.MsgRevokeAllowance
Revoga permissão de taxa previamente concedida.
Parâmetro | Tipo | Descrição |
---|---|---|
granter | string | Endereço revogando permissão (ex. mx1x7... ). |
grantee | string | Endereço perdendo permissão (ex. mx1y2... ). |
Módulo Staking
Implementa o mecanismo de consenso Proof-of-Stake.
cosmos.staking.v1beta1.MsgBeginRedelegate
Redelega tokens de um validador para outro.
Parâmetro | Tipo | Descrição |
---|---|---|
delegator_address | string | Endereço do delegador (ex. mx1x7... ). |
validator_src_address | string | Validador origem (ex. mxvaloper1y2... ). |
validator_dst_address | string | Validador destino (ex. mxvaloper1z3... ). |
amount | cosmos.base.v1beta1.Coin | Quantidade a redelegar. |
cosmos.staking.v1beta1.MsgCreateValidator
Cria um novo validador.
Parâmetro | Tipo | Descrição |
---|---|---|
description | cosmos.staking.v1beta1.Description | Descrição do validador. |
commission | cosmos.staking.v1beta1.CommissionRates | Taxas de comissão. |
min_self_delegation | string | Mínima auto-delegação em mpx . |
delegator_address | string | Delegador criando validador (ex. mx1x7... ). |
validator_address | string | Endereço do validador (ex. mxvaloper1y2... ). |
pubkey | google.protobuf.Any | Chave pública do validador. |
value | cosmos.base.v1beta1.Coin | Quantidade de stake inicial. |
Estrutura Description:
Parâmetro | Tipo | Descrição |
---|---|---|
moniker | string | Nome do validador. |
identity | string | Identidade opcional (ex. ID do Keybase). |
website | string | Website do validador. |
security_contact | string | Email de contato de segurança. |
details | string | Detalhes adicionais do validador. |
Estrutura CommissionRates:
Parâmetro | Tipo | Descrição |
---|---|---|
rate | string | Taxa de comissão atual (ex. "0.1" para 10%). |
max_rate | string | Taxa de comissão máxima (ex. "0.2"). |
max_change_rate | string | Mudança máxima diária de comissão (ex. "0.01"). |
cosmos.staking.v1beta1.MsgDelegate
Delega tokens a um validador.
Parâmetro | Tipo | Descrição |
---|---|---|
delegator_address | string | Endereço do delegador (ex. mx1x7... ). |
validator_address | string | Endereço do validador (ex. mxvaloper1y2... ). |
amount | cosmos.base.v1beta1.Coin | Quantidade a delegar. |
cosmos.staking.v1beta1.MsgEditValidator
Atualiza descrição e comissão do validador.
Parâmetro | Tipo | Descrição |
---|---|---|
description | cosmos.staking.v1beta1.Description | Descrição atualizada do validador. |
validator_address | string | Endereço do validador (ex. mxvaloper1y2... ). |
commission_rate | string | Nova taxa de comissão (opcional). |
min_self_delegation | string | Nova mínima auto-delegação (opcional). |
cosmos.staking.v1beta1.MsgUndelegate
Remove delegação de tokens de um validador.
Parâmetro | Tipo | Descrição |
---|---|---|
delegator_address | string | Endereço do delegador (ex. mx1x7... ). |
validator_address | string | Endereço do validador (ex. mxvaloper1y2... ). |
amount | cosmos.base.v1beta1.Coin | Quantidade a remover delegação. |
M ódulo Slashing
cosmos.slashing.v1beta1.MsgUnjail
Liberta um validador previamente preso.
Parâmetro | Tipo | Descrição |
---|---|---|
validator_addr | string | Endereço do validador a libertar. |
Requisitos:
- O validador deve existir e estar preso
- O período de prisão deve ter expirado
- O validador deve ter auto-delegação > 0
- O validador não deve estar marcado como tombstoned
Módulo Vesting
cosmos.vesting.v1beta1.MsgCreateVestingAccount
Cria uma conta vesting com tokens bloqueados.
Parâmetro | Tipo | Descrição |
---|---|---|
from_address | string | Endereço criando conta vesting. |
to_address | string | Novo endereço de conta vesting (não inicializada). |
amount | repeated cosmos.base.v1beta1.Coin | Tokens para vesting. |
end_time | int64 | Timestamp UNIX quando o vesting termina. |
delayed | bool | true=vesting atrasado, false=contínuo. |
Tipos de Vesting:
-
Vesting Atrasado - Todos os tokens desbloqueiam de uma vez quando
end_time
é alcançado:- Tokens permanecem completamente bloqueados até o tempo final
- Adequado para cenários de vesting cliff
- Mecanismo de desbloqueio simples
-
Vesting Contínuo - Tokens desbloqueiam linearmente do tempo de criação até
end_time
:- Liberação gradual de tokens ao longo do tempo
- Desbloqueio proporcional
- Adequado para vesting de funcionários
Módulo Ethermint EVM
Camada de compatibilidade da Máquina Virtual Ethereum.
ethermint.evm.v1.MsgEthereumTx
Encapsula transação Ethereum para execução Cosmos.
Parâmetro | Tipo | Descrição |
---|---|---|
data | google.protobuf.Any | Dados da transação (LegacyTx, AccessListTx, DynamicFeeTx). |
size | double | Tamanho da transação em cache (obsoleto). |
hash | string | Hash da transação em formato hex. |
from | string | Endereço do remetente em formato Ethereum. |
ethermint.evm.v1.LegacyTx
Formato de transação Ethereum legado (pré-EIP-1559).
Parâmetro | Tipo | Descrição |
---|---|---|
nonce | uint64 | Número de sequência da conta. |
gas_price | string | Preço do gas em wei como string. |
gas | uint64 | Limite de gas para transação. |
to | string | Endereço do destinatário (vazio para criação de contrato). |
value | string | Quantidade a transferir em wei. |
data | bytes | Dados da transação ou código do contrato. |
v | bytes | Parâmetro de recuperação da assinatura. |
r | bytes | Parâmetro de assinatura r. |
s | bytes | Parâmetro de assinatura s. |
ethermint.evm.v1.AccessListTx
Transação EIP-2930 com otimização de lista de acesso.
Parâmetro | Tipo | Descrição |
---|---|---|
chain_id | string | ID da cadeia Ethereum. |
nonce | uint64 | Número de sequência da conta. |
gas_price | string | Preço do gas em wei. |
gas | uint64 | Limite de gas. |
to | string | Endereço do destinatário. |
value | string | Quantidade de transferência em wei. |
data | bytes | Dados da transação. |
accesses | repeated AccessTuple | Lista de acesso para otimização de gas. |
v | bytes | Parâmetro de assinatura v. |
r | bytes | Parâmetro de assinatura r. |
s | bytes | Parâmetro de assinatura s. |
Estrutura AccessTuple:
Parâmetro | Tipo | Descrição |
---|---|---|
address | string | Endereço do contrato a acessar. |
storage_keys | repeated string | Chaves de armazenamento a acessar em formato hex. |
ethermint.evm.v1.DynamicFeeTx
Transação EIP-1559 com taxas dinâmicas.
Parâmetro | Tipo | Descrição |
---|---|---|
chain_id | string | ID da cadeia Ethereum. |
nonce | uint64 | Número de sequência da conta. |
gas_tip_cap | string | Taxa de prioridade máxima por gas em wei. |
gas_fee_cap | string | Taxa máxima por gas em wei. |
gas | uint64 | Limite de gas. |
to | string | Endereço do destinatário. |
value | string | Quantidade de transferência em wei. |
data | bytes | Dados da transação. |
accesses | repeated AccessTuple | Lista de acesso. |
v | bytes | Parâmetro de assinatura v. |
r | bytes | Parâmetro de assinatura r. |
s | bytes | Parâmetro de assinatura s. |
Módulos CrossFi
Funcionalidade específica da CrossFi.
crossfi.erc20.v1.MsgConvertCoin
Converte moedas nativas Cosmos para tokens ERC20.
Parâmetro | Tipo | Descrição |
---|---|---|
coin | cosmos.base.v1beta1.Coin | Moeda nativa a converter. |
receiver | string | Endereço destinatário do token ERC20. |
sender | string | Endereço remetente da moeda nativa. |
crossfi.treasury.MsgMint
Cunha novos tokens no tesouro CrossFi.
Parâmetro | Tipo | Descrição |
---|---|---|
creator | string | Endereço Bech32 autorizado a cunhar tokens. |
amount | Coin | Quantidade e denominação a cunhar. |
Requisitos:
- O criador deve ter permissões de cunhagem
- A quantidade deve ser positiva
- A denominação deve ser suportada
crossfi.treasury.MsgBurn
Queima tokens da circulação.
Parâmetro | Tipo | Descrição |
---|---|---|
creator | string | Endereço Bech32 iniciando a queima. |
amount | Coin | Quantidade e denominação a queimar. |
Requisitos:
- O criador deve possuir tokens suficientes
- A quantidade deve ser positiva
- A operação de queima é irreversível
Exemplos de Uso
Transferência Básica
Transferência simples de tokens usando MsgSend:
{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [
{
"denom": "mpx",
"amount": "1000000"
}
]
}