2023-05-28 12:17:54 +03:00
# Governance upgrade to patch exploit
2023-05-24 23:20:44 +03:00
2023-05-28 12:17:54 +03:00
### Major changes
1. Adding protection from metamorphic contracts to Governance voting process;
2. Redeploying Governance Staking proxy contract to nullify bugged rewards;
3. Return of tokens lost due to a bug in Governance Staking;
4. Redeploying Governance Staking logic contract and Relayer Registry logic contract to change the staking address to the current one.
### Requirements
2023-06-01 21:23:38 +03:00
- Rust ([Any system](https://doc.rust-lang.org/cargo/getting-started/installation.html))
2023-05-28 12:17:54 +03:00
- Foundryup ([Windows](https://github.com/altugbakan/foundryup-windows), [Linux ](https://book.getfoundry.sh/getting-started/installation ))
- Node 14 or higher ([Windows](https://github.com/coreybutler/nvm-windows), [Linux ](https://github.com/nvm-sh/nvm ))
### Installation
```text
git clone --recurse-submodules https://git.tornado.ws/Theo/proposal-22-governance-and-rewards-patch
cd proposal-22-governance-and-rewards-patch
npm install
```
### Testing
```text
npm run test
```
### Contracts info
The contracts can be currently found here:
- [GovernancePatchUpgrade ](https://git.tornado.ws/Theo/proposal-22-governance-and-rewards-patch/src/branch/main/src/v4-patch/GovernancePatchUpgrade.sol )
- [PatchProposal ](https://git.tornado.ws/Theo/proposal-22-governance-and-rewards-patch/src/branch/main/src/v4-patch/PatchProposal.sol )
Inlined version of the `RelayerRegistry` and `TornadoStakingRewards` are also used. Check the `diffs` folder to see how much they deviate from the deployed contract implementations.
For testing resistance against metamorphic contracts, we use the contracts provided by: https://github.com/0age/metamorphic.git