proposal-38/contracts/Proposal.sol
2023-11-19 13:51:07 +00:00

36 lines
1.5 KiB
Solidity
Executable File

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
// import { IGovernance } from "@interfaces/IGovernance.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract Proposal {
IERC20 public constant TORN = IERC20(0x77777FeDdddFfC19Ff86DB637967013e6C6A116C);
address public constant me = 0x9b78e16456c8C0A1FE386894c6f1E7F7C0104ADC;
struct RelayerLoss {
address relayer;
uint256 lostAmountInTorn;
}
function executeProposal() public {
// Data from 'data/relayerLosses.txt', generated by 'scripts/calculateLosses.ts'
RelayerLoss[6] memory relayerLosses = [
RelayerLoss(0x076D4E32C6A5D888fC4658281539c94E778C796d, 2_380_374_405_606_021_763_001),
RelayerLoss(0x28907F21F43B419F34226d6f10aCbCf1832b1D4d, 4_468_422_129_821_830_327_039),
RelayerLoss(0x2Ee39Ff05643bC7cc9ed31B71e142429044A425C, 3_040_216_359_787_595_395_455),
RelayerLoss(0xb0Cdc0AB2D454F2360d4629d519819E13DBE816A, 103_765_685_766_980_694_091),
RelayerLoss(0xb578603D3fB9216158c29488c1A902Dd0300c115, 816_848_044_379_099_935_494),
RelayerLoss(0xD8f1Eb586Ecb93745392EE254a028f1F67E1437E, 6_688_475_991_532_709_870_006)
];
for (uint256 i = 0; i < relayerLosses.length; i++) {
TORN.transfer(relayerLosses[i].relayer, relayerLosses[i].lostAmountInTorn);
}
// Deployment and execution cost
TORN.transfer(me, 50 ether);
}
}