This repo provides scripts to help you configure and set up the protection of you'r protocol with spherex.
This assumes your smart contracts are already integrated with spherex.
The current config is forking linea chain (modify as you like in the hardhat.config.js): in one terminal run
npx hardhat node
and in a second terminal run:
npx hardhat run <script> --network localhost --no-compile
Configure the operator, engine and protected sigs for each contract in the contracts' data file. In order to run the script, change the four settings at the top of the scripts:
const SPHEREX_OPERATOR_ADDRESS = "0x0000000000000000000000000000000000001337";
const SPHEREX_ENGINE_ADDRESS = "0x0000000000000000000000000000000000001337";
const CONTRACTS_DATA_PATH = "";
const LOCAL_FORK = true;
The contracts_data file should be provided by the spherex team. This script should be run by the spherex admin of the protected contracts (assuming it is the same for all the contracts)
Deploy an engine, sets the allowed senders and allowed patterns (does not turn on protection!). In order to run the script set the three settings at the top of the script:
const ALLOWED_SENDER_PATH = "";
const ALLOWED_PATTERNS_PATH = "";
const LOCAL_FORK = true;
The allowed senders and patterns should be provided by the spherex team.
Sets the allowed senders and allowed patterns for an already deployed engine(does not turn on protection!). In order to run the script set the three settings at the top of the script:
const ALLOWED_SENDER_PATH = "";
const ALLOWED_PATTERNS_PATH = "";
const ENGINE_ADDRESS = "";
const LOCAL_FORK = true;
The allowed senders and patterns should be provided by the spherex team.
Turn the engine on, should only be run after all the protected contracts and the engine have been configured!. Settings need to be set:
const ENGINE_ADDRESS = "";
const LOCAL_FORK = true;
Turn the engine off. After this action the engine will not revert! Settings need to be set:
const ENGINE_ADDRESS = "";
const LOCAL_FORK = true;
Add patterns to the engine. Settings need to be set:
const ENGINE_ADDRESS = "";
const LOCAL_FORK = true;
const patterns = []; // an array of strings of hashes as created by the dashboard
In order to run the scripts against a real network you need to configure the hardhat.config.js with the chain's details (see https://hardhat.org/tutorial/deploying-to-a-live-network) and create .env file with your PRIVATE_KEY (see .env.example) Run in a terminal:
npx hardhat run <script> --network <name of the chain in the hardhat config> --no-compile
In both scripts there a global const LOCAL_FORK, don't forget to set it to false!
This script should be run by the spherex admin of the spherex engine