Pular para o conteúdo principal

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


Cosmos Base

cosmos.base.v1beta1.Coin

A estrutura fundamental de moeda usada em todos os módulos para representar quantidades de tokens.

ParâmetroTipoDescrição
denomstringDenominação do token (ex. mpx, xfi). Deve corresponder às denominações registradas.
amountstringQuantidade 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âmetroTipoDescrição
granterstringEndereço da conta que concede permissão (ex. mx1x7...).
granteestringEndereço da conta que recebe permissão (ex. mx1y2...).
grantcosmos.authz.v1beta1.GrantObjeto grant contendo detalhes de autorização e expiração.

Estrutura Grant:

ParâmetroTipoDescrição
authorizationgoogle.protobuf.AnyTipo de autorização (GenericAuthorization, SendAuthorization, etc.).
expirationgoogle.protobuf.TimestampTempo de expiração opcional em formato UTC (ex. 2025-12-31T23:59:59Z).

Tipos de Autorização:

  1. GenericAuthorization

    • Fornece permissão ilimitada para o tipo de mensagem especificado
    • msg: string - URL completa do tipo de mensagem (ex. /cosmos.bank.v1beta1.MsgSend)
  2. 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
  3. 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âmetroTipoDescrição
granterstringEndereço da conta que revoga permissão.
granteestringEndereço da conta que perde permissão.
msg_type_urlstringURL 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âmetroTipoDescrição
granteestringEndereço da conta que executa mensagens.
msgsrepeated google.protobuf.AnyLista 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âmetroTipoDescrição
from_addressstring (cosmos.AddressString)Endereço do remetente (ex. mx1x7...).
to_addressstring (cosmos.AddressString)Endereço do destinatário (ex. mx1y2...).
amountrepeated cosmos.base.v1beta1.CoinMoedas 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âmetroTipoDescrição
inputsrepeated InputFontes de entrada. Não pode ser null.
outputsrepeated OutputDestinos de saída.

Estrutura Input:

ParâmetroTipoDescrição
addressstringEndereço do remetente.
coinsrepeated cosmos.base.v1beta1.CoinMoedas a enviar.

Estrutura Output:

ParâmetroTipoDescrição
addressstringEndereço do destinatário.
coinsrepeated cosmos.base.v1beta1.CoinMoedas 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âmetroTipoDescrição
amountrepeated cosmos.base.v1beta1.CoinMoedas a transferir para o pool comunitário.
depositorstringEndereço Bech32 que financia o pool (ex. mx1x7...).

cosmos.distribution.v1beta1.MsgSetWithdrawAddress

Define um endereço diferente para saques de recompensas.

ParâmetroTipoDescrição
delegator_addressstringEndereço Bech32 do delegador definindo endereço de saque.
withdraw_addressstringEndereç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âmetroTipoDescrição
delegator_addressstringEndereço Bech32 do delegador sacando recompensas.
validator_addressstringEndereço Bech32 do validador (ex. mxvaloper1z3...).

cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission

Permite ao validador sacar comissão acumulada.

ParâmetroTipoDescrição
validator_addressstringEndereç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âmetroTipoDescrição
proposal_iduint64Identificador único da proposta.
depositorstringEndereço Bech32 fazendo depósito (ex. mx1x7...).
amountrepeated CoinQuantidade do depósito.

cosmos.gov.v1.MsgSubmitProposal

Cria uma nova proposta de governança.

ParâmetroTipoDescrição
messagesrepeated AnyMensagens a executar se a proposta passar.
initial_depositrepeated CoinDepósito inicial para a proposta.
proposerstringEndereço Bech32 do proponente (ex. mx1x7...).
metadatastringMetadados opcionais para a proposta.
titlestringTítulo da proposta.
summarystringBreve descrição da proposta.

cosmos.gov.v1.MsgVote

Emite um voto em uma proposta.

ParâmetroTipoDescrição
proposal_iduint64Identificador da proposta.
voterstringEndereço Bech32 do eleitor (ex. mx1x7...).
optionVoteOptionOpção de voto: YES, ABSTAIN, NO, NO_WITH_VETO.
metadatastringMetadados opcionais do voto.

cosmos.gov.v1.MsgVoteWeighted

Emite votos ponderados através de múltiplas opções.

ParâmetroTipoDescrição
proposal_iduint64Identificador da proposta.
voterstringEndereço Bech32 do eleitor.
optionsrepeated WeightedVoteOptionOpções de voto com pesos.
metadatastringMetadados opcionais.

WeightedVoteOption:

ParâmetroTipoDescrição
optionVoteOptionOpção de voto.
weightstringPeso 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âmetroTipoDescrição
granterstringEndereço fornecendo permissão de taxa (ex. mx1x7...).
granteestringEndereço recebendo permissão de taxa (ex. mx1y2...).
allowancegoogle.protobuf.AnyTipo de permissão de taxa (BasicAllowance, PeriodicAllowance).

Tipos de Permissão:

  1. BasicAllowance - Permissão simples com limite de gastos:

    • spend_limit: repeated Coin - Quantidade máxima de taxa
    • expiration: Timestamp - Tempo de expiração opcional
  2. 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âmetroTipoDescrição
granterstringEndereço revogando permissão (ex. mx1x7...).
granteestringEndereç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âmetroTipoDescrição
delegator_addressstringEndereço do delegador (ex. mx1x7...).
validator_src_addressstringValidador origem (ex. mxvaloper1y2...).
validator_dst_addressstringValidador destino (ex. mxvaloper1z3...).
amountcosmos.base.v1beta1.CoinQuantidade a redelegar.

cosmos.staking.v1beta1.MsgCreateValidator

Cria um novo validador.

ParâmetroTipoDescrição
descriptioncosmos.staking.v1beta1.DescriptionDescrição do validador.
commissioncosmos.staking.v1beta1.CommissionRatesTaxas de comissão.
min_self_delegationstringMínima auto-delegação em mpx.
delegator_addressstringDelegador criando validador (ex. mx1x7...).
validator_addressstringEndereço do validador (ex. mxvaloper1y2...).
pubkeygoogle.protobuf.AnyChave pública do validador.
valuecosmos.base.v1beta1.CoinQuantidade de stake inicial.

Estrutura Description:

ParâmetroTipoDescrição
monikerstringNome do validador.
identitystringIdentidade opcional (ex. ID do Keybase).
websitestringWebsite do validador.
security_contactstringEmail de contato de segurança.
detailsstringDetalhes adicionais do validador.

Estrutura CommissionRates:

ParâmetroTipoDescrição
ratestringTaxa de comissão atual (ex. "0.1" para 10%).
max_ratestringTaxa de comissão máxima (ex. "0.2").
max_change_ratestringMudança máxima diária de comissão (ex. "0.01").

cosmos.staking.v1beta1.MsgDelegate

Delega tokens a um validador.

ParâmetroTipoDescrição
delegator_addressstringEndereço do delegador (ex. mx1x7...).
validator_addressstringEndereço do validador (ex. mxvaloper1y2...).
amountcosmos.base.v1beta1.CoinQuantidade a delegar.

cosmos.staking.v1beta1.MsgEditValidator

Atualiza descrição e comissão do validador.

ParâmetroTipoDescrição
descriptioncosmos.staking.v1beta1.DescriptionDescrição atualizada do validador.
validator_addressstringEndereço do validador (ex. mxvaloper1y2...).
commission_ratestringNova taxa de comissão (opcional).
min_self_delegationstringNova mínima auto-delegação (opcional).

cosmos.staking.v1beta1.MsgUndelegate

Remove delegação de tokens de um validador.

ParâmetroTipoDescrição
delegator_addressstringEndereço do delegador (ex. mx1x7...).
validator_addressstringEndereço do validador (ex. mxvaloper1y2...).
amountcosmos.base.v1beta1.CoinQuantidade a remover delegação.

Módulo Slashing

cosmos.slashing.v1beta1.MsgUnjail

Liberta um validador previamente preso.

ParâmetroTipoDescrição
validator_addrstringEndereç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âmetroTipoDescrição
from_addressstringEndereço criando conta vesting.
to_addressstringNovo endereço de conta vesting (não inicializada).
amountrepeated cosmos.base.v1beta1.CoinTokens para vesting.
end_timeint64Timestamp UNIX quando o vesting termina.
delayedbooltrue=vesting atrasado, false=contínuo.

Tipos de Vesting:

  1. 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
  2. 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âmetroTipoDescrição
datagoogle.protobuf.AnyDados da transação (LegacyTx, AccessListTx, DynamicFeeTx).
sizedoubleTamanho da transação em cache (obsoleto).
hashstringHash da transação em formato hex.
fromstringEndereço do remetente em formato Ethereum.

ethermint.evm.v1.LegacyTx

Formato de transação Ethereum legado (pré-EIP-1559).

ParâmetroTipoDescrição
nonceuint64Número de sequência da conta.
gas_pricestringPreço do gas em wei como string.
gasuint64Limite de gas para transação.
tostringEndereço do destinatário (vazio para criação de contrato).
valuestringQuantidade a transferir em wei.
databytesDados da transação ou código do contrato.
vbytesParâmetro de recuperação da assinatura.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

ethermint.evm.v1.AccessListTx

Transação EIP-2930 com otimização de lista de acesso.

ParâmetroTipoDescrição
chain_idstringID da cadeia Ethereum.
nonceuint64Número de sequência da conta.
gas_pricestringPreço do gas em wei.
gasuint64Limite de gas.
tostringEndereço do destinatário.
valuestringQuantidade de transferência em wei.
databytesDados da transação.
accessesrepeated AccessTupleLista de acesso para otimização de gas.
vbytesParâmetro de assinatura v.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

Estrutura AccessTuple:

ParâmetroTipoDescrição
addressstringEndereço do contrato a acessar.
storage_keysrepeated stringChaves de armazenamento a acessar em formato hex.

ethermint.evm.v1.DynamicFeeTx

Transação EIP-1559 com taxas dinâmicas.

ParâmetroTipoDescrição
chain_idstringID da cadeia Ethereum.
nonceuint64Número de sequência da conta.
gas_tip_capstringTaxa de prioridade máxima por gas em wei.
gas_fee_capstringTaxa máxima por gas em wei.
gasuint64Limite de gas.
tostringEndereço do destinatário.
valuestringQuantidade de transferência em wei.
databytesDados da transação.
accessesrepeated AccessTupleLista de acesso.
vbytesParâmetro de assinatura v.
rbytesParâmetro de assinatura r.
sbytesParâmetro de assinatura s.

Módulos CrossFi

Funcionalidade específica da CrossFi.

crossfi.erc20.v1.MsgConvertCoin

Converte moedas nativas Cosmos para tokens ERC20.

ParâmetroTipoDescrição
coincosmos.base.v1beta1.CoinMoeda nativa a converter.
receiverstringEndereço destinatário do token ERC20.
senderstringEndereço remetente da moeda nativa.

crossfi.treasury.MsgMint

Cunha novos tokens no tesouro CrossFi.

ParâmetroTipoDescrição
creatorstringEndereço Bech32 autorizado a cunhar tokens.
amountCoinQuantidade 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âmetroTipoDescrição
creatorstringEndereço Bech32 iniciando a queima.
amountCoinQuantidade 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"
}
]
}

Voto de Governança

Votando em uma proposta de governança:

{
"@type": "/cosmos.gov.v1.MsgVote",
"proposal_id": "1",
"voter": "mx1x7...voter",
"option": "VOTE_OPTION_YES",
"metadata": "Apoiando esta proposta"
}

Delegação de Staking

Delegando tokens a um validador:

{
"@type": "/cosmos.staking.v1beta1.MsgDelegate",
"delegator_address": "mx1x7...delegator",
"validator_address": "mxvaloper1y2...validator",
"amount": {
"denom": "mpx",
"amount": "5000000"
}
}

Tratamento de Erros

Cenários comuns de falha e suas causas:

Erros de Validação de Transações
Erros Específicos de Módulos

Recursos Adicionais


informação

Esta referência cobre todos os principais tipos de mensagens de transação suportados pela CrossFi Chain. Para as últimas atualizações e tipos de mensagens adicionais, consulte a documentação da API XFI Scan ou explore transações diretamente no XFI Scan.