An external actor has to call functions to bridge the roots around. Post hackathon we can come up with an incentivized mechanism for this but for now we'll eat the cost.
Order of calls:
- on
L2AztecRootBridgeAdapter noir contract call send_root_to_l1()
- on
L1AztecRootBridgeAdapter call getNewRootFromL2(<a bunch of parameters>)
- on
GigaRootBridge.sol call updateRoot([address L1AztecRootBridgeAdapter])
- on
GigaRootBridge.sol call sendRoot([address L1AztecRootBridgeAdapter])
- on
L2AztecRootBridgeAdapter noir contract call update_gigaroot(new_gigaroot, message_leaf_index)
An external actor has to call functions to bridge the roots around. Post hackathon we can come up with an incentivized mechanism for this but for now we'll eat the cost.
Order of calls:
L2AztecRootBridgeAdapternoir contract callsend_root_to_l1()L1AztecRootBridgeAdaptercallgetNewRootFromL2(<a bunch of parameters>)GigaRootBridge.solcallupdateRoot([address L1AztecRootBridgeAdapter])GigaRootBridge.solcallsendRoot([address L1AztecRootBridgeAdapter])L2AztecRootBridgeAdapternoir contract callupdate_gigaroot(new_gigaroot, message_leaf_index)