Source Code
Overview
SOPH Balance
0 SOPH
More Info
ContractCreator
Multichain Info
N/A
Latest 5 from a total of 5 transactions
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
215539 | 16 mins ago | 0 SOPH | ||||
215539 | 16 mins ago | 0 SOPH | ||||
205115 | 26 hrs ago | 0 SOPH | ||||
205115 | 26 hrs ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185015 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185014 | 3 days ago | 0 SOPH | ||||
185012 | 3 days ago | 0 SOPH | ||||
185012 | 3 days ago | 0 SOPH | ||||
185012 | 3 days ago | 0 SOPH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
AethirCheckerProxy
Compiler Version
v0.8.28+commit.7893614a
ZkSolc Version
v1.5.6
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.28; import "contracts/common/proxies/ProxyAccessControl.sol"; /** * @title AethirChecker * @dev This contract is a proxy for the AethirChecker implementation. It allows for upgradability by pointing to different implementation contracts over time. The contract uses access control inherited from ProxyAccessControl. */ contract AethirCheckerProxy is ProxyAccessControl { /** * @notice Constructor to initialize the proxy with the implementation address and initialization data * @param impl_ The address of the initial implementation contract * @param initData_ Optional data to initialize the proxy's state via a delegatecall to the implementation contract */ constructor(address impl_, bytes memory initData_) ProxyAccessControl(impl_, initData_) {} }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.8.0; import "contracts/common/proxies/UpgradeableAccessControl.sol"; /** * @title ProxyAccessControl * @notice This contract is a proxy with role-based access control, allowing an admin to upgrade the implementation contract. * @dev Inherits from `UpgradeableAccessControl` for role-based permissions and supports upgradeability through `replaceImplementation`. */ contract ProxyAccessControl is UpgradeableAccessControl { /** * @notice Initializes the ProxyAccessControl contract with the initial implementation address and optional initialization data. * @dev Calls `replaceImplementation` to set up the implementation and execute any provided initialization logic. * @param impl_ The address of the initial implementation contract. * @param initData_ Optional initialization data to be passed to the new implementation using delegatecall. */ constructor(address impl_, bytes memory initData_) { replaceImplementation(impl_, initData_); } /** * @notice Fallback function that delegates all calls to the current implementation. * @dev Uses `delegatecall` to execute functions in the context of the implementation. */ fallback() external virtual payable { bytes32 slot = IMPLEMENTATION_SLOT; assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), sload(slot), 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @notice Receives Ether sent to the contract. * @dev Used to handle direct ETH transfers without data. */ receive() external virtual payable { (bool result,) = implementation().delegatecall(""); assembly { returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.8.0; import "contracts/access/AccessControl.sol"; /** * @title UpgradeableAccessControl * @dev Allows the default admin to replace the implementation address with a new one and optionally initialize it. */ contract UpgradeableAccessControl is AccessControl { /// @notice The slot containing the address of the current implementation contract. bytes32 public constant IMPLEMENTATION_SLOT = keccak256("IMPLEMENTATION_SLOT"); /** * @notice Constructs the UpgradeableAccessControl contract. */ constructor() { _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); } /** * @notice Replaces the current implementation with a new one and optionally initializes it. * @dev Can only be called by an account with the DEFAULT_ADMIN_ROLE. If `initData_` is provided, a delegatecall is made to the new implementation with that data. * @param impl_ The address of the new implementation contract. * @param initData_ Optional initialization data to delegatecall to the new implementation. */ function replaceImplementation(address impl_, bytes memory initData_) public onlyRole(DEFAULT_ADMIN_ROLE) { require(impl_ != address(0), "impl_ is zero address"); bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot, impl_) } if (initData_.length != 0) { (bool success,) = impl_.delegatecall(initData_); require(success, "init failed"); } } /** * @notice Returns the current implementation address * @return The current implementation address */ function implementation() public view returns (address) { address implementation_; bytes32 slot = IMPLEMENTATION_SLOT; assembly { implementation_ := sload(slot) } return implementation_; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol) pragma solidity ^0.8.20; import {IAccessControl} from "contracts/access/IAccessControl.sol"; import {Context} from "contracts/utils/Context.sol"; import {ERC165} from "contracts/utils/introspection/ERC165.sol"; /** * @dev Contract module that allows children to implement role-based access * control mechanisms. This is a lightweight version that doesn't allow enumerating role * members except through off-chain means by accessing the contract event logs. Some * applications may benefit from on-chain enumerability, for those cases see * {AccessControlEnumerable}. * * Roles are referred to by their `bytes32` identifier. These should be exposed * in the external API and be unique. The best way to achieve this is by * using `public constant` hash digests: * * ```solidity * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); * ``` * * Roles can be used to represent a set of permissions. To restrict access to a * function call, use {hasRole}: * * ```solidity * function foo() public { * require(hasRole(MY_ROLE, msg.sender)); * ... * } * ``` * * Roles can be granted and revoked dynamically via the {grantRole} and * {revokeRole} functions. Each role has an associated admin role, and only * accounts that have a role's admin role can call {grantRole} and {revokeRole}. * * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means * that only accounts with this role will be able to grant or revoke other * roles. More complex role relationships can be created by using * {_setRoleAdmin}. * * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to * grant and revoke this role. Extra precautions should be taken to secure * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} * to enforce additional security measures for this role. */ abstract contract AccessControl is Context, IAccessControl, ERC165 { struct RoleData { mapping(address account => bool) hasRole; bytes32 adminRole; } mapping(bytes32 role => RoleData) private _roles; bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; /** * @dev Modifier that checks that an account has a specific role. Reverts * with an {AccessControlUnauthorizedAccount} error including the required role. */ modifier onlyRole(bytes32 role) { _checkRole(role); _; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId); } /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) public view virtual returns (bool) { return _roles[role].hasRole[account]; } /** * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()` * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier. */ function _checkRole(bytes32 role) internal view virtual { _checkRole(role, _msgSender()); } /** * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account` * is missing `role`. */ function _checkRole(bytes32 role, address account) internal view virtual { if (!hasRole(role, account)) { revert AccessControlUnauthorizedAccount(account, role); } } /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) { return _roles[role].adminRole; } /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. * * Requirements: * * - the caller must have ``role``'s admin role. * * May emit a {RoleGranted} event. */ function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) { _grantRole(role, account); } /** * @dev Revokes `role` from `account`. * * If `account` had been granted `role`, emits a {RoleRevoked} event. * * Requirements: * * - the caller must have ``role``'s admin role. * * May emit a {RoleRevoked} event. */ function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) { _revokeRole(role, account); } /** * @dev Revokes `role` from the calling account. * * Roles are often managed via {grantRole} and {revokeRole}: this function's * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * * If the calling account had been revoked `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `callerConfirmation`. * * May emit a {RoleRevoked} event. */ function renounceRole(bytes32 role, address callerConfirmation) public virtual { if (callerConfirmation != _msgSender()) { revert AccessControlBadConfirmation(); } _revokeRole(role, callerConfirmation); } /** * @dev Sets `adminRole` as ``role``'s admin role. * * Emits a {RoleAdminChanged} event. */ function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { bytes32 previousAdminRole = getRoleAdmin(role); _roles[role].adminRole = adminRole; emit RoleAdminChanged(role, previousAdminRole, adminRole); } /** * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted. * * Internal function without access restriction. * * May emit a {RoleGranted} event. */ function _grantRole(bytes32 role, address account) internal virtual returns (bool) { if (!hasRole(role, account)) { _roles[role].hasRole[account] = true; emit RoleGranted(role, account, _msgSender()); return true; } else { return false; } } /** * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked. * * Internal function without access restriction. * * May emit a {RoleRevoked} event. */ function _revokeRole(bytes32 role, address account) internal virtual returns (bool) { if (hasRole(role, account)) { _roles[role].hasRole[account] = false; emit RoleRevoked(role, account, _msgSender()); return true; } else { return false; } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol) pragma solidity ^0.8.20; /** * @dev External interface of AccessControl declared to support ERC165 detection. */ interface IAccessControl { /** * @dev The `account` is missing a role. */ error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); /** * @dev The caller of a function is not the expected one. * * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}. */ error AccessControlBadConfirmation(); /** * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` * * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite * {RoleAdminChanged} not being emitted signaling this. */ event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); /** * @dev Emitted when `account` is granted `role`. * * `sender` is the account that originated the contract call, an admin role * bearer except when using {AccessControl-_setupRole}. */ event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Emitted when `account` is revoked `role`. * * `sender` is the account that originated the contract call: * - if using `revokeRole`, it is the admin role bearer * - if using `renounceRole`, it is the role bearer (i.e. `account`) */ event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) external view returns (bool); /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {AccessControl-_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) external view returns (bytes32); /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function grantRole(bytes32 role, address account) external; /** * @dev Revokes `role` from `account`. * * If `account` had been granted `role`, emits a {RoleRevoked} event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function revokeRole(bytes32 role, address account) external; /** * @dev Revokes `role` from the calling account. * * Roles are often managed via {grantRole} and {revokeRole}: this function's * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * * If the calling account had been granted `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `callerConfirmation`. */ function renounceRole(bytes32 role, address callerConfirmation) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol) pragma solidity ^0.8.20; import {IERC165} from "contracts/utils/introspection/IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
{ "evmVersion": "shanghai", "optimizer": { "enabled": true, "runs": 200 }, "libraries": { "AethirCheckerProxy.sol": {} }, "remappings": [ "@openzeppelin=./node_modules/@openzeppelin", "OpenZeppelin=C:/Users/tomcb/.brownie/packages/OpenZeppelin", "paulrberg=C:/Users/tomcb/.brownie/packages/paulrberg" ], "metadata": { "appendCBOR": false, "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "abi" ] } } }
[{"inputs":[{"internalType":"address","name":"impl_","type":"address"},{"internalType":"bytes","name":"initData_","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IMPLEMENTATION_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"},{"internalType":"bytes","name":"initData_","type":"bytes"}],"name":"replaceImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100014ba61c763ae0f1e2e7508b657eb99a6ef683b0e119924b91b4380ee8e80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000034d8bf286d25f9dfa1ca3634dfd542176c48e528000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0002000000000002000400000000000200000060031002700000011d0430019700010000004103550000008003000039000000400030043f00000001002001900000002a0000c13d000000000341034f000000040040008c0000004e0000413d000000000201043b000000e0022002700000012b0020009c0000005a0000213d000001320020009c000001300000a13d000001330020009c000002180000613d000001340020009c000002570000613d000001350020009c000001970000c13d000000440040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000000402100370000000000302043b0000002401100370000000000101043b000001200010009c0000004c0000213d0000000002000411000000000021004b0000029f0000c13d0000000001030019046e04030000040f00000000010000190000046f0001042e0000000002000416000000000002004b0000004c0000c13d0000001f024000390000011e022001970000008002200039000000400020043f0000001f0540018f0000011f0640019800000080026000390000003a0000613d000000000701034f000000007807043c0000000003830436000000000023004b000000360000c13d000000000005004b000000470000613d000000000161034f0000000303500210000000000502043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000400040008c0000004c0000413d000000800600043d000001200060009c000000760000a13d00000000010000190000047000010430000000000004004b000001970000c13d0000012701000041000000000201041a0000000001000414000000040020008c000001000000c13d00000001020000390000000001000031000000000001004b0000010c0000613d000001280000013d0000012c0020009c0000013b0000a13d0000012d0020009c000002210000613d0000012e0020009c000002990000613d0000012f0020009c000001970000c13d000000440040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000002402100370000000000202043b000001200020009c0000004c0000213d0000000401100370000000000101043b000300000001001d000400000002001d046e03b80000040f046e03d90000040f00000003010000290000000402000029046e04030000040f00000000010000190000046f0001042e000000a00200043d000001210020009c0000004c0000213d0000001f01200039000000000041004b000000000300001900000122030080410000012201100197000000000001004b00000000050000190000012205004041000001220010009c000000000503c019000000000005004b0000004c0000c13d00000080012000390000000001010433000001210010009c0000012a0000213d0000001f0310003900000148033001970000003f033000390000014803300197000000400800043d0000000003380019000000000083004b00000000050000390000000105004039000001210030009c0000012a0000213d00000001005001900000012a0000c13d0000008004400039000000400030043f0000000007180436000000a0022000390000000003210019000000000043004b0000004c0000213d000300000006001d000000000001004b000000a80000613d000000000300001900000000043700190000000005230019000000000505043300000000005404350000002003300039000000000013004b000000a10000413d00000000018100190000002001100039000000000001043500000000010004110000012001100197000400000001001d000000000010043f0000012301000041000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039000100000007001d000200000008001d046e04640000040f00000001002001900000004c0000613d000000000101043b000000000101041a000000ff00100190000000e00000c13d0000000401000029000000000010043f0000012301000041000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f00000001002001900000004c0000613d000000000101043b000000000201041a000001490220019700000001022001bf000000000021041b00000000010004140000011d0010009c0000011d01008041000000c00110021000000125011001c70000800d0200003900000004030000390000012604000041000000000500001900000004060000290000000007000411046e045f0000040f00000001002001900000004c0000613d0000000401000029000000000010043f0000012301000041000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000204000029000000030300002900000001002001900000004c0000613d000000000101043b000000000101041a000000ff00100190000001900000613d0000012000300198000002ee0000613d0000012701000041000000000031041b0000000002040433000000000002004b000003510000613d0000000001000414000000040030008c000003330000c13d00000001020000390000000001000031000003460000013d0000011d0010009c0000011d01008041000000c001100210046e04690000040f000000000301034f000000010220018f000100000001035500000060011002700000011d0010019d0000011d01100197000000000001004b000001280000c13d00000148041001980000001f0510018f000001150000613d000000000603034f0000000007000019000000006806043c0000000007870436000000000047004b000001110000c13d000000000005004b000001220000613d000000000343034f0000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f00000000003404350000011d0010009c0000011d010080410000006001100210000000000002004b000001ef0000c13d0000047000010430000001210010009c000001f20000a13d0000014101000041000000000010043f0000004101000039000000040010043f00000142010000410000047000010430000001360020009c0000023d0000613d000001370020009c000001970000c13d0000000001000416000000000001004b0000004c0000c13d0000012701000041000000800010043f00000138010000410000046f0001042e000001300020009c0000024e0000613d000001310020009c000001970000c13d000000440040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000000402100370000000000702043b000001200070009c0000004c0000213d0000002402100370000000000302043b000001210030009c0000004c0000213d0000002302300039000000000042004b0000004c0000813d0000000405300039000000000251034f000000000202043b000001210020009c0000012a0000213d0000001f0620003900000148066001970000003f0660003900000148066001970000013a0060009c0000012a0000213d0000008006600039000000400060043f000000800020043f00000000032300190000002403300039000000000043004b0000004c0000213d000400000007001d0000002003500039000000000331034f00000148042001980000001f0520018f000000a0014000390000016e0000613d000000a006000039000000000703034f000000007807043c0000000006860436000000000016004b0000016a0000c13d000000000005004b0000017b0000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000a001200039000000000001043500000000010004110000012001100197000000000010043f0000012301000041000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f000000010020019000000004030000290000004c0000613d000000000101043b000000000101041a000000ff00100190000002ec0000c13d0000012901000041000000000010043f0000000001000411000000040010043f000000240000043f0000012a0100004100000470000104300000001f0540018f0000011f02400198000001a00000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000027004b0000019c0000c13d000000000005004b000001ad0000613d000000000121034f0000000305500210000000000602043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001204350000012701000041000000000201041a0000000001000414000000040020008c000001ca0000c13d000000000100003100000148021001980000001f0410018f000001bc0000613d000000000503034f0000000006000019000000005705043c0000000006760436000000000026004b000001b80000c13d000000000004004b000001ec0000613d000000000323034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000001ec0000013d00000060034002100000011d0010009c0000011d01008041000000c001100210000000000131019f046e04690000040f000100000001035500000060031002700000001f0530018f0000011d0030019d0000011f04300198000001dc0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000001d80000c13d000000000005004b000001e90000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000011d013001970000000100200190000001f00000613d0000011d0010009c0000011d0100804100000060011002100000046f0001042e000000600110021000000470000104300000001f0510003900000148055001970000003f055000390000014806500197000000400500043d0000000006650019000000000056004b00000000070000390000000107004039000001210060009c0000012a0000213d00000001007001900000012a0000c13d000000400060043f000000000715043600000148051001980000001f0610018f00000000045700190000020a0000613d000000000803034f000000008908043c0000000007970436000000000047004b000002060000c13d000000000006004b0000010c0000613d000000000553034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000010c0000013d000000240040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000000401100370000000000101043b046e03b80000040f000002360000013d000000440040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000002402100370000000000202043b000001200020009c0000004c0000213d0000000401100370000000000101043b000000000010043f000000200000043f000400000002001d046e04520000040f0000000402000029046e03c90000040f000000000101041a000000ff001001900000000001000039000000010100c039000000400200043d00000000001204350000011d0020009c0000011d02008041000000400120021000000139011001c70000046f0001042e000000240040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000000401100370000000000101043b00000145001001980000004c0000c13d000001460010009c00000000020000390000000102006039000001470010009c00000001022061bf000000800020043f00000138010000410000046f0001042e0000000001000416000000000001004b0000004c0000c13d0000012701000041000000000101041a0000012001100197000000800010043f00000138010000410000046f0001042e000000440040008c0000004c0000413d0000000002000416000000000002004b0000004c0000c13d0000000402100370000000000302043b0000002401100370000000000101043b000400000001001d000001200010009c0000004c0000213d000000000030043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039000300000003001d046e04640000040f00000001002001900000004c0000613d000000000101043b0000000101100039000000000101041a000200000001001d000000000010043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f00000001002001900000004c0000613d0000000002000411000000000101043b0000012002200197000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f000000030300002900000001002001900000004c0000613d000000000101043b000000000101041a000000ff00100190000002a30000c13d0000012901000041000000000010043f0000000001000411000000040010043f0000000201000029000000240010043f0000012a0100004100000470000104300000000001000416000000000001004b0000004c0000c13d000000800000043f00000138010000410000046f0001042e0000014301000041000000000010043f00000144010000410000047000010430000000000030043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f00000001002001900000004c0000613d000000000101043b0000000402000029000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f000000030300002900000001002001900000004c0000613d000000000101043b000000000101041a000000ff00100190000003900000c13d000000000030043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f00000001002001900000004c0000613d000000000101043b0000000402000029000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f000000030500002900000001002001900000004c0000613d000000000101043b000000000201041a000001490220019700000001022001bf000000000021041b00000000010004140000011d0010009c0000011d01008041000000c00110021000000125011001c70000800d020000390000000403000039000001260400004100000004060000290000000007000411046e045f0000040f00000001002001900000004c0000613d000003900000013d000000000003004b000002ff0000c13d000000400100043d0000004402100039000001400300004100000000003204350000002402100039000000150300003900000000003204350000013e0200004100000000002104350000000402100039000000200300003900000000003204350000011d0010009c0000011d0100804100000040011002100000013f011001c700000470000104300000012701000041000000000031041b000000800100043d000000000001004b000003900000613d0000000002000414000000040030008c0000037f0000c13d0000000001000032000003900000613d000001210010009c0000012a0000213d0000001f0210003900000148022001970000003f022000390000014803200197000000400200043d0000000003320019000000000023004b00000000040000390000000104004039000001210030009c0000012a0000213d00000001004001900000012a0000c13d000000400030043f000000000512043600000148021001980000001f0310018f00000000012500190000000104000367000003240000613d000000000604034f000000006706043c0000000005750436000000000015004b000003200000c13d000000000003004b000003900000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f000000000021043500000000010000190000046f0001042e0000011d0020009c0000011d02008041000000600220021000000001030000290000011d0030009c0000011d030080410000004003300210000000000232019f0000011d0010009c0000011d01008041000000c001100210000000000121019f0000000302000029046e04690000040f000000010220018f000100000001035500000060011002700000011d0010019d0000011d01100197000000000001004b000003560000c13d000000000002004b000003510000c13d000000400100043d00000044021000390000013d03000041000000000032043500000024021000390000000b03000039000002f40000013d00000020010000390000010000100443000001200000044300000128010000410000046f0001042e000001210010009c0000012a0000213d0000001f0310003900000148033001970000003f033000390000014804300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000001210040009c0000012a0000213d00000001005001900000012a0000c13d000000400040043f000000000613043600000148031001980000001f0410018f00000000013600190000000105000367000003710000613d000000000705034f000000007807043c0000000006860436000000000016004b0000036d0000c13d000000000004004b000003480000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000003480000013d0000011d0020009c0000011d02008041000000c0022002100000011d0010009c0000011d010080410000006001100210000000000121019f0000013b011001c70000000402000029046e04690000040f000100000001035500000060031002700000011d0030019d0000011d03300198000003920000c13d00000001002001900000034a0000613d00000000010000190000046f0001042e0000001f043000390000011e044001970000003f044000390000013c04400197000000400500043d0000000004450019000000000054004b00000000060000390000000106004039000001210040009c0000012a0000213d00000001006001900000012a0000c13d000000400040043f0000001f0430018f00000000063504360000011f053001980000000003560019000003aa0000613d000000000701034f000000007807043c0000000006860436000000000036004b000003a60000c13d000000000004004b0000038e0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000038e0000013d000000000010043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000003c70000613d000000000101043b0000000101100039000000000101041a000000000001042d000000000100001900000470000104300000012002200197000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000003d70000613d000000000101043b000000000001042d000000000100001900000470000104300001000000000002000100000001001d000000000010043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000003f90000613d0000000002000411000000000101043b0000012002200197000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000003f90000613d000000000101043b000000000101041a000000ff00100190000003fb0000613d000000000001042d000000000100001900000470000104300000012901000041000000000010043f0000000001000411000000040010043f0000000101000029000000240010043f0000012a0100004100000470000104300002000000000002000100000002001d000200000001001d000000000010043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000004500000613d000000000101043b00000001020000290000012002200197000100000002001d000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000004500000613d000000000101043b000000000101041a000000ff001001900000044f0000613d0000000201000029000000000010043f000000200000043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000004500000613d000000000101043b0000000102000029000000000020043f000000200010043f00000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f0000000100200190000004500000613d000000000101043b000000000201041a0000014902200197000000000021041b00000000010004140000011d0010009c0000011d01008041000000c00110021000000125011001c70000800d02000039000000040300003900000000070004110000014a0400004100000002050000290000000106000029046e045f0000040f0000000100200190000004500000613d000000000001042d0000000001000019000004700001043000000000010004140000011d0010009c0000011d01008041000000c00110021000000124011001c70000801002000039046e04640000040f00000001002001900000045d0000613d000000000101043b000000000001042d0000000001000019000004700001043000000462002104210000000102000039000000000001042d0000000002000019000000000001042d00000467002104230000000102000039000000000001042d0000000002000019000000000001042d0000046c002104250000000102000039000000000001042d0000000002000019000000000001042d0000046e000004320000046f0001042e000004700001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5020000000000000000000000000000000000004000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0df603533e14e17222e047634a2b3457fe346d27e294cedf9d21d74e5feea4a0460000000200000000000000000000000000000040000001000000000000000000e2517d3f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000000000005c60da1a0000000000000000000000000000000000000000000000000000000091d148530000000000000000000000000000000000000000000000000000000091d1485400000000000000000000000000000000000000000000000000000000a217fddf00000000000000000000000000000000000000000000000000000000d547741f000000000000000000000000000000000000000000000000000000005c60da1b000000000000000000000000000000000000000000000000000000007b743e6b00000000000000000000000000000000000000000000000000000000248a9ca200000000000000000000000000000000000000000000000000000000248a9ca3000000000000000000000000000000000000000000000000000000002f2ff15d0000000000000000000000000000000000000000000000000000000036568abe0000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000086fc0c700000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f0000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000003ffffffe0696e6974206661696c656400000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000696d706c5f206973207a65726f206164647265737300000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006697b23200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffc9a7000000000000000000000000000000000000000000000000000000007965db0b00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000034d8bf286d25f9dfa1ca3634dfd542176c48e528000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : impl_ (address): 0x34d8bF286d25F9dFA1CA3634Dfd542176C48e528
Arg [1] : initData_ (bytes): 0x8129fc1c
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000034d8bf286d25f9dfa1ca3634dfd542176c48e528
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 8129fc1c00000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.