46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
# Governance upgrade to patch exploit
|
|
|
|
### 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
|
|
|
|
- Rust ([Any system](https://doc.rust-lang.org/cargo/getting-started/installation.html))
|
|
- 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
|
|
|
|
##### Deployed contracts
|
|
|
|
- [Governance logic (implementation) contract](https://etherscan.io/address/0xba178126c28f50ee60322a82f5ebcd6b3711e101#code)
|
|
- [Staking proxy contract](https://etherscan.io/address/0x5B3f656C80E8ddb9ec01Dd9018815576E9238c29#code)
|
|
- [Staking logic (implementation) contract](https://etherscan.io/address/0xefbea4ec481c2467a1a94d94bc54f111f6a7345f#code)
|
|
- [Relayer Registry logic (implementation) contract](https://etherscan.io/address/0xe27b91724c55e950f68b394f33fa3b86693179c0#code) |