This page describes how to run oracle workers which allow to execute transfers with covered gas fess
Some 3rd party services which uses AMB to send messages from the Gnosis Chain to the Ethereum Mainnet are able to cover gas fees required for the execution of the message on the Ethereum Mainnet. It could incentivise appearance of independent bridge oracles which could handle such messages - the oracle needs some small amount of ether for execution which will not be spent since the messages will compensate the oracle funds spent for the transaction execution.
Recently Tornado Cash Nova introduces for their users ability to pay for withdrawal transactions execution. So, this page will describe how to setup the bridge oracle to execute Tornado's transactions:
1. Setup a machine with docker and docker-compose packages.
2. Create a directory where the oracle's configuration and database is held.
3. Go to this new directory and create a docker-compose.yml file there with the following content:
Note: that it is necessary to fill COMMON_FOREIGN_RPC_URL, ORACLE_VALIDATOR_ADDRESS, ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY and ORACLE_MEV_FOREIGN_FLASHBOTS_AUTH_SIGNING_KEY with your own values. Where ORACLE_VALIDATOR_ADDRESS and ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY contain the address and the private key of the account which will execute transactions (it must be prepaid with some small amount of ether); ORACLE_MEV_FOREIGN_FLASHBOTS_AUTH_SIGNING_KEY is an unique 32 bytes long id written in hex.
4. Create access-lists directory and the file allowance_list.txt there which must contain only one line:
0xf6A78083ca3e2a662D6dd1703c939c8aCE2e268d
This is the address of the OmniBridge contract which messages contains information about Tornado's withdrawals.
5. Run the bridge oracle with the following command: