I am detailing our security concept at the moment and noticed that once a sentinel is set up, you cannot change the address it is monitoring. Also you cannot copy sentinels. I feel that we will end up with quite a large number of sentinels as I would like to secure every single contract function that has access control. So I am looking at 50+ sentinels in our final setup. Setting them all up manually for each network we deploy to (and we are looking at 5+ networks in the near future) will be quite a time-consuming task.
So if I set up plenty of sentinels in test environment now and would like to copy or move them to deployment once testing is done, I would have to set up every single one again manually. The same happens when we deploy our contracts not only in one mainnet but in several. That means 50+ manual tasks for each new deployment. I feel this could be enhanced a little :).
Please consider the following feature requests.
Feature Request 1 - Change the address of the contract a sentinel is monitoring:
It would be nice if I could simply change the address of the contract that the sentinel is watching (OK if it has to be the same contract with same ABI, would still save me a lot of time). Especially handy for testing environment where I may deploy a fresh contract replacing the old (not upgrading it) but still want to use the sentinels I have already set up.
Feature Request 2 - Have a function to copy one/multiple sentinels from one network to another
So after I deployed to Ethereum and set up all my 50+ sentinels, I can deploy to BSC and simply copy all sentinels to the new network. Maybe I will have to update some of the addresses which would require the feature described above so that after copying I can manually update the addresses, where needed.
Feature Request 3 - add sentinels via script/ABI
This would a super helpful feature to have. If I could have a script that adds sentinels with their conditions and also points them to the right contracts straight away after deployment. So if I deploy my set of contracts to a new network, I have everything smoothly set up via script.
The workflow would be (all via script):
- deploy contracts
- verify source code on Etherscan
- pull ABI from Etherscan API and add contracts to Defender including ABI
- set up sentinels for each of the deployed contracts with the right conditions
All set up and done
I know you guys have probably a lot to do and a good backlog already but you asked for feedback and feature requests, so I hope it helps
Keep up the good work