Skip to main content
There are four actions that a smart contract can perform during the action phase: A smart contract can create up to 255 such actions during its execution. Actions are created during the compute phase by special TVM instructions. When an action is created, it is populated into the output action list of the smart contract. From the low-level perspective, the output action list is a linked list where each action is represented as a cell. Finally, in the action phase, created actions are executed in the order they were populated into the output action list.
out_list_empty$_ = OutList 0;
out_list$_ {n:#} prev:^(OutList n) action:OutAction
    = OutList (n + 1);
action_send_msg#0ec3c86d mode:(## 8) 
    out_msg:^(MessageRelaxed Any) = OutAction;
action_set_code#ad4de08e new_code:^Cell = OutAction;
action_reserve_currency#36e6b809 mode:(## 8)
    currency:CurrencyCollection = OutAction;
libref_hash$0 lib_hash:bits256 = LibRef;
libref_ref$1 library:^Cell = LibRef;
action_change_library#26fa1dd4 mode:(## 7)
    libref:LibRef = OutAction;