Address Contract Verified
Address
0x3419b3FfF84b5FBF6Eec061bA3f9b72809c955Bf
Balance
0 ETH
Nonce
1
Code Size
8004 bytes
Creator
0x2C2dc95F...613C at tx 0xef137266...cb7ae8
Indexed Transactions
0
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