FCT platform enables the usage of multiple engines.
Engines support different levels of transcoding and flavors of FCTL (FCT Language).
The most versatile engine is called BatchMultiSig.
It supports: variables, returned data from calls as inputs, multi-sig, recurrency, multi-party transactions, payment planning and much more.
Low level flow control is tricky because FCT do not allow cyclic referencing and values may be changed when call is added in the middle of the flow
awaitfct.create({..., options: { flow:core.constants.Flow.OK_CONT_FAIL_REVERT, jumpOnSuccess?:0,// how many calls to jump over on success jumpOnFail?:0,// how many calls to jump over on fail },})// flowOK_CONT_FAIL_REVERT// default flowOK_CONT_FAIL_CONT// always continueOK_CONT_FAIL_STOP// stop of fail instead revertingOK_STOP_FAIL_CONT// stop on success, continue on failOK_STOP_FAIL_REVERT// stop on success, revert on failOK_REVERT_FAIL_CONT// revert on success, continue on failOK_REVERT_FAIL_STOP// revert on success, stop on fail
Using Builder
For complex flow control it is recommended to use the builder, that simplifies the flow planning by compiling a higher level code to a flow and jump values and has a build-in mechanism to prevent cyclic flows.