Componentes

Componentes de uma transação

Uma transação da Ethereum possui os seguintes componentes:

Uma transação de Ethereum possui os seguintes componentes:

Metadados

Inclui as informações de origem e destino, o valor de ETH a enviar, detalhes do gás e a assinatura:

  • chainId: identifica a blockchain. 0x1 para Ethereum.

  • type: tipo de transação. Existem dois tipos: novo contrato (0x0) e todas as demais (0x2).

  • hash: hash da transação.

  • blockNumber: número sequencial que identifica o bloco dentro da blockchain.

  • blockHash: hash do bloco que contém a transação.

  • transactionIndex: posição da transação dentro do bloco.

  • from: endereço que inicia a transação.

  • nonce: número de transações enviadas a partir do endereço que envia a transação. Após a inclusão da transação no bloco, o nonce é incrementado. Protege contra ataques de replay.

  • to: endereço para o qual a transação é enviada (EOA ou conta de contrato).

  • value: valor de ETH a transferir. Não é usado para outras criptomoedas.

  • gas: unidades de gás utilizadas pela transação.

  • gasPrice: valor pago nesta transação por unidade de gás (em wei).

  • maxFeePerGas: valor máximo que o usuário está disposto a pagar por gás (em wei) ao enviar a transação. Inclui a base fee e a priority fee.

  • maxPriorityFeePerGas: valor máximo que o usuário está disposto a pagar por gás (em wei) acima da base fee. Essa taxa é paga diretamente ao validador para priorizar a inclusão da transação no bloco.

  • (r, s, v): esses três valores compõem a assinatura do usuário que criou a transação. Eles são usados para verificar que o usuário autorizou a transação antes de sua execução pela EVM. Utiliza-se criptografia de curvas elípticas (ECDSA).

Metadados

Inclui as informações de origem e destino, o valor de ETH a ser enviado, detalhes sobre o gas e a assinatura:

  • chainId: Identifica a blockchain. 0x1 para Ethereum.

  • type: Tipo de transação. Existem dois tipos: novo contrato (0x0) e todos os outros (0x2).

  • hash: Hash da transação.

  • blockNumber: O número sequencial que identifica o bloco dentro da blockchain.

  • blockHash: O hash do bloco que contém a transação.

  • transactionIndex: A posição da transação dentro do bloco.

  • from: A direção que inicia a transação.

  • nonce: Número de transações enviadas desde a direção que envia a transação. Uma vez que a transação tenha sido incluída no bloco, o nonce é incrementado. Protege contra ataques de replay.

  • to: A direção para a qual a transação é enviada (EOA ou conta de contrato).

  • value: O valor de ETH a ser transferido. Não é utilizado para outras criptomoedas.

  • gas: Unidades de gas usadas pela transação.

  • gasPrice: Valor pago por unidade de gas nesta transação (em wei).

  • maxFeePerGas: Valor máximo que o usuário que envia a transação está disposto a pagar por gas (em wei). Inclui base fee e priority fee.

  • maxPriorityFeePerGas: Valor máximo que o usuário que envia a transação está disposto a pagar por gas acima da base fee (em wei). Essa taxa é paga diretamente ao validador para priorizar a inclusão da transação no bloco.

  • (r, s, v) Esses três valores compõem a assinatura do usuário que criou a transação. São usados para verificar que o usuário autorizou a transação antes de ser executada pela EVM. Usa-se criptografia de curvas elípticas (ECDSA).

Opções

Contém:

  • accessList: uma lista de endereços e chaves de armazenamento que a transação pretende acessar. O access list foi introduzido pela proposta de melhoria EIP-2930, que tem como objetivo melhorar a escalabilidade e reduzir os custos de gás para transações que acessam armazenamento externo. O custo de gás para acessar esses endereços recebe um desconto.

Dados

Contém:

  • input: os dados enviados pela transação em formato binário.

Existem três opções para o conteúdo do campo input:

  1. Transações ETH: vazio.

  2. Novo contrato inteligente: código do contrato inteligente.

  3. Chamada a um contrato inteligente: nome da função e parâmetros para sua execução.

O campo input não faz parte do estado da EVM. Ele apenas fornece dados para serem usados pelo contrato durante a transação.

Assim seria uma transação completa:

Dados

Contém:

  • input: Os dados enviados pela transação em formato binário.

Existem três opções para o que pode conter o input:

  1. Transações ETH - vazio.

  2. Novo contrato inteligente - código do contrato inteligente.

  3. Chamada para um contrato inteligente - nome da função e parâmetros para sua execução.

O campo input não faz parte do estado da EVM. Ele simplesmente fornece dados a serem usados pelo contrato durante a transação.


Assim seria uma transação completa:

Last updated