What is a transaction?

Transactions are cryptographically signed instructions from accounts. An account will initiate a transaction to update the state of the FootballChain network.
Transactions, which change the state of the EVM, need to be broadcast to the whole network. Any node can broadcast a request for a transaction to be executed on the EVM; after this happens, a validator will execute the transaction and propagate the resulting state change to the rest of the network.
Transactions require a fee and must be included in a validated block. To make this overview simpler we'll cover gas fees and validation elsewhere.
A submitted transaction includes the following information:
  • recipient – the receiving address (if an externally-owned account, the transaction will transfer value. If a contract account, the transaction will execute the contract code)
  • signature – the identifier of the sender. This is generated when the sender's private key signs the transaction and confirms the sender has authorized this transaction
  • nonce - a sequencially incrementing counter which indicate the transaction number from the account
  • value – amount of FBC to transfer from sender to recipient (in WEI, a denomination of FBC)
  • data – optional field to include arbitrary data
  • gasLimit – the maximum amount of gas units that can be consumed by the transaction. Units of gas represent computational steps
  • maxPriorityFeePerGas - the maximum amount of gas to be included as a tip to the validator
  • maxFeePerGas - the maximum amount of gas willing to be paid for the transaction (inclusive of baseFeePerGas and maxPriorityFeePerGas)

On FootballChain there are a few different types of transactions:

  • Regular transactions: a transaction from one account to another.
  • Contract deployment transactions: a transaction without a 'to' address, where the data field is used for the contract code.
  • Execution of a contract: a transaction that interacts with a deployed smart contract. In this case, 'to' address is the smart contract address.