Código
Formatos de código
Protocol Buffers
O lançamento Cosmos Stargate introduz o protobuf como o formato principal de codificação para a serialização de clientes e estados. Todas as estruturas do módulo EVM que são usadas para estados e clientes (mensagens de transação, dados de gênese, serviços de consulta, etc.) serão implementadas como mensagens de protocolo buffer
Amino
O Cosmos SDK também oferece suporte ao formato de codificação legado Amino para compatibilidade com versões anteriores, especialmente para a codificação de clientes. No entanto, uma vez que a migração para o SDK v0.40
do Ethermint seja concluída, o módulo EVM não dará suporte ao Amino.
RLP
O Recursive Length Prefix (RLP) é um algoritmo de codificação/decodificação que serializa uma mensagem e permite a rápida reconstrução dos dados codificados. O Ethermint utiliza o RLP para codificar/decodificar mensagens Ethereum para o manuseio JSON-RPC, a fim de conformar as mensagens ao formato adequado do Ethereum. Isso permite que as mensagens sejam codificadas e decodificadas no formato exato do Ethereum.
Cada tipo de mensagem definido no módulo EVM possui os métodos EncodeRLP e DecodeRLP, que implementam as interfaces rlp.Encoder e rlp.Decoder, respectivamente. O método de codificação RLP é usado para assinar bytes e transações em RLPSignBytes e Sign.