Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x3419b3FfF84b5FBF6Eec061bA3f9b72809c955Bf
Balance 0 ETH
Nonce 1
Code Size 8004 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

8004 bytes
0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c8063ab23c3451161008a578063cb1a4fc011610064578063cb1a4fc0146101eb578063d8b964e614610209578063ec80325514610239578063fae7fb1a14610255576100cd565b8063ab23c34514610181578063b3ab15fb146101b1578063c7a6ef57146101cd576100cd565b8063045c6ce0146100d157806346c96aac146100ed578063570ca7351461010b5780637b1039991461012957806384cfb680146101475780638da5cb5b14610163575b5f5ffd5b6100eb60048036038101906100e69190611303565b610285565b005b6100f561052e565b604051610102919061136d565b60405180910390f35b6101136105be565b604051610120919061136d565b60405180910390f35b6101316105e2565b60405161013e91906113e1565b60405180910390f35b610161600480360381019061015c9190611459565b6105fa565b005b61016b6107e8565b604051610178919061136d565b60405180910390f35b61019b600480360381019061019691906115d3565b61087b565b6040516101a8919061168d565b60405180910390f35b6101cb60048036038101906101c691906116ad565b610a73565b005b6101d5610b6d565b6040516101e291906116f8565b60405180910390f35b6101f3610b91565b6040516102009190611720565b60405180910390f35b610223600480360381019061021e91906116ad565b610d41565b6040516102309190611748565b60405180910390f35b610253600480360381019061024e9190611761565b610d5e565b005b61026f600480360381019061026a919061195d565b61100d565b60405161027c9190611720565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061039657507f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610343573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036791906119ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6103d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cc90611a6f565b60405180910390fd5b7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff1663ab23c34561041961052e565b7f4e3c118eec6b94bdc91018eaece89d86cf106b75efd5de854eff17f14472b1f37f00000000000000000000000012341234b35c8a48908c716266db79caea0100e88560405160240161046d929190611a8d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b81526004016104e7929190611ab4565b5f604051808303815f875af1158015610502573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061052a9190611b50565b5050565b5f7310101010e0c3171d894b71b3400668af311e7d9473ffffffffffffffffffffffffffffffffffffffff1663bf40fac16040518163ffffffff1660e01b815260040161057a90611be1565b602060405180830381865afa158015610595573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b991906119ea565b905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7310101010e0c3171d894b71b3400668af311e7d9481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061070b57507f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106dc91906119ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190611a6f565b60405180910390fd5b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fbfb2a5467a7553002a13c4482affe6110fc4b3aa01828fb3669f5386cc62b4a360405160405180910390a35050565b5f7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610852573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087691906119ea565b905090565b60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061098e57507f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f91906119ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6109cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c490611a6f565b60405180910390fd5b7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff1663ab23c34584846040518363ffffffff1660e01b8152600401610a28929190611ab4565b5f604051808303815f875af1158015610a43573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a6b9190611b50565b905092915050565b610a7b6107e8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf90611c49565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdbebfba65bd6398fb722063efc10c99f624f9cd8ba657201056af918a676d5ee60405160405180910390a250565b7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e881565b5f60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610c3257505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610c6f5750610c406107e8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca590611cb1565b60405180910390fd5b7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff1663cb1a4fc06040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610d18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3c9190611ce3565b905090565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e6f57507f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4091906119ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590611a6f565b60405180910390fd5b7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff1663ab23c345610ef261052e565b7fe2d55ed1e2cbc9653b9053d2e2118c2c1ba4cbc339f8068aa862944b5f5ff15c7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e8878787604051602401610f4a9493929190611d0e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401610fc4929190611ab4565b5f604051808303815f875af1158015610fdf573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906110079190611b50565b50505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061111f57507f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906119ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590611a6f565b60405180910390fd5b5f7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e873ffffffffffffffffffffffffffffffffffffffff1663ab23c3456111a361052e565b631a1216bb60e01b7f00000000000000000000000012341234b35c8a48908c716266db79caea0100e88989896040516024016111e29493929190611ec9565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b815260040161125c929190611ab4565b5f604051808303815f875af1158015611277573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061129f9190611b50565b9050808060200190518101906112b59190611ce3565b9150509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6112e2816112d0565b81146112ec575f5ffd5b50565b5f813590506112fd816112d9565b92915050565b5f60208284031215611318576113176112c8565b5b5f611325848285016112ef565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113578261132e565b9050919050565b6113678161134d565b82525050565b5f6020820190506113805f83018461135e565b92915050565b5f819050919050565b5f6113a96113a461139f8461132e565b611386565b61132e565b9050919050565b5f6113ba8261138f565b9050919050565b5f6113cb826113b0565b9050919050565b6113db816113c1565b82525050565b5f6020820190506113f45f8301846113d2565b92915050565b6114038161134d565b811461140d575f5ffd5b50565b5f8135905061141e816113fa565b92915050565b5f8115159050919050565b61143881611424565b8114611442575f5ffd5b50565b5f813590506114538161142f565b92915050565b5f5f6040838503121561146f5761146e6112c8565b5b5f61147c85828601611410565b925050602061148d85828601611445565b9150509250929050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6114e58261149f565b810181811067ffffffffffffffff82111715611504576115036114af565b5b80604052505050565b5f6115166112bf565b905061152282826114dc565b919050565b5f67ffffffffffffffff821115611541576115406114af565b5b61154a8261149f565b9050602081019050919050565b828183375f83830152505050565b5f61157761157284611527565b61150d565b9050828152602081018484840111156115935761159261149b565b5b61159e848285611557565b509392505050565b5f82601f8301126115ba576115b9611497565b5b81356115ca848260208601611565565b91505092915050565b5f5f604083850312156115e9576115e86112c8565b5b5f6115f685828601611410565b925050602083013567ffffffffffffffff811115611617576116166112cc565b5b611623858286016115a6565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61165f8261162d565b6116698185611637565b9350611679818560208601611647565b6116828161149f565b840191505092915050565b5f6020820190508181035f8301526116a58184611655565b905092915050565b5f602082840312156116c2576116c16112c8565b5b5f6116cf84828501611410565b91505092915050565b5f6116e2826113b0565b9050919050565b6116f2816116d8565b82525050565b5f60208201905061170b5f8301846116e9565b92915050565b61171a816112d0565b82525050565b5f6020820190506117335f830184611711565b92915050565b61174281611424565b82525050565b5f60208201905061175b5f830184611739565b92915050565b5f5f5f60608486031215611778576117776112c8565b5b5f611785868287016112ef565b9350506020611796868287016112ef565b92505060406117a7868287016112ef565b9150509250925092565b5f67ffffffffffffffff8211156117cb576117ca6114af565b5b602082029050602081019050919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f604082840312156117fd576117fc6117e0565b5b611807604061150d565b90505f61181684828501611410565b5f83015250602082013567ffffffffffffffff811115611839576118386117e4565b5b611845848285016115a6565b60208301525092915050565b5f61186361185e846117b1565b61150d565b90508083825260208201905060208402830185811115611886576118856117dc565b5b835b818110156118cd57803567ffffffffffffffff8111156118ab576118aa611497565b5b8086016118b889826117e8565b85526020850194505050602081019050611888565b5050509392505050565b5f82601f8301126118eb576118ea611497565b5b81356118fb848260208601611851565b91505092915050565b5f5ffd5b5f5f83601f84011261191d5761191c611497565b5b8235905067ffffffffffffffff81111561193a57611939611904565b5b602083019150836001820283011115611956576119556117dc565b5b9250929050565b5f5f5f60408486031215611974576119736112c8565b5b5f84013567ffffffffffffffff811115611991576119906112cc565b5b61199d868287016118d7565b935050602084013567ffffffffffffffff8111156119be576119bd6112cc565b5b6119ca86828701611908565b92509250509250925092565b5f815190506119e4816113fa565b92915050565b5f602082840312156119ff576119fe6112c8565b5b5f611a0c848285016119d6565b91505092915050565b5f82825260208201905092915050565b7f4e6f74206f70657261746f7200000000000000000000000000000000000000005f82015250565b5f611a59600c83611a15565b9150611a6482611a25565b602082019050919050565b5f6020820190508181035f830152611a8681611a4d565b9050919050565b5f604082019050611aa05f83018561135e565b611aad6020830184611711565b9392505050565b5f604082019050611ac75f83018561135e565b8181036020830152611ad98184611655565b90509392505050565b5f611af4611aef84611527565b61150d565b905082815260208101848484011115611b1057611b0f61149b565b5b611b1b848285611647565b509392505050565b5f82601f830112611b3757611b36611497565b5b8151611b47848260208601611ae2565b91505092915050565b5f60208284031215611b6557611b646112c8565b5b5f82015167ffffffffffffffff811115611b8257611b816112cc565b5b611b8e84828501611b23565b91505092915050565b7f564f5445520000000000000000000000000000000000000000000000000000005f82015250565b5f611bcb600583611a15565b9150611bd682611b97565b602082019050919050565b5f6020820190508181035f830152611bf881611bbf565b9050919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611c33600983611a15565b9150611c3e82611bff565b602082019050919050565b5f6020820190508181035f830152611c6081611c27565b9050919050565b7f4e6f7420617070726f76656400000000000000000000000000000000000000005f82015250565b5f611c9b600c83611a15565b9150611ca682611c67565b602082019050919050565b5f6020820190508181035f830152611cc881611c8f565b9050919050565b5f81519050611cdd816112d9565b92915050565b5f60208284031215611cf857611cf76112c8565b5b5f611d0584828501611ccf565b91505092915050565b5f608082019050611d215f83018761135e565b611d2e6020830186611711565b611d3b6040830185611711565b611d486060830184611711565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611d838161134d565b82525050565b5f82825260208201905092915050565b5f611da38261162d565b611dad8185611d89565b9350611dbd818560208601611647565b611dc68161149f565b840191505092915050565b5f604083015f830151611de65f860182611d7a565b5060208301518482036020860152611dfe8282611d99565b9150508091505092915050565b5f611e168383611dd1565b905092915050565b5f602082019050919050565b5f611e3482611d51565b611e3e8185611d5b565b935083602082028501611e5085611d6b565b805f5b85811015611e8b5784840389528151611e6c8582611e0b565b9450611e7783611e1e565b925060208a01995050600181019050611e53565b50829750879550505050505092915050565b5f611ea88385611a15565b9350611eb5838584611557565b611ebe8361149f565b840190509392505050565b5f606082019050611edc5f83018761135e565b8181036020830152611eee8186611e2a565b90508181036040830152611f03818486611e9d565b90509594505050505056fea2646970667358221220a12c8ad59df69404d1a8fb16fa48ec4c3a4ca8298f2f6143d34b8a9263e9889064736f6c634300081c0033

Verified Source Code Full Match

Compiler: v0.8.28+commit.7893614a EVM: cancun Optimization: No
PermastakerOperator.sol 103 lines
pragma solidity 0.8.28;

import {IPermastaker} from "interfaces/IPermastaker.sol";
import {IVoter} from "interfaces/IVoter.sol";
import {IRegistry} from "interfaces/IRegistry.sol";

contract PermastakerOperator {
    IRegistry public constant registry = IRegistry(0x10101010E0C3171D894B71B3400668aF311e7D94);
    IPermastaker public immutable permastaker;
    address public operator;
    mapping(address => bool) public approved;
    
    event Approved(address indexed account, bool indexed approved);
    event SetOperator(address indexed operator);
    
    modifier onlyOperator() {
        require(
            msg.sender == operator ||
            msg.sender == permastaker.owner(),
            "Not operator"
        );
        _;
    }

    modifier onlyApproved() {
        require(
            approved[msg.sender] ||
            msg.sender == operator ||
            msg.sender == owner(),
            "Not approved"
        );
        _;
    }

    constructor(address _permastaker, address _operator, address[] memory _approved) {
        permastaker = IPermastaker(_permastaker);
        operator = _operator;
        emit SetOperator(_operator);
        for (uint256 i = 0; i < _approved.length; i++) {
            approved[_approved[i]] = true;
            emit Approved(_approved[i], true);
        }
    }

    function voteForProposal(uint256 _proposalId) external onlyOperator {
        permastaker.safeExecute(
            address(voter()),
            abi.encodeWithSelector(
                bytes4(keccak256("voteForProposal(address,uint256)")),
                address(permastaker),
                _proposalId
            )
        );
    }

    function voteForProposal(uint256 _proposalId, uint256 _pctYes, uint256 _pctNo) external onlyOperator {
        permastaker.safeExecute(
            address(voter()),
            abi.encodeWithSelector(
                bytes4(keccak256("voteForProposal(address,uint256,uint256,uint256)")),
                address(permastaker),
                _proposalId,
                _pctYes,
                _pctNo
            )
        );
    }

    function createNewProposal(IVoter.Action[] memory _payload, string calldata _description) external onlyOperator returns (uint256) {
        bytes memory data = permastaker.safeExecute(
            address(voter()),
            abi.encodeWithSelector(IVoter.createNewProposal.selector, address(permastaker), _payload, _description)
        );
        return abi.decode(data, (uint256));
    }

    function safeExecute(address _target, bytes memory _data) external onlyOperator returns (bytes memory) {
        return permastaker.safeExecute(_target, _data);
    }

    function setApproved(address _account, bool _approved) external onlyOperator {
        approved[_account] = _approved;
        emit Approved(_account, _approved);
    }

    function claimAndStake() external onlyApproved returns (uint256) {
        return permastaker.claimAndStake();
    }

    function setOperator(address _operator) external {
        require(msg.sender == owner(), "Not owner");
        operator = _operator;
        emit SetOperator(_operator);
    }

    function owner() public view returns (address) {
        return permastaker.owner();
    }

    function voter() public view returns (address) {
        return registry.getAddress("VOTER");
    }
}
IPermastaker.sol 52 lines
pragma solidity ^0.8.20;

interface IPermastaker {
    error OwnableInvalidOwner(address owner);
    error OwnableUnauthorizedAccount(address account);
    event OperatorUpdated(address indexed operator);
    event OwnershipTransferStarted(
        address indexed previousOwner,
        address indexed newOwner
    );
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    function acceptOwnership() external;

    function claimAndStake() external returns (uint256 amount);

    function core() external view returns (address);

    function execute(address target, bytes memory data)
        external
        returns (bool, bytes memory);

    function migrateStaker() external;

    function name() external view returns (string memory);

    function operator() external view returns (address);

    function owner() external view returns (address);

    function pendingOwner() external view returns (address);

    function registry() external view returns (address);

    function renounceOwnership() external;

    function safeExecute(address target, bytes memory data)
        external
        returns (bytes memory);

    function setOperator(address _operator) external;

    function staker() external view returns (address);

    function transferOwnership(address newOwner) external;

    function vestManager() external view returns (address);
}
IVoter.sol 158 lines
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.28;

interface IVoter {
    struct Action {
        address target;
        bytes data;
    }

    struct Vote {
        uint40 weightYes;
        uint40 weightNo;
    }

    event DelegateApprovalSet(
        address indexed account,
        address indexed delegate,
        bool isApproved
    );
    event ProposalCancelled(uint256 indexed proposalId);
    event ProposalCreated(
        address indexed account,
        uint256 indexed id,
        Action[] payload,
        uint256 epoch,
        uint256 quorumWeight
    );
    event ProposalCreationMinPctSet(uint256 weight);
    event ProposalDescriptionUpdated(
        uint256 indexed proposalId,
        string description
    );
    event ProposalExecuted(uint256 indexed proposalId);
    event QuorumPctSet(uint256 pct);
    event VoteCast(
        address indexed account,
        uint256 indexed id,
        uint256 weightYes,
        uint256 weightNo
    );

    function EXECUTION_DEADLINE() external view returns (uint256);

    function EXECUTION_DELAY() external view returns (uint256);

    function MAX_DESCRIPTION_BYTES() external view returns (uint256);

    function MAX_PCT() external view returns (uint256);

    function MIN_TIME_BETWEEN_PROPOSALS() external view returns (uint256);

    function TOKEN_DECIMALS() external view returns (uint256);

    function VOTING_PERIOD() external view returns (uint256);

    function accountVoteWeights(address account, uint256 id)
        external
        view
        returns (uint40 weightYes, uint40 weightNo);

    function canExecute(uint256 id) external view returns (bool);

    function cancelProposal(uint256 id) external;

    function core() external view returns (address);

    function createNewProposal(
        address account,
        Action[] memory payload,
        string memory description
    ) external returns (uint256);

    function epochLength() external view returns (uint256);

    function executeProposal(uint256 id) external;

    function getEpoch() external view returns (uint256 epoch);

    function getProposalCount() external view returns (uint256);

    function getProposalData(uint256 id)
        external
        view
        returns (
            string memory description,
            uint256 epoch,
            uint256 createdAt,
            uint256 quorumWeight,
            uint256 weightYes,
            uint256 weightNo,
            bool processed,
            bool executable,
            Action[] memory payload
        );

    function isApprovedDelegate(address owner, address caller)
        external
        view
        returns (bool isApproved);

    function latestProposalTimestamp(address account)
        external
        view
        returns (uint256 timestamp);

    function minCreateProposalPct() external view returns (uint256);

    function minCreateProposalWeight() external view returns (uint256);

    function owner() external view returns (address);

    function proposalData(uint256)
        external
        view
        returns (
            uint16 epoch,
            uint32 createdAt,
            uint40 quorumWeight,
            bool processed,
            Vote memory results
        );

    function proposalDescription(uint256 id)
        external
        view
        returns (string memory description);

    function proposalPayload(uint256 id, uint256)
        external
        view
        returns (address target, bytes memory data);

    function quorumPct() external view returns (uint256);

    function quorumReached(uint256 id) external view returns (bool);

    function setDelegateApproval(address _delegate, bool _isApproved) external;

    function setMinCreateProposalPct(uint256 pct) external returns (bool);

    function setQuorumPct(uint256 pct) external returns (bool);

    function staker() external view returns (address);

    function startTime() external view returns (uint256);

    function updateProposalDescription(uint256 id, string memory description)
        external;

    function voteForProposal(address account, uint256 id) external;

    function voteForProposal(
        address account,
        uint256 id,
        uint256 pctYes,
        uint256 pctNo
    ) external;
}
IRegistry.sol 73 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;

interface IRegistry {
    event AddPair(address pairAddress);
    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event SetDeployer(address deployer, bool _bool);
    event DefaultSwappersSet(address[] addresses);
    event EntryUpdated(string indexed key, address indexed addr);
    event WithdrawTo(address indexed user, uint256 amount);

    // Protected keys
    function LIQUIDATION_HANDLER() external pure returns (string memory);
    function FEE_DEPOSIT() external pure returns (string memory);
    function REDEMPTION_HANDLER() external pure returns (string memory);
    function INSURANCE_POOL() external pure returns (string memory);
    function REWARD_HANDLER() external pure returns (string memory);
    function TREASURY() external pure returns (string memory);
    function STAKER() external pure returns (string memory);
    function L2_MANAGER() external pure returns (string memory);
    function VEST_MANAGER() external pure returns (string memory);

    // Other public functions
    function token() external view returns (address);
    function govToken() external view returns (address);
    function getAddress(string memory key) external view returns (address);
    function getAllKeys() external view returns (string[] memory);
    function getAllAddresses() external view returns (address[] memory);
    function getProtectedKeys() external pure returns (string[] memory);
    function keyExists(string memory) external view returns (bool);
    function hashToKey(bytes32) external view returns (string memory);
    function setAddress(string memory key, address addr) external;
    function acceptOwnership() external;
    function addPair(address _pairAddress) external;
    function registeredPairs(uint256) external view returns (address);
    function pairsByName(string memory) external view returns (address);
    function registeredPairsLength() external view returns (uint256);
    function getAllPairAddresses() external view returns (address[] memory _deployedPairsArray);
    function defaultSwappers(uint256 _index) external view returns (address);
    function owner() external view returns (address);
    function pendingOwner() external view returns (address);
    function renounceOwnership() external;
    function transferOwnership(address newOwner) external;
    function claimFees(address _pair) external;
    function claimRewards(address _pair) external;
    function claimInsuranceRewards() external;
    function withdrawTo(address _asset, uint256 _amount, address _to) external;
    function mint(address receiver, uint256 amount) external;
    function burn(address target, uint256 amount) external;
    function liquidationHandler() external view returns(address);
    function feeDeposit() external view returns(address);
    function redemptionHandler() external view returns(address);
    function rewardHandler() external view returns(address);
    function insurancePool() external view returns(address);
    function setRewardClaimer(address _newAddress) external;
    function setRedemptionHandler(address _newAddress) external;
    function setFeeDeposit(address _newAddress) external;
    function setLiquidationHandler(address _newAddress) external;
    function setInsurancePool(address _newAddress) external;
    function setStaker(address _newAddress) external;
    function setTreasury(address _newAddress) external;
    function staker() external view returns(address);
    function treasury() external view returns(address);
    function l2manager() external view returns(address);
    function setRewardHandler(address _newAddress) external;
    function setVestManager(address _newAddress) external;
    function setDefaultSwappers(address[] memory _swappers) external;
    function collateralId(address _collateral) external view returns(uint256);

    error NameMustBeUnique();
    error ProtectedKey(string key);
}

Read Contract

approved 0xd8b964e6 → bool
operator 0x570ca735 → address
owner 0x8da5cb5b → address
permastaker 0xc7a6ef57 → address
registry 0x7b103999 → address
voter 0x46c96aac → address

Write Contract 7 functions

These functions modify contract state and require a wallet transaction to execute.

claimAndStake 0xcb1a4fc0
No parameters
returns: uint256
createNewProposal 0x5af16f69
tuple[] _payload
string _description
returns: uint256
safeExecute 0xab23c345
address _target
bytes _data
returns: bytes
setApproved 0x84cfb680
address _account
bool _approved
setOperator 0xb3ab15fb
address _operator
voteForProposal 0x045c6ce0
uint256 _proposalId
voteForProposal 0xec803255
uint256 _proposalId
uint256 _pctYes
uint256 _pctNo

Recent Transactions

No transactions found for this address