Meta

Holds FCT's meta information

Typed Struct (EIP712)

Meta(string name,address builder,bytes4 selector,bytes3 version,bytes3 random_id,bool eip712)

Params

name

"name" holds a free string that can be used to give the user an overview of the functionality of the FCT, e.g. "limit order", "stop loss", etc.

"name' is also used to register FCT to an official builder. It is done by saving the name on the FCT_Actuator contract storage and attaching the builder's address to it.

builder

The address of the creator of this FCT that will get rewards according to the tokenomics defined on the FCT_Tokenomics contract.

If the name is attached to a builder address in the FCT_Tokenomics contract that address will override the builder address defined here

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.

Must be "0xb91c650e" for current FCT_BatchMultiSig interface

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)

0x010A04 represents version 1.10.4

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

The FCT_Runner gets the interface and version before executing and can implement any versioning logic. See "vault versioning" for current vault implementation

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.

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

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.

Last updated