Solver Call
Last updated
Last updated
A special call that allows 3rd party to add call data that is not known at the signing stage of the FCT message.
In order make a solver call 'solver' keyword needs to be used as the of the call.
There are special rules for solver calls in order to protect bothe solver and other participants.
On fct message, variable_arguments_start and variable_arguments_end must be 0
Solver can change those values, on callId, it won't affect the message signatures validation process
Solver must provide a special call data as follows: <SIgnature><Dealline><Method Selector><Method Data>
The signature is done for hash (keccak256) of the following encoded data: <FCT Message Hash><Call Header and Data><Repeats Left><Deadline>
The deadline holds the highest block number that this signature can be used in.
The "FCT Message Hash" protects the solver against using the same call data on a other FCTs.
The "Call Header and Data" protects the solver from manipulations of the call header and data by miners/activators or bots.
The "Dealine" field give the solver the ability to set an expire time for this specific call data. This allows to have many suggested call data over time for the same FCT.
The "Repeats Left" fields protects the solver from reusing the same call data in case of FCT that supports re-currency
It is recommended that all payers' indexes will be 0, except the solvers one (optional). In this way the solver will pay for the whole FCT, eliminating the common gas payment that might increase due to a long call message used by the solver.