Engine

Holds FCT's engine information

Typed Struct (EIP712)

Engine(bytes4 selector,bytes3 version,bytes3 random_id,bool eip712,string verifier,bool auth_enabled,bool dry_run)

Params

Name
Type

selector

bytes4

version

bytes3

random_id

bytes3

eip712

bool

verifier

string

auth_enabled

bool

dry_run

bool

selector

Holds the FCT Engine called function selector, the first four bytes of the Keccak-256 hash of the signature of the batchMultiSigCall function inside the FCT_BatchMultiSig contract.

triangle-exclamation

version

Holds the version number of a specific implementation of the FCT Engine called function

FCT supports using different implementation of the same interface by adding version numbers resulting in an "extended function selector".

FCT follows the Semantic Versioning standard: 0xMMmmpp MM - Major Version (up-to 256 values) mm - Minor Version (up-to 256 values) pp - Patch Version (up-to 256 values)

circle-check
circle-info

FCT Engine will preserve backward compatibility for minor and patch version changes while major version changes indicates breaking changes

circle-exclamation

random_id

FCT protects against double spending by keeping the hashes of executed messages.

In order to enable executing FCTs that holds the exactly same content more than once, without using the recurrency feature, there is a need to make all FCT's hashes unique. In order to do that, every FCT message holds a free random value.

circle-info

random_id may hold any number between 0 and 16777215 represented by bytes3 value

circle-info

random_id is relevant only in the case where all fields of two FCTs holds exactly the same values, e.g. sending the same amount to the same address

eip712

A boolean that tells the FCT Engine, the message format, the current FCT was signed. If the value is true, FCT is expected to be formatted as a standard EIP-712 message. If this values if false, FCT is expected to be formatted as a standard EIP-191 message

verifier

Users can set a 3rd party verifier that needs to sign of the FCT in order to make it valid.

circle-check

auth_enabled

A boolean that tells the FCT Engine, to make sure only official known runners are being used.

circle-exclamation

dry_run

A boolean that tells the FCT Engine to always fail, returning special revert message on successful execution of the fct, or passing the existing revert message when execution fails.

circle-info

Dry run is being used to provide off chain alerts for customised on-chain data.

Last updated