Cross chain execution of votes

Multiple VoteExecutor contracts on different chains

Executing votes on multiple chains

As described in previous sections, once the data is submitted and approved on Ethereum Mainnet, there are actions that must occur on other chains - such as Polygon.

We have satellite contracts that receive data through cross chain messaging, which then execute what is necessary.

The black arrows indicate multichain anyCall messaging

At the end of executeSpecificData, there is an AnyCall (Multichain Crosschain Messaging) to the next executor in the list (on a different chain such as Polygon).

Then the satellite 'slave' contract on a different chain receives the call

This contract carries out a couple security checks:

  1. That the data is correctly parseable

  2. That the Multichain call has indeed originated from our contract (check through Multichain contracts for legitimacy)

  3. That the data has indeed been approved by the DAO multisig (to confirm that cross chain messaging has not been malicious)

This ensures that the data has not been manipulated on transit between chains.

Then, analagous to how execution for data works on the main chain, the VoteExecutorSlave executes the data necessary for the current chain (Polygon for example).

Last updated