Transaction and Receipt
Transaction: A transaction authorizes the blockchain to make changes to the world state, in the form of, either:
- Tokens transfer from one account to another, or
- A smart contract invocation.
There are three kinds of transactions in the testnet:
External Account to External Account (EtoE): A transaction that only transfers native token (TXPLL) balance from one external account to another external account. A transaction message is inferred to be EtoE if both its from address and to address have empty code.
External Account to Contract (EtoC): A transaction that calls a smart contract. A transaction message is inferred to be EtoC if its from address has empty code, and its to address has non-empty code.
Deploy Contract (DeployC): A transaction that deploys a smart contract. A transaction message is inferred to be Deploy if its from address has empty code and its to address is 0x0000000000000000000000000000000000000000000000000000000000000000 (32-byte zero).
Receipt: A receipt is produced upon execution of each transaction. Its fields provide a succinct summary of ‘what happened’ during the transaction execution flow:
- Exit Code
- Gas Consumed
- Return Value
Event: Events are key-value pairs emitted during a smart contract execution. Events allow decentralized applications to quickly prove to users that a particular branch/line of code was executed during a transaction, by querying for the existence of events in blocks.