proposal-45/contracts/Proposal.sol
2024-01-03 19:12:52 +00:00

31 lines
1.0 KiB
Solidity

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
import "./interfaces/IERC20.sol";
import { ISablier } from "./interfaces/ISablier.sol"; // copied from proposal 28
contract Proposal {
address constant me = 0xeb3E49Af2aB5D5D0f83A9289cF5a34d9e1f6C5b4;
address constant torn = 0x77777FeDdddFfC19Ff86DB637967013e6C6A116C;
address constant sablier = 0xCD18eAa163733Da39c232722cBC4E8940b1D8888;
uint256 constant quarterDuration = 91 days;
uint256 constant remunerationAmount = 16666 ether;
function executeProposal() external {
// from proposal 28
uint256 remunerationNormalizedAmount = remunerationAmount - (remunerationAmount % quarterDuration);
uint256 remunerationPeriodStart = block.timestamp;
IERC20(torn).approve(sablier, remunerationNormalizedAmount);
ISablier(sablier).createStream(
me,
remunerationNormalizedAmount,
torn,
remunerationPeriodStart,
remunerationPeriodStart + quarterDuration
);
}
}