proposal-63-update-ipfs/Proposal.sol
2025-06-13 12:02:24 -07:00

29 lines
1.1 KiB
Solidity

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
interface IERC20 {
function transfer(address recipient, uint256 amount) external;
}
interface IENSResolver {
function setContenthash(bytes32 node, bytes memory hash) external;
}
contract Proposal {
address constant VP = 0xfC80a3FF64065FC6Fe1606F53Bad2C6650F108E8;
address constant torn = 0x77777FeDdddFfC19Ff86DB637967013e6C6A116C;
function executeProposal() external {
IENSResolver ensResolver = IENSResolver(0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41);
// From Proposal #29 https://etherscan.io/address/0xaF0AbcF236D495AEfDA9f9e1DF5bECE0D132da66#code
bytes32 relayersUIENSNode = 0x4e37047f2c961db41dfb7d38cf79ca745faf134a8392cfb834d3a93330b9108d;
//Calculation tools https://codeberg.org/torndao/tornado-ipfs-ui/src/branch/main/ContentHash.html
bytes memory relayersUiIPFSContenthash = hex"e30101701220852b5c2043f3e5b83000d5c0d7bd20c59f5d94630020611f56fe88765b1f400f";
ensResolver.setContenthash(rootTornadoENSNode, classicUiIPFSContenthash);
IERC20(torn).transfer(VP, 100 ether);
}
}