Skip to main content

State Transition

Once the ICS creation is confirmed, the state objects of the accounts involved along with the interaction are passed on to the context-aware execution engine. The engine executes the interactions and generates new state objects as follows:

γ(I,πS,πR)=(πS,πR)\gamma(I, \pi_S, \pi_R) = (\pi_S',\pi_R')

Before 𝛶 is executed, the following conditions must be met:

  1. The interaction signature is valid
  2. The interaction nonce is valid
  3. The actual effort (in ANUs) will not cross the threshold effort weight IIIALI_{IIAL} (a leeway variable by default set to 30%, but can be updated by the developer)
  4. The sender account balance contains the minimum amount of balance to pay for the estimated fee

On successful execution of the state transition function, the effort consumed is also returned along with updated states and receipts. Any unspent effort is not charged to the signer.

Creating Tesseracts

Once the state transition occurs after the execution, the existing state objects are updated and sent back by the execution engine. The new state objects are further converted into a candidate Tesseract, ready to be proposed in the ICS created earlier.

τ=(τH,τB,τE,τC)=f(πS,πR,I,v,EVD)\tau =(\tau_H,\tau_B,\tau_E,\tau_C) = f(\pi_S',\pi_R', I, v, EVD)

Each interaction results in the generation of two tesseracts, each updated on the account graphs of sender and receiver respectively. To ensure relativity, both the tesseracts share a common group hash.