Explain the technical specification of the Auction system
User Swap & Solver Discovery
discover()
function of the Discovery contract to get all possible Solvers for the specific swap.User Commit
lock()
timelock but must be reduced in addLock
to prevent the Solver from potentially stealing user funds. At this stage, there is no need to specify the srcReceiver
; the final srcReceiver
will be added during addLock
. In the tokenCommitted
event, the array of Solvers must be emitted.Auction
tokenCommitted
event for their respective addresses are notified. The auction ensures, that all specified solvers are registered in the Discovery contract. The auction is executed (treated as a black box with the only requirement that the auction will only execute with Solvers registered in the Discovery contract), and one Solver is selected as the winner to lock the funds.Lock
addLock()
or addLockSig()
with the same data but with a decreased timelock and also specifies the srcReceiver
from the original Solvers list, which must be the winning Solver.