Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Has Permission | 350331 | 6 days ago | 0 ETH | ||||
Has Permission | 350331 | 6 days ago | 0 ETH | ||||
Get Permission M... | 350331 | 6 days ago | 0 ETH | ||||
Has Permission | 350331 | 6 days ago | 0 ETH | ||||
Has Permission | 350331 | 6 days ago | 0 ETH | ||||
Has Permission | 350331 | 6 days ago | 0 ETH | ||||
Get Permission M... | 350331 | 6 days ago | 0 ETH | ||||
Validate DG Prop... | 350331 | 6 days ago | 0 ETH | ||||
Proxy_get Admin | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Role | 350291 | 6 days ago | 0 ETH | ||||
Has Permission | 350291 | 6 days ago | 0 ETH | ||||
Has Permission | 350291 | 6 days ago | 0 ETH | ||||
Get Permission M... | 350291 | 6 days ago | 0 ETH | ||||
Has Permission | 350291 | 6 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DGLaunchRolesValidatorHoodi
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; import {LidoAddressesHoodi} from "./LidoAddressesHoodi.sol"; import {RolesValidatorBase} from "../RolesValidatorBase.sol"; import {IRolesValidator} from "../interfaces/IRolesValidator.sol"; import {IWithdrawalVaultProxy} from "../interfaces/IWithdrawalVaultProxy.sol"; import {AragonRoles} from "../libraries/AragonRoles.sol"; import {OZRoles} from "../libraries/OZRoles.sol"; contract DGLaunchRolesValidatorHoodi is RolesValidatorBase, LidoAddressesHoodi, IRolesValidator { using OZRoles for OZRoles.Context; using AragonRoles for AragonRoles.Context; error InvalidWithdrawalsVaultProxyAdmin(address actual, address expected); address public immutable ADMIN_EXECUTOR; address public immutable RESEAL_MANAGER; constructor(address adminExecutor, address resealManager) RolesValidatorBase(ACL) { ADMIN_EXECUTOR = adminExecutor; RESEAL_MANAGER = resealManager; } function validateVotingLaunchPhase() external { // Lido _validate(LIDO, "STAKING_CONTROL_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(UNLIMITED_STAKE)); _validate(LIDO, "RESUME_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); _validate(LIDO, "PAUSE_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); _validate(LIDO, "UNSAFE_CHANGE_DEPOSITED_VALIDATORS_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); _validate(LIDO, "STAKING_PAUSE_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); // DAOKernel _validate(KERNEL, "APP_MANAGER_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); // Voting _validate(VOTING, "UNSAFELY_MODIFY_VOTE_TIME_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); // TokenManager _validate(TOKEN_MANAGER, "MINT_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); _validate(TOKEN_MANAGER, "REVOKE_VESTINGS_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); _validate(TOKEN_MANAGER, "BURN_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); _validate(TOKEN_MANAGER, "ISSUE_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); // Finance _validate(FINANCE, "CHANGE_PERIOD_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); _validate(FINANCE, "CHANGE_BUDGETS_ROLE", AragonRoles.manager(VOTING).granted(VOTING)); // Aragon EVMScriptRegistry _validate(EVM_SCRIPT_REGISTRY, "REGISTRY_MANAGER_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); _validate(EVM_SCRIPT_REGISTRY, "REGISTRY_ADD_EXECUTOR_ROLE", AragonRoles.manager(AGENT).revoked(VOTING)); // CuratedModule _validate( CURATED_MODULE, "STAKING_ROUTER_ROLE", AragonRoles.manager(AGENT).granted(STAKING_ROUTER).granted(DEV_EOA_1).granted(DEV_EOA_2) ); _validate( CURATED_MODULE, "MANAGE_NODE_OPERATOR_ROLE", AragonRoles.manager(AGENT).granted(AGENT).granted(DEV_EOA_1).granted(DEV_EOA_2) ); _validate( CURATED_MODULE, "SET_NODE_OPERATOR_LIMIT_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(DEV_EOA_1).granted(DEV_EOA_2).granted( EVM_SCRIPT_EXECUTOR ) ); _validate( CURATED_MODULE, "MANAGE_SIGNING_KEYS", AragonRoles.manager(AGENT).revoked(VOTING).granted(DEV_EOA_1).granted(DEV_EOA_2) ); // SDVTModule _validate( SDVT_MODULE, "STAKING_ROUTER_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(STAKING_ROUTER).granted(AGENT).granted(DEV_EOA_2).granted( DEV_EOA_1 ).granted(EVM_SCRIPT_EXECUTOR) ); _validate( SDVT_MODULE, "MANAGE_NODE_OPERATOR_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(DEV_EOA_2).granted(DEV_EOA_1).granted( EVM_SCRIPT_EXECUTOR ) ); _validate( SDVT_MODULE, "SET_NODE_OPERATOR_LIMIT_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(EVM_SCRIPT_EXECUTOR).granted(DEV_EOA_1).granted( DEV_EOA_2 ) ); // ACL _validate(ACL, "CREATE_PERMISSIONS_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(AGENT)); // Agent // The `revoked(VOTING)` check is intentionally replaced with `granted(VOTING) in the checks below. // At the time of vote execution, this permission is still granted to Voting and is intended to be revoked // via a DualGovernance proposal. The corresponding validation is performed in `validateDGProposalLaunchPhase()` // as the final step of the Dual Governance launch process. _validate( AGENT, "RUN_SCRIPT_ROLE", AragonRoles.manager(AGENT).granted(VOTING).granted(ADMIN_EXECUTOR).granted(AGENT_MANAGER) ); _validate(AGENT, "EXECUTE_ROLE", AragonRoles.manager(AGENT).granted(VOTING).granted(ADMIN_EXECUTOR)); // WithdrawalQueue _validate(WITHDRAWAL_QUEUE, "PAUSE_ROLE", OZRoles.granted(RESEAL_MANAGER).granted(ORACLES_GATE_SEAL)); _validate(WITHDRAWAL_QUEUE, "RESUME_ROLE", OZRoles.granted(RESEAL_MANAGER).granted(AGENT)); // VEBO _validate(VEBO, "PAUSE_ROLE", OZRoles.granted(RESEAL_MANAGER).granted(ORACLES_GATE_SEAL)); _validate(VEBO, "RESUME_ROLE", OZRoles.granted(RESEAL_MANAGER).granted(AGENT)); // AllowedTokensRegistry _validate(ALLOWED_TOKENS_REGISTRY, "DEFAULT_ADMIN_ROLE", OZRoles.revoked(AGENT).granted(VOTING)); _validate(ALLOWED_TOKENS_REGISTRY, "ADD_TOKEN_TO_ALLOWED_LIST_ROLE", OZRoles.revoked(AGENT)); _validate(ALLOWED_TOKENS_REGISTRY, "REMOVE_TOKEN_FROM_ALLOWED_LIST_ROLE", OZRoles.revoked(AGENT)); // WithdrawalVault address withdrawalVaultProxyAdmin = IWithdrawalVaultProxy(WITHDRAWAL_VAULT).proxy_getAdmin(); if (withdrawalVaultProxyAdmin != AGENT) { revert InvalidWithdrawalsVaultProxyAdmin(withdrawalVaultProxyAdmin, AGENT); } } function validateDGProposalLaunchPhase() external { // Agent _validate( AGENT, "RUN_SCRIPT_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(ADMIN_EXECUTOR).granted(AGENT_MANAGER) ); _validate(AGENT, "EXECUTE_ROLE", AragonRoles.manager(AGENT).revoked(VOTING).granted(ADMIN_EXECUTOR)); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; contract LidoAddressesHoodi { address public constant ACL = 0x78780e70Eae33e2935814a327f7dB6c01136cc62; address public constant LIDO = 0x3508A952176b3c15387C97BE809eaffB1982176a; address public constant KERNEL = 0xA48DF029Fd2e5FCECB3886c5c2F60e3625A1E87d; address public constant VOTING = 0x49B3512c44891bef83F8967d075121Bd1b07a01B; address public constant TOKEN_MANAGER = 0x8ab4a56721Ad8e68c6Ad86F9D9929782A78E39E5; address public constant FINANCE = 0x254Ae22bEEba64127F0e59fe8593082F3cd13f6b; address public constant AGENT = 0x0534aA41907c9631fae990960bCC72d75fA7cfeD; address public constant EVM_SCRIPT_REGISTRY = 0xe4D32427b1F9b12ab89B142eD3714dCAABB3f38c; address public constant CURATED_MODULE = 0x5cDbE1590c083b5A2A64427fAA63A7cfDB91FbB5; address public constant SDVT_MODULE = 0x0B5236BECA68004DB89434462DfC3BB074d2c830; address public constant ALLOWED_TOKENS_REGISTRY = 0x40Db7E8047C487bD8359289272c717eA3C34D1D3; address public constant WITHDRAWAL_VAULT = 0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2; address public constant WITHDRAWAL_QUEUE = 0xfe56573178f1bcdf53F01A6E9977670dcBBD9186; address public constant VEBO = 0x8664d394C2B3278F26A1B44B967aEf99707eeAB2; address public constant STAKING_ROUTER = 0xCc820558B39ee15C7C45B59390B503b83fb499A8; address public constant ORACLES_GATE_SEAL = 0x2168Ea6D948Ab49c3D34c667A7e02F92369F3A9C; address public constant EVM_SCRIPT_EXECUTOR = 0x79a20FD0FA36453B2F45eAbab19bfef43575Ba9E; // Dev Addresses And Contracts address public constant DEV_EOA_1 = 0xE28f573b732632fdE03BD5507A7d475383e8512E; address public constant DEV_EOA_2 = 0xF865A1d43D36c713B4DA085f32b7d1e9739B9275; address public constant DEV_EOA_3 = 0x4022E0754d0cB6905B54306105D3346d1547988b; address public constant UNLIMITED_STAKE = 0x064A4D64040bFD52D0d1dC7f42eA799cb0a8AC40; // Additional grantee of the Agent.RUN_SCRIPT_ROLE, which may be used // for development purposes or as a fallback recovery mechanism. address public constant AGENT_MANAGER = 0xD500a8aDB182F55741E267730dfbfb4F1944C205; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; import {AragonRoles} from "./libraries/AragonRoles.sol"; import {OZRoles} from "./libraries/OZRoles.sol"; import {IACL} from "./interfaces/IACL.sol"; import {IOZ} from "./interfaces/IOZ.sol"; /// @title RolesValidatorBase /// @dev Abstract contract for validating roles in both Aragon and OpenZeppelin access control systems. /// This base contract provides functionality to check if entities have the correct permissions /// according to predefined role configurations. abstract contract RolesValidatorBase { event OZRoleValidated(address entity, string roleName, address[] grantedTo, address[] revokedFrom); event AragonPermissionValidated( address entity, string roleName, address manager, address[] grantedTo, address[] revokedFrom ); error OZRoleGranted(address entity, string roleName, address app); error OZRoleNotGranted(address entity, string roleName, address app); error AragonPermissionInvalidManager( address entity, string roleName, address expectedManager, address actualManager ); error AragonPermissionGranted(address entity, string roleName, address app); error AragonPermissionNotGranted(address entity, string roleName, address app); IACL private immutable ACL_CONTRACT; constructor(address acl) { ACL_CONTRACT = IACL(acl); } /// @dev Validates Aragon role permissions for a specific entity. /// Checks that: /// 1. The role has the correct manager. /// 2. All addresses in grantedTo list have the permission. /// 3. All addresses in revokedFrom list do not have the permission. /// @param entity The address of the contract entity to validate. /// @param roleName The string name of the role being validated. /// @param role The context containing manager, granted and revoked addresses for the role. function _validate(address entity, string memory roleName, AragonRoles.Context memory role) internal { bytes32 roleNameHash = keccak256(bytes(roleName)); address roleManager = ACL_CONTRACT.getPermissionManager(entity, roleNameHash); if (roleManager != role.manager) { revert AragonPermissionInvalidManager(entity, roleName, role.manager, roleManager); } address[] memory grantedTo = role.rolesTracker.grantedTo; for (uint256 i = 0; i < grantedTo.length; ++i) { bool isPermissionGranted = ACL_CONTRACT.hasPermission(grantedTo[i], entity, roleNameHash); if (!isPermissionGranted) { revert AragonPermissionNotGranted(entity, roleName, grantedTo[i]); } } address[] memory revokedFrom = role.rolesTracker.revokedFrom; for (uint256 i = 0; i < revokedFrom.length; ++i) { bool isPermissionGranted = ACL_CONTRACT.hasPermission(revokedFrom[i], entity, roleNameHash); if (isPermissionGranted) { revert AragonPermissionGranted(entity, roleName, revokedFrom[i]); } } emit AragonPermissionValidated(entity, roleName, role.manager, grantedTo, revokedFrom); } /// @dev Validates OpenZeppelin role assignments for a specific entity. /// Checks that: /// 1. All addresses in grantedTo list have the role. /// 2. All addresses in revokedFrom list do not have the role. /// NOTE: Handles special case for DEFAULT_ADMIN_ROLE (uses bytes32(0)). /// @param entity The address of the contract entity to validate. /// @param roleName The string name of the role being validated. /// @param role The context containing granted and revoked addresses for the role. function _validate(address entity, string memory roleName, OZRoles.Context memory role) internal { bytes32 roleHash = keccak256(bytes(roleName)) == keccak256(bytes("DEFAULT_ADMIN_ROLE")) ? bytes32(0) : keccak256(bytes(roleName)); address[] memory grantedTo = role.rolesTracker.grantedTo; for (uint256 i = 0; i < grantedTo.length; ++i) { bool isRoleGranted = IOZ(entity).hasRole(roleHash, grantedTo[i]); if (!isRoleGranted) { revert OZRoleNotGranted(entity, roleName, grantedTo[i]); } } address[] memory revokedFrom = role.rolesTracker.revokedFrom; for (uint256 i = 0; i < revokedFrom.length; ++i) { bool isRoleGranted = IOZ(entity).hasRole(roleHash, revokedFrom[i]); if (isRoleGranted) { revert OZRoleGranted(entity, roleName, revokedFrom[i]); } } emit OZRoleValidated(entity, roleName, grantedTo, revokedFrom); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; interface IRolesValidator { function validateVotingLaunchPhase() external; function validateDGProposalLaunchPhase() external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; interface IWithdrawalVaultProxy { function proxy_changeAdmin(address admin) external payable; function proxy_getAdmin() external returns (address); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; import {RolesTracker} from "./RolesTracker.sol"; library AragonRoles { using RolesTracker for RolesTracker.Context; struct Context { address manager; RolesTracker.Context rolesTracker; } function manager(address _manager) internal pure returns (Context memory ctx) { ctx.manager = _manager; } function granted(Context memory self, address grantedTo) internal pure returns (Context memory) { self.rolesTracker.addGrantedTo(grantedTo); return self; } function revoked(Context memory self, address revokedFrom) internal pure returns (Context memory) { self.rolesTracker.addRevokedFrom(revokedFrom); return self; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; import {RolesTracker} from "./RolesTracker.sol"; library OZRoles { using RolesTracker for RolesTracker.Context; struct Context { RolesTracker.Context rolesTracker; } function granted(address grantedTo) internal pure returns (Context memory ctx) { ctx.rolesTracker.addGrantedTo(grantedTo); } function granted(Context memory self, address grantedTo) internal pure returns (Context memory) { self.rolesTracker.addGrantedTo(grantedTo); return self; } function revoked(address revokedFrom) internal pure returns (Context memory ctx) { ctx.rolesTracker.addRevokedFrom(revokedFrom); } function revoked(Context memory self, address revokedFrom) internal pure returns (Context memory) { self.rolesTracker.addRevokedFrom(revokedFrom); return self; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; interface IACL { function hasPermission(address _who, address _where, bytes32 _what) external view returns (bool); function createPermission(address _entity, address _app, bytes32 _role, address _manager) external; function grantPermission(address _entity, address _app, bytes32 _role) external; function revokePermission(address _entity, address _app, bytes32 _role) external; function setPermissionManager(address _newManager, address _app, bytes32 _role) external; function getPermissionManager(address _app, bytes32 _role) external view returns (address); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; interface IOZ { function hasRole(bytes32 role, address account) external view returns (bool); function getRoleAdmin(bytes32 role) external view returns (bytes32); function grantRole(bytes32 role, address account) external; function revokeRole(bytes32 role, address account) external; function renounceRole(bytes32 role, address account) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.26; library RolesTracker { struct Context { address[] grantedTo; address[] revokedFrom; } function addGrantedTo(Context memory self, address grantedTo) internal pure { address[] memory prevGrantedTo = self.grantedTo; uint256 prevGrantedToCount = self.grantedTo.length; self.grantedTo = new address[](prevGrantedToCount + 1); _copyAddressesArray({origin: prevGrantedTo, destination: self.grantedTo}); self.grantedTo[prevGrantedToCount] = grantedTo; } function addRevokedFrom(Context memory self, address revokedFrom) internal pure { address[] memory prevRevokedFrom = self.revokedFrom; uint256 prevRevokedFromCount = self.revokedFrom.length; self.revokedFrom = new address[](prevRevokedFromCount + 1); _copyAddressesArray({origin: prevRevokedFrom, destination: self.revokedFrom}); self.revokedFrom[prevRevokedFromCount] = revokedFrom; } function _copyAddressesArray(address[] memory origin, address[] memory destination) private pure { for (uint256 i = 0; i < origin.length; ++i) { destination[i] = origin[i]; } } }
{ "remappings": [ "@openzeppelin/=lib/openzeppelin-contracts/", "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "eth-gas-reporter/=node_modules/eth-gas-reporter/", "forge-std/=lib/forge-std/src/", "hardhat/=node_modules/hardhat/", "kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "cancun", "viaIR": false, "libraries": {} }
Contract ABI
API[{"inputs":[{"internalType":"address","name":"adminExecutor","type":"address"},{"internalType":"address","name":"resealManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"entity","type":"address"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"address","name":"app","type":"address"}],"name":"AragonPermissionGranted","type":"error"},{"inputs":[{"internalType":"address","name":"entity","type":"address"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"address","name":"expectedManager","type":"address"},{"internalType":"address","name":"actualManager","type":"address"}],"name":"AragonPermissionInvalidManager","type":"error"},{"inputs":[{"internalType":"address","name":"entity","type":"address"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"address","name":"app","type":"address"}],"name":"AragonPermissionNotGranted","type":"error"},{"inputs":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"expected","type":"address"}],"name":"InvalidWithdrawalsVaultProxyAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"entity","type":"address"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"address","name":"app","type":"address"}],"name":"OZRoleGranted","type":"error"},{"inputs":[{"internalType":"address","name":"entity","type":"address"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"address","name":"app","type":"address"}],"name":"OZRoleNotGranted","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"entity","type":"address"},{"indexed":false,"internalType":"string","name":"roleName","type":"string"},{"indexed":false,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"address[]","name":"grantedTo","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"revokedFrom","type":"address[]"}],"name":"AragonPermissionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"entity","type":"address"},{"indexed":false,"internalType":"string","name":"roleName","type":"string"},{"indexed":false,"internalType":"address[]","name":"grantedTo","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"revokedFrom","type":"address[]"}],"name":"OZRoleValidated","type":"event"},{"inputs":[],"name":"ACL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADMIN_EXECUTOR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AGENT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AGENT_MANAGER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ALLOWED_TOKENS_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CURATED_MODULE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_EOA_1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_EOA_2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_EOA_3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_SCRIPT_EXECUTOR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_SCRIPT_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FINANCE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KERNEL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIDO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLES_GATE_SEAL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESEAL_MANAGER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SDVT_MODULE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_ROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN_MANAGER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNLIMITED_STAKE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VEBO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTING","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAWAL_QUEUE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAWAL_VAULT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validateDGProposalLaunchPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validateVotingLaunchPhase","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e060405234801561000f575f80fd5b5060405161227c38038061227c83398101604081905261002e91610078565b7378780e70eae33e2935814a327f7db6c01136cc626080526001600160a01b0391821660a0521660c0526100a9565b80516001600160a01b0381168114610073575f80fd5b919050565b5f8060408385031215610089575f80fd5b6100928361005d565b91506100a06020840161005d565b90509250929050565b60805160a05160c0516121636101195f395f81816102910152818161128b0152818161130c0152818161138801526113fe01525f818161039a015281816104a1015281816105330152818161116c01526111ed01525f818161168901528181611748015261186601526121635ff3fe608060405234801561000f575f80fd5b5060043610610187575f3560e01c806390a72277116100d9578063cbc0228f11610093578063e0956e0f1161006e578063e0956e0f146103f2578063f7d6f75b1461040d578063ff5ccbe214610428578063ffb1947d14610430575f80fd5b8063cbc0228f14610395578063cd85c721146103bc578063d0282bf7146103d7575f80fd5b806390a722771461030457806395d6153c1461031f57806398b4a29d1461033a578063ab484e1414610355578063ba416fd114610370578063c8a5f8e61461037a575f80fd5b80634f86473d116101445780636a51eadc1161011f5780636a51eadc1461028c5780637af53532146102b35780638486902d146102ce5780638b21f170146102e9575f80fd5b80634f86473d14610242578063661bf5b114610256578063699340f414610271575f80fd5b80630205d3301461018b578063037c6514146101c25780630bdc5e95146101dd578063269e1d1a146101f85780633c9a04061461020c5780634485a5f014610227575b5f80fd5b6101a673e28f573b732632fde03bd5507a7d475383e8512e81565b6040516001600160a01b03909116815260200160405180910390f35b6101a673a48df029fd2e5fcecb3886c5c2f60e3625a1e87d81565b6101a6730b5236beca68004db89434462dfc3bb074d2c83081565b6101a65f805160206120a483398151915281565b6101a673d500a8adb182f55741e267730dfbfb4f1944c20581565b6101a6734022e0754d0cb6905b54306105d3346d1547988b81565b6101a65f805160206120e783398151915281565b6101a67379a20fd0fa36453b2f45eabab19bfef43575ba9e81565b6101a673fe56573178f1bcdf53f01a6e9977670dcbbd918681565b6101a67f000000000000000000000000000000000000000000000000000000000000000081565b6101a67378780e70eae33e2935814a327f7db6c01136cc6281565b6101a673254ae22beeba64127f0e59fe8593082f3cd13f6b81565b6101a6733508a952176b3c15387c97be809eaffb1982176a81565b6101a6734473dcddbf77679a643bdb654dbd86d67f8d32f281565b6101a67340db7e8047c487bd8359289272c717ea3c34d1d381565b6101a6738664d394c2b3278f26a1b44b967aef99707eeab281565b6101a6735cdbe1590c083b5a2a64427faa63a7cfdb91fbb581565b61037861044b565b005b6101a673cc820558b39ee15c7c45b59390b503b83fb499a881565b6101a67f000000000000000000000000000000000000000000000000000000000000000081565b6101a6732168ea6d948ab49c3d34c667a7e02f92369f3a9c81565b6101a673e4d32427b1f9b12ab89b142ed3714dcaabb3f38c81565b6101a6738ab4a56721ad8e68c6ad86f9d9929782a78e39e581565b6101a673f865a1d43d36c713b4da085f32b7d1e9739b927581565b61037861057b565b6101a673064a4d64040bfd52d0d1dc7f42ea799cb0a8ac4081565b6104f85f805160206120e78339815191526040518060400160405280600f81526020016e52554e5f5343524950545f524f4c4560881b8152506104f373d500a8adb182f55741e267730dfbfb4f1944c2056104ed7f00000000000000000000000000000000000000000000000000000000000000006104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b90611623565b90611643565b61165a565b6105795f805160206120e78339815191526040518060400160405280600c81526020016b455845435554455f524f4c4560a01b8152506104f37f00000000000000000000000000000000000000000000000000000000000000006104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b565b6105ff733508a952176b3c15387c97be809eaffb1982176a604051806040016040528060148152602001735354414b494e475f434f4e54524f4c5f524f4c4560601b8152506104f373064a4d64040bfd52d0d1dc7f42ea799cb0a8ac406104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610662733508a952176b3c15387c97be809eaffb1982176a6040518060400160405280600b81526020016a524553554d455f524f4c4560a81b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6106c4733508a952176b3c15387c97be809eaffb1982176a6040518060400160405280600a81526020016950415553455f524f4c4560b01b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b61071c733508a952176b3c15387c97be809eaffb1982176a604051806060016040528060278152602001612107602791396104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610786733508a952176b3c15387c97be809eaffb1982176a604051806040016040528060128152602001715354414b494e475f50415553455f524f4c4560701b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6107ee73a48df029fd2e5fcecb3886c5c2f60e3625a1e87d6040518060400160405280601081526020016f4150505f4d414e414745525f524f4c4560801b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b61085c5f805160206120a48339815191526040518060400160405280601e81526020017f554e534146454c595f4d4f444946595f564f54455f54494d455f524f4c4500008152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b6108bd738ab4a56721ad8e68c6ad86f9d9929782a78e39e5604051806040016040528060098152602001684d494e545f524f4c4560b81b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610929738ab4a56721ad8e68c6ad86f9d9929782a78e39e5604051806040016040528060148152602001735245564f4b455f56455354494e47535f524f4c4560601b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b61098a738ab4a56721ad8e68c6ad86f9d9929782a78e39e5604051806040016040528060098152602001684255524e5f524f4c4560b81b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b6109ec738ab4a56721ad8e68c6ad86f9d9929782a78e39e56040518060400160405280600a81526020016949535355455f524f4c4560b01b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610a5673254ae22beeba64127f0e59fe8593082f3cd13f6b604051806040016040528060128152602001714348414e47455f504552494f445f524f4c4560701b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610ac173254ae22beeba64127f0e59fe8593082f3cd13f6b604051806040016040528060138152602001724348414e47455f425544474554535f524f4c4560681b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610b2e73e4d32427b1f9b12ab89b142ed3714dcaabb3f38c6040518060400160405280601581526020017452454749535452595f4d414e414745525f524f4c4560581b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610ba373e4d32427b1f9b12ab89b142ed3714dcaabb3f38c6040518060400160405280601a81526020017f52454749535452595f4144445f4558454355544f525f524f4c450000000000008152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610c45735cdbe1590c083b5a2a64427faa63a7cfdb91fbb5604051806040016040528060138152602001725354414b494e475f524f555445525f524f4c4560681b8152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed73cc820558b39ee15c7c45b59390b503b83fb499a86104ed5f805160206120e783398151915261160b565b610ce6735cdbe1590c083b5a2a64427faa63a7cfdb91fbb5604051806040016040528060198152602001784d414e4147455f4e4f44455f4f50455241544f525f524f4c4560381b8152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed5f805160206120e78339815191526104ed5f805160206120e783398151915261160b565b610da3735cdbe1590c083b5a2a64427faa63a7cfdb91fbb56040518060400160405280601c81526020017f5345545f4e4f44455f4f50455241544f525f4c494d49545f524f4c45000000008152506104f37379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed73f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610e3e735cdbe1590c083b5a2a64427faa63a7cfdb91fbb5604051806040016040528060138152602001724d414e4147455f5349474e494e475f4b45595360681b8152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610f1a730b5236beca68004db89434462dfc3bb074d2c830604051806040016040528060138152602001725354414b494e475f524f555445525f524f4c4560681b8152506104f37379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed73f865a1d43d36c713b4da085f32b7d1e9739b92756104ed5f805160206120e78339815191526104ed73cc820558b39ee15c7c45b59390b503b83fb499a86104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610fd3730b5236beca68004db89434462dfc3bb074d2c830604051806040016040528060198152602001784d414e4147455f4e4f44455f4f50455241544f525f524f4c4560381b8152506104f37379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed73f865a1d43d36c713b4da085f32b7d1e9739b92756104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b611090730b5236beca68004db89434462dfc3bb074d2c8306040518060400160405280601c81526020017f5345545f4e4f44455f4f50455241544f525f4c494d49545f524f4c45000000008152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed7379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6111167378780e70eae33e2935814a327f7db6c01136cc626040518060400160405280601781526020017f4352454154455f5045524d495353494f4e535f524f4c450000000000000000008152506104f35f805160206120e78339815191526104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6111b25f805160206120e78339815191526040518060400160405280600f81526020016e52554e5f5343524950545f524f4c4560881b8152506104f373d500a8adb182f55741e267730dfbfb4f1944c2056104ed7f00000000000000000000000000000000000000000000000000000000000000006104ed5f805160206120a48339815191526104ed5f805160206120e783398151915261160b565b6112335f805160206120e78339815191526040518060400160405280600c81526020016b455845435554455f524f4c4560a01b8152506104f37f00000000000000000000000000000000000000000000000000000000000000006104ed5f805160206120a48339815191526104ed5f805160206120e783398151915261160b565b6112ba73fe56573178f1bcdf53f01a6e9977670dcbbd91866040518060400160405280600a81526020016950415553455f524f4c4560b01b8152506112b5732168ea6d948ab49c3d34c667a7e02f92369f3a9c6112af7f00000000000000000000000000000000000000000000000000000000000000006119b8565b906119e1565b611a06565b61133073fe56573178f1bcdf53f01a6e9977670dcbbd91866040518060400160405280600b81526020016a524553554d455f524f4c4560a81b8152506112b55f805160206120e78339815191526112af7f00000000000000000000000000000000000000000000000000000000000000006119b8565b6113ac738664d394c2b3278f26a1b44b967aef99707eeab26040518060400160405280600a81526020016950415553455f524f4c4560b01b8152506112b5732168ea6d948ab49c3d34c667a7e02f92369f3a9c6112af7f00000000000000000000000000000000000000000000000000000000000000006119b8565b611422738664d394c2b3278f26a1b44b967aef99707eeab26040518060400160405280600b81526020016a524553554d455f524f4c4560a81b8152506112b55f805160206120e78339815191526112af7f00000000000000000000000000000000000000000000000000000000000000006119b8565b61148c7340db7e8047c487bd8359289272c717ea3c34d1d36040518060400160405280601281526020017144454641554c545f41444d494e5f524f4c4560701b8152506112b55f805160206120a48339815191526112af5f805160206120e7833981519152611c98565b6114f07340db7e8047c487bd8359289272c717ea3c34d1d36040518060400160405280601e81526020017f4144445f544f4b454e5f544f5f414c4c4f5745445f4c4953545f524f4c4500008152506112b55f805160206120e7833981519152611c98565b6115377340db7e8047c487bd8359289272c717ea3c34d1d36040518060600160405280602381526020016120c4602391396112b55f805160206120e7833981519152611c98565b5f734473dcddbf77679a643bdb654dbd86d67f8d32f26001600160a01b031663abe5e5876040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611589573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ad9190611e68565b90506001600160a01b0381165f805160206120e7833981519152146116085760405163131717f160e21b81526001600160a01b03821660048201525f805160206120e783398151915260248201526044015b60405180910390fd5b50565b611613611e2c565b6001600160a01b03909116815290565b61162b611e2c565b602083015161163a9083611cb8565b50815b92915050565b61164b611e2c565b602083015161163a9083611d5b565b8151602083012060405163b190572760e01b81526001600160a01b038581166004830152602482018390525f917f00000000000000000000000000000000000000000000000000000000000000009091169063b190572790604401602060405180830381865afa1580156116d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f49190611e68565b9050825f01516001600160a01b0316816001600160a01b03161461173457825160405163ea81cfb160e01b81526115ff9187918791908590600401611ec3565b6020830151515f5b815181101561184f575f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d6712d884848151811061178757611787611f07565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908b16602482015260448101889052606401602060405180830381865afa1580156117e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118079190611f1b565b90508061184657878784848151811061182257611822611f07565b6020026020010151604051630ede00d360e41b81526004016115ff93929190611f3a565b5060010161173c565b5060208085015101515f5b815181101561196e575f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d6712d88484815181106118a5576118a5611f07565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908c16602482015260448101899052606401602060405180830381865afa158015611901573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119259190611f1b565b9050801561196557888884848151811061194157611941611f07565b602002602001015160405163bd208db960e01b81526004016115ff93929190611f3a565b5060010161185a565b5084516040517f78961cda85a099db82a9fb489460a38706427cf4c005a56fa1232bc48768155c916119a7918a918a9187908790611fb8565b60405180910390a150505050505050565b60408051606080820183526020820181815292820152818152906119dc9083611d5b565b919050565b60408051606080820183526020820181815292820152908152825161163a9083611d5b565b60408051808201909152601281527144454641554c545f41444d494e5f524f4c4560701b6020918201528251908301205f907f1effbbff9c66c5e59634f24fe842750c60d18891155c32dd155fc2d661a4c86d14611a6a5782516020840120611a6c565b5f5b8251519091505f5b8151811015611b5e575f866001600160a01b03166391d1485485858581518110611aa057611aa0611f07565b60200260200101516040518363ffffffff1660e01b8152600401611ad79291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015611af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b169190611f1b565b905080611b55578686848481518110611b3157611b31611f07565b6020026020010151604051634ddb9bb960e11b81526004016115ff93929190611f3a565b50600101611a74565b508251602001515f5b8151811015611c52575f876001600160a01b03166391d1485486858581518110611b9357611b93611f07565b60200260200101516040518363ffffffff1660e01b8152600401611bca9291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015611be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c099190611f1b565b90508015611c49578787848481518110611c2557611c25611f07565b6020026020010151604051636e41f9d160e11b81526004016115ff93929190611f3a565b50600101611b67565b507fffa51fe76331999e547a3fd5c698396ee6860fe0ad7e3c12e3b73a9c05903d3d86868484604051611c88949392919061201c565b60405180910390a1505050505050565b60408051606080820183526020820181815292820152818152906119dc90835b60208201518051611cca816001612070565b67ffffffffffffffff811115611ce257611ce261208f565b604051908082528060200260200182016040528015611d0b578160200160208202803683370190505b5060208501819052611d1e908390611dd0565b8284602001518281518110611d3557611d35611f07565b60200260200101906001600160a01b031690816001600160a01b03168152505050505050565b81518051611d6a816001612070565b67ffffffffffffffff811115611d8257611d8261208f565b604051908082528060200260200182016040528015611dab578160200160208202803683370190505b50808552611dba908390611dd0565b82845f01518281518110611d3557611d35611f07565b5f5b8251811015611e2757828181518110611ded57611ded611f07565b6020026020010151828281518110611e0757611e07611f07565b6001600160a01b0390921660209283029190910190910152600101611dd2565b505050565b60405180604001604052805f6001600160a01b03168152602001611e63604051806040016040528060608152602001606081525090565b905290565b5f60208284031215611e78575f80fd5b81516001600160a01b0381168114611e8e575f80fd5b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03851681526080602082018190525f90611ee690830186611e95565b6001600160a01b039485166040840152929093166060909101529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f2b575f80fd5b81518015158114611e8e575f80fd5b6001600160a01b03841681526060602082018190525f90611f5d90830185611e95565b905060018060a01b0383166040830152949350505050565b5f8151808452602084019350602083015f5b82811015611fae5781516001600160a01b0316865260209586019590910190600101611f87565b5093949350505050565b6001600160a01b038616815260a0602082018190525f90611fdb90830187611e95565b6001600160a01b03861660408401528281036060840152611ffc8186611f75565b905082810360808401526120108185611f75565b98975050505050505050565b6001600160a01b03851681526080602082018190525f9061203f90830186611e95565b82810360408401526120518186611f75565b905082810360608401526120658185611f75565b979650505050505050565b8082018082111561163d57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffdfe00000000000000000000000049b3512c44891bef83f8967d075121bd1b07a01b52454d4f56455f544f4b454e5f46524f4d5f414c4c4f5745445f4c4953545f524f4c450000000000000000000000000534aa41907c9631fae990960bcc72d75fa7cfed554e534146455f4348414e47455f4445504f53495445445f56414c494441544f52535f524f4c45a264697066735822122015254c40013efd46258d312f2d77f1889844049cc29d7a6644898d0089dc48b964736f6c634300081a00330000000000000000000000000ecc17597d292271836691358b22340b78f3035b00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610187575f3560e01c806390a72277116100d9578063cbc0228f11610093578063e0956e0f1161006e578063e0956e0f146103f2578063f7d6f75b1461040d578063ff5ccbe214610428578063ffb1947d14610430575f80fd5b8063cbc0228f14610395578063cd85c721146103bc578063d0282bf7146103d7575f80fd5b806390a722771461030457806395d6153c1461031f57806398b4a29d1461033a578063ab484e1414610355578063ba416fd114610370578063c8a5f8e61461037a575f80fd5b80634f86473d116101445780636a51eadc1161011f5780636a51eadc1461028c5780637af53532146102b35780638486902d146102ce5780638b21f170146102e9575f80fd5b80634f86473d14610242578063661bf5b114610256578063699340f414610271575f80fd5b80630205d3301461018b578063037c6514146101c25780630bdc5e95146101dd578063269e1d1a146101f85780633c9a04061461020c5780634485a5f014610227575b5f80fd5b6101a673e28f573b732632fde03bd5507a7d475383e8512e81565b6040516001600160a01b03909116815260200160405180910390f35b6101a673a48df029fd2e5fcecb3886c5c2f60e3625a1e87d81565b6101a6730b5236beca68004db89434462dfc3bb074d2c83081565b6101a65f805160206120a483398151915281565b6101a673d500a8adb182f55741e267730dfbfb4f1944c20581565b6101a6734022e0754d0cb6905b54306105d3346d1547988b81565b6101a65f805160206120e783398151915281565b6101a67379a20fd0fa36453b2f45eabab19bfef43575ba9e81565b6101a673fe56573178f1bcdf53f01a6e9977670dcbbd918681565b6101a67f00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b81565b6101a67378780e70eae33e2935814a327f7db6c01136cc6281565b6101a673254ae22beeba64127f0e59fe8593082f3cd13f6b81565b6101a6733508a952176b3c15387c97be809eaffb1982176a81565b6101a6734473dcddbf77679a643bdb654dbd86d67f8d32f281565b6101a67340db7e8047c487bd8359289272c717ea3c34d1d381565b6101a6738664d394c2b3278f26a1b44b967aef99707eeab281565b6101a6735cdbe1590c083b5a2a64427faa63a7cfdb91fbb581565b61037861044b565b005b6101a673cc820558b39ee15c7c45b59390b503b83fb499a881565b6101a67f0000000000000000000000000ecc17597d292271836691358b22340b78f3035b81565b6101a6732168ea6d948ab49c3d34c667a7e02f92369f3a9c81565b6101a673e4d32427b1f9b12ab89b142ed3714dcaabb3f38c81565b6101a6738ab4a56721ad8e68c6ad86f9d9929782a78e39e581565b6101a673f865a1d43d36c713b4da085f32b7d1e9739b927581565b61037861057b565b6101a673064a4d64040bfd52d0d1dc7f42ea799cb0a8ac4081565b6104f85f805160206120e78339815191526040518060400160405280600f81526020016e52554e5f5343524950545f524f4c4560881b8152506104f373d500a8adb182f55741e267730dfbfb4f1944c2056104ed7f0000000000000000000000000ecc17597d292271836691358b22340b78f3035b6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b90611623565b90611643565b61165a565b6105795f805160206120e78339815191526040518060400160405280600c81526020016b455845435554455f524f4c4560a01b8152506104f37f0000000000000000000000000ecc17597d292271836691358b22340b78f3035b6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b565b6105ff733508a952176b3c15387c97be809eaffb1982176a604051806040016040528060148152602001735354414b494e475f434f4e54524f4c5f524f4c4560601b8152506104f373064a4d64040bfd52d0d1dc7f42ea799cb0a8ac406104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610662733508a952176b3c15387c97be809eaffb1982176a6040518060400160405280600b81526020016a524553554d455f524f4c4560a81b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6106c4733508a952176b3c15387c97be809eaffb1982176a6040518060400160405280600a81526020016950415553455f524f4c4560b01b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b61071c733508a952176b3c15387c97be809eaffb1982176a604051806060016040528060278152602001612107602791396104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610786733508a952176b3c15387c97be809eaffb1982176a604051806040016040528060128152602001715354414b494e475f50415553455f524f4c4560701b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6107ee73a48df029fd2e5fcecb3886c5c2f60e3625a1e87d6040518060400160405280601081526020016f4150505f4d414e414745525f524f4c4560801b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b61085c5f805160206120a48339815191526040518060400160405280601e81526020017f554e534146454c595f4d4f444946595f564f54455f54494d455f524f4c4500008152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b6108bd738ab4a56721ad8e68c6ad86f9d9929782a78e39e5604051806040016040528060098152602001684d494e545f524f4c4560b81b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610929738ab4a56721ad8e68c6ad86f9d9929782a78e39e5604051806040016040528060148152602001735245564f4b455f56455354494e47535f524f4c4560601b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b61098a738ab4a56721ad8e68c6ad86f9d9929782a78e39e5604051806040016040528060098152602001684255524e5f524f4c4560b81b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b6109ec738ab4a56721ad8e68c6ad86f9d9929782a78e39e56040518060400160405280600a81526020016949535355455f524f4c4560b01b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610a5673254ae22beeba64127f0e59fe8593082f3cd13f6b604051806040016040528060128152602001714348414e47455f504552494f445f524f4c4560701b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610ac173254ae22beeba64127f0e59fe8593082f3cd13f6b604051806040016040528060138152602001724348414e47455f425544474554535f524f4c4560681b8152506104f35f805160206120a48339815191526104ed5f805160206120a483398151915261160b565b610b2e73e4d32427b1f9b12ab89b142ed3714dcaabb3f38c6040518060400160405280601581526020017452454749535452595f4d414e414745525f524f4c4560581b8152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610ba373e4d32427b1f9b12ab89b142ed3714dcaabb3f38c6040518060400160405280601a81526020017f52454749535452595f4144445f4558454355544f525f524f4c450000000000008152506104f35f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610c45735cdbe1590c083b5a2a64427faa63a7cfdb91fbb5604051806040016040528060138152602001725354414b494e475f524f555445525f524f4c4560681b8152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed73cc820558b39ee15c7c45b59390b503b83fb499a86104ed5f805160206120e783398151915261160b565b610ce6735cdbe1590c083b5a2a64427faa63a7cfdb91fbb5604051806040016040528060198152602001784d414e4147455f4e4f44455f4f50455241544f525f524f4c4560381b8152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed5f805160206120e78339815191526104ed5f805160206120e783398151915261160b565b610da3735cdbe1590c083b5a2a64427faa63a7cfdb91fbb56040518060400160405280601c81526020017f5345545f4e4f44455f4f50455241544f525f4c494d49545f524f4c45000000008152506104f37379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed73f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610e3e735cdbe1590c083b5a2a64427faa63a7cfdb91fbb5604051806040016040528060138152602001724d414e4147455f5349474e494e475f4b45595360681b8152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610f1a730b5236beca68004db89434462dfc3bb074d2c830604051806040016040528060138152602001725354414b494e475f524f555445525f524f4c4560681b8152506104f37379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed73f865a1d43d36c713b4da085f32b7d1e9739b92756104ed5f805160206120e78339815191526104ed73cc820558b39ee15c7c45b59390b503b83fb499a86104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b610fd3730b5236beca68004db89434462dfc3bb074d2c830604051806040016040528060198152602001784d414e4147455f4e4f44455f4f50455241544f525f524f4c4560381b8152506104f37379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed73f865a1d43d36c713b4da085f32b7d1e9739b92756104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b611090730b5236beca68004db89434462dfc3bb074d2c8306040518060400160405280601c81526020017f5345545f4e4f44455f4f50455241544f525f4c494d49545f524f4c45000000008152506104f373f865a1d43d36c713b4da085f32b7d1e9739b92756104ed73e28f573b732632fde03bd5507a7d475383e8512e6104ed7379a20fd0fa36453b2f45eabab19bfef43575ba9e6104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6111167378780e70eae33e2935814a327f7db6c01136cc626040518060400160405280601781526020017f4352454154455f5045524d495353494f4e535f524f4c450000000000000000008152506104f35f805160206120e78339815191526104ed5f805160206120a48339815191526104e75f805160206120e783398151915261160b565b6111b25f805160206120e78339815191526040518060400160405280600f81526020016e52554e5f5343524950545f524f4c4560881b8152506104f373d500a8adb182f55741e267730dfbfb4f1944c2056104ed7f0000000000000000000000000ecc17597d292271836691358b22340b78f3035b6104ed5f805160206120a48339815191526104ed5f805160206120e783398151915261160b565b6112335f805160206120e78339815191526040518060400160405280600c81526020016b455845435554455f524f4c4560a01b8152506104f37f0000000000000000000000000ecc17597d292271836691358b22340b78f3035b6104ed5f805160206120a48339815191526104ed5f805160206120e783398151915261160b565b6112ba73fe56573178f1bcdf53f01a6e9977670dcbbd91866040518060400160405280600a81526020016950415553455f524f4c4560b01b8152506112b5732168ea6d948ab49c3d34c667a7e02f92369f3a9c6112af7f00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b6119b8565b906119e1565b611a06565b61133073fe56573178f1bcdf53f01a6e9977670dcbbd91866040518060400160405280600b81526020016a524553554d455f524f4c4560a81b8152506112b55f805160206120e78339815191526112af7f00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b6119b8565b6113ac738664d394c2b3278f26a1b44b967aef99707eeab26040518060400160405280600a81526020016950415553455f524f4c4560b01b8152506112b5732168ea6d948ab49c3d34c667a7e02f92369f3a9c6112af7f00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b6119b8565b611422738664d394c2b3278f26a1b44b967aef99707eeab26040518060400160405280600b81526020016a524553554d455f524f4c4560a81b8152506112b55f805160206120e78339815191526112af7f00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b6119b8565b61148c7340db7e8047c487bd8359289272c717ea3c34d1d36040518060400160405280601281526020017144454641554c545f41444d494e5f524f4c4560701b8152506112b55f805160206120a48339815191526112af5f805160206120e7833981519152611c98565b6114f07340db7e8047c487bd8359289272c717ea3c34d1d36040518060400160405280601e81526020017f4144445f544f4b454e5f544f5f414c4c4f5745445f4c4953545f524f4c4500008152506112b55f805160206120e7833981519152611c98565b6115377340db7e8047c487bd8359289272c717ea3c34d1d36040518060600160405280602381526020016120c4602391396112b55f805160206120e7833981519152611c98565b5f734473dcddbf77679a643bdb654dbd86d67f8d32f26001600160a01b031663abe5e5876040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611589573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ad9190611e68565b90506001600160a01b0381165f805160206120e7833981519152146116085760405163131717f160e21b81526001600160a01b03821660048201525f805160206120e783398151915260248201526044015b60405180910390fd5b50565b611613611e2c565b6001600160a01b03909116815290565b61162b611e2c565b602083015161163a9083611cb8565b50815b92915050565b61164b611e2c565b602083015161163a9083611d5b565b8151602083012060405163b190572760e01b81526001600160a01b038581166004830152602482018390525f917f00000000000000000000000078780e70eae33e2935814a327f7db6c01136cc629091169063b190572790604401602060405180830381865afa1580156116d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f49190611e68565b9050825f01516001600160a01b0316816001600160a01b03161461173457825160405163ea81cfb160e01b81526115ff9187918791908590600401611ec3565b6020830151515f5b815181101561184f575f7f00000000000000000000000078780e70eae33e2935814a327f7db6c01136cc626001600160a01b0316636d6712d884848151811061178757611787611f07565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908b16602482015260448101889052606401602060405180830381865afa1580156117e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118079190611f1b565b90508061184657878784848151811061182257611822611f07565b6020026020010151604051630ede00d360e41b81526004016115ff93929190611f3a565b5060010161173c565b5060208085015101515f5b815181101561196e575f7f00000000000000000000000078780e70eae33e2935814a327f7db6c01136cc626001600160a01b0316636d6712d88484815181106118a5576118a5611f07565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908c16602482015260448101899052606401602060405180830381865afa158015611901573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119259190611f1b565b9050801561196557888884848151811061194157611941611f07565b602002602001015160405163bd208db960e01b81526004016115ff93929190611f3a565b5060010161185a565b5084516040517f78961cda85a099db82a9fb489460a38706427cf4c005a56fa1232bc48768155c916119a7918a918a9187908790611fb8565b60405180910390a150505050505050565b60408051606080820183526020820181815292820152818152906119dc9083611d5b565b919050565b60408051606080820183526020820181815292820152908152825161163a9083611d5b565b60408051808201909152601281527144454641554c545f41444d494e5f524f4c4560701b6020918201528251908301205f907f1effbbff9c66c5e59634f24fe842750c60d18891155c32dd155fc2d661a4c86d14611a6a5782516020840120611a6c565b5f5b8251519091505f5b8151811015611b5e575f866001600160a01b03166391d1485485858581518110611aa057611aa0611f07565b60200260200101516040518363ffffffff1660e01b8152600401611ad79291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015611af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b169190611f1b565b905080611b55578686848481518110611b3157611b31611f07565b6020026020010151604051634ddb9bb960e11b81526004016115ff93929190611f3a565b50600101611a74565b508251602001515f5b8151811015611c52575f876001600160a01b03166391d1485486858581518110611b9357611b93611f07565b60200260200101516040518363ffffffff1660e01b8152600401611bca9291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015611be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c099190611f1b565b90508015611c49578787848481518110611c2557611c25611f07565b6020026020010151604051636e41f9d160e11b81526004016115ff93929190611f3a565b50600101611b67565b507fffa51fe76331999e547a3fd5c698396ee6860fe0ad7e3c12e3b73a9c05903d3d86868484604051611c88949392919061201c565b60405180910390a1505050505050565b60408051606080820183526020820181815292820152818152906119dc90835b60208201518051611cca816001612070565b67ffffffffffffffff811115611ce257611ce261208f565b604051908082528060200260200182016040528015611d0b578160200160208202803683370190505b5060208501819052611d1e908390611dd0565b8284602001518281518110611d3557611d35611f07565b60200260200101906001600160a01b031690816001600160a01b03168152505050505050565b81518051611d6a816001612070565b67ffffffffffffffff811115611d8257611d8261208f565b604051908082528060200260200182016040528015611dab578160200160208202803683370190505b50808552611dba908390611dd0565b82845f01518281518110611d3557611d35611f07565b5f5b8251811015611e2757828181518110611ded57611ded611f07565b6020026020010151828281518110611e0757611e07611f07565b6001600160a01b0390921660209283029190910190910152600101611dd2565b505050565b60405180604001604052805f6001600160a01b03168152602001611e63604051806040016040528060608152602001606081525090565b905290565b5f60208284031215611e78575f80fd5b81516001600160a01b0381168114611e8e575f80fd5b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03851681526080602082018190525f90611ee690830186611e95565b6001600160a01b039485166040840152929093166060909101529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f2b575f80fd5b81518015158114611e8e575f80fd5b6001600160a01b03841681526060602082018190525f90611f5d90830185611e95565b905060018060a01b0383166040830152949350505050565b5f8151808452602084019350602083015f5b82811015611fae5781516001600160a01b0316865260209586019590910190600101611f87565b5093949350505050565b6001600160a01b038616815260a0602082018190525f90611fdb90830187611e95565b6001600160a01b03861660408401528281036060840152611ffc8186611f75565b905082810360808401526120108185611f75565b98975050505050505050565b6001600160a01b03851681526080602082018190525f9061203f90830186611e95565b82810360408401526120518186611f75565b905082810360608401526120658185611f75565b979650505050505050565b8082018082111561163d57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffdfe00000000000000000000000049b3512c44891bef83f8967d075121bd1b07a01b52454d4f56455f544f4b454e5f46524f4d5f414c4c4f5745445f4c4953545f524f4c450000000000000000000000000534aa41907c9631fae990960bcc72d75fa7cfed554e534146455f4348414e47455f4445504f53495445445f56414c494441544f52535f524f4c45a264697066735822122015254c40013efd46258d312f2d77f1889844049cc29d7a6644898d0089dc48b964736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000ecc17597d292271836691358b22340b78f3035b00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b
-----Decoded View---------------
Arg [0] : adminExecutor (address): 0x0eCc17597D292271836691358B22340b78F3035B
Arg [1] : resealManager (address): 0x05172CbCDb7307228F781436b327679e4DAE166B
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000ecc17597d292271836691358b22340b78f3035b
Arg [1] : 00000000000000000000000005172cbcdb7307228f781436b327679e4dae166b
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.