Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 63 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 19590496 | 308 days ago | IN | 0.128 ETH | 0.00748125 | ||||
Deposit | 19523111 | 318 days ago | IN | 0.05 ETH | 0.00570148 | ||||
Deposit | 19516891 | 319 days ago | IN | 0.083 ETH | 0.00442948 | ||||
Deposit | 19484795 | 323 days ago | IN | 0.05 ETH | 0.0096508 | ||||
Deposit | 19305096 | 349 days ago | IN | 0.16 ETH | 0.00873597 | ||||
Deposit | 19300313 | 349 days ago | IN | 0.1 ETH | 0.00684289 | ||||
Deposit | 19296431 | 350 days ago | IN | 0.14 ETH | 0.0073705 | ||||
Deposit | 19295189 | 350 days ago | IN | 0.1 ETH | 0.00501736 | ||||
Deposit | 19294117 | 350 days ago | IN | 0.1 ETH | 0.00593074 | ||||
Deposit | 19292695 | 350 days ago | IN | 1.4 ETH | 0.00940876 | ||||
Deposit | 19292068 | 350 days ago | IN | 0.1 ETH | 0.00887118 | ||||
Deposit | 19289459 | 351 days ago | IN | 0.6 ETH | 0.00991651 | ||||
Deposit | 19282148 | 352 days ago | IN | 0.1 ETH | 0.00929273 | ||||
Deposit | 19278772 | 352 days ago | IN | 0.25 ETH | 0.01318406 | ||||
Deposit | 19278708 | 352 days ago | IN | 0.45 ETH | 0.01441528 | ||||
Deposit | 19277917 | 352 days ago | IN | 0.24 ETH | 0.00870526 | ||||
Deposit | 19274438 | 353 days ago | IN | 0.1 ETH | 0.00815795 | ||||
Deposit | 19272932 | 353 days ago | IN | 1 ETH | 0.00784449 | ||||
Deposit | 19270923 | 353 days ago | IN | 0.1 ETH | 0.00879994 | ||||
Deposit | 19267642 | 354 days ago | IN | 0.1 ETH | 0.0098166 | ||||
Deposit | 19267566 | 354 days ago | IN | 0.11 ETH | 0.00684151 | ||||
Deposit | 19266899 | 354 days ago | IN | 0.1025 ETH | 0.00579177 | ||||
Deposit | 19266390 | 354 days ago | IN | 0.1 ETH | 0.00692815 | ||||
Deposit | 19266347 | 354 days ago | IN | 0.1 ETH | 0.006883 | ||||
Deposit | 19266319 | 354 days ago | IN | 0.2 ETH | 0.00523491 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
19590496 | 308 days ago | 0.128 ETH | ||||
19523111 | 318 days ago | 0.05 ETH | ||||
19516891 | 319 days ago | 0.083 ETH | ||||
19484795 | 323 days ago | 0.05 ETH | ||||
19305096 | 349 days ago | 0.16 ETH | ||||
19300313 | 349 days ago | 0.1 ETH | ||||
19296431 | 350 days ago | 0.14 ETH | ||||
19295189 | 350 days ago | 0.1 ETH | ||||
19294117 | 350 days ago | 0.1 ETH | ||||
19292695 | 350 days ago | 1.4 ETH | ||||
19292068 | 350 days ago | 0.1 ETH | ||||
19289459 | 351 days ago | 0.6 ETH | ||||
19282148 | 352 days ago | 0.1 ETH | ||||
19278772 | 352 days ago | 0.25 ETH | ||||
19278708 | 352 days ago | 0.45 ETH | ||||
19277917 | 352 days ago | 0.24 ETH | ||||
19274438 | 353 days ago | 0.1 ETH | ||||
19272932 | 353 days ago | 1 ETH | ||||
19270923 | 353 days ago | 0.1 ETH | ||||
19267642 | 354 days ago | 0.1 ETH | ||||
19267566 | 354 days ago | 0.11 ETH | ||||
19266899 | 354 days ago | 0.1025 ETH | ||||
19266390 | 354 days ago | 0.1 ETH | ||||
19266347 | 354 days ago | 0.1 ETH | ||||
19266319 | 354 days ago | 0.2 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
EnderProxy
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @title OwnedUpgradeabilityProxy * @dev This contract combines an upgradeability proxy with basic authorization control functionalities */ contract EnderProxy { /** * @dev Event to show ownership has been transferred * @param previousOwner representing the address of the previous owner * @param newOwner representing the address of the new owner */ event ProxyOwnershipTransferred(address previousOwner, address newOwner); /** * @dev This event will be emitted every time the implementation gets upgraded * @param implementation representing the address of the upgraded implementation */ event Upgraded(address indexed implementation); // Storage position of the address of the maintenance boolean bytes32 private constant maintenancePosition = keccak256("com.Ender.proxy.maintenance"); // Storage position of the address of the current implementation bytes32 private constant implementationPosition = keccak256("com.Ender.proxy.implementation"); // Storage position of the owner of the contract bytes32 private constant proxyOwnerPosition = keccak256("com.Ender.proxy.owner"); /** * @dev the constructor sets the original owner of the contract to the sender account. */ constructor() { setUpgradeabilityOwner(msg.sender); } /** * @dev Tells if contract is on maintenance * @return _maintenance if contract is on maintenance */ function maintenance() public view returns (bool _maintenance) { bytes32 position = maintenancePosition; assembly { _maintenance := sload(position) } } /** * @dev Sets if contract is on maintenance */ function setMaintenance(bool _maintenance) external onlyProxyOwner { bytes32 position = maintenancePosition; assembly { sstore(position, _maintenance) } } /** * @dev Tells the address of the owner * @return owner the address of the owner */ function proxyOwner() public view returns (address owner) { bytes32 position = proxyOwnerPosition; assembly { owner := sload(position) } } /** * @dev Sets the address of the owner */ function setUpgradeabilityOwner(address newProxyOwner) internal { bytes32 position = proxyOwnerPosition; assembly { sstore(position, newProxyOwner) } } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferProxyOwnership(address newOwner) public onlyProxyOwner { require(newOwner != address(0), 'OwnedUpgradeabilityProxy: INVALID'); emit ProxyOwnershipTransferred(proxyOwner(), newOwner); setUpgradeabilityOwner(newOwner); } /* * @dev Allows the proxy owner to upgrade the current version of the proxy. * @param implementation representing the address of the new implementation to be set. */ function upgradeTo(address newImplementation) public onlyProxyOwner { _upgradeTo(newImplementation); } /* * @dev Allows the proxy owner to upgrade the current version of the proxy and call the new implementation * to initialize whatever is needed through a low level call. * @param implementation representing the address of the new implementation to be set. * @param data represents the msg.data to bet sent in the low level call. This parameter may include the function * signature of the implementation to be called with the needed payload */ function upgradeToAndCall(address newImplementation, bytes memory data) payable public onlyProxyOwner { upgradeTo(newImplementation); (bool success, ) = address(this).call{ value: msg.value }(data); require(success, "OwnedUpgradeabilityProxy: INVALID"); } /** * @dev Fallback function allowing to perform a delegatecall to the given implementation. * This function will return whatever the implementation call returns */ fallback() external payable { _fallback(); } receive () external payable { _fallback(); } /** * @dev Tells the address of the current implementation * @return impl address of the current implementation */ function implementation() public view returns (address impl) { bytes32 position = implementationPosition; assembly { impl := sload(position) } } /** * @dev Sets the address of the current implementation * @param newImplementation address representing the new implementation to be set */ function setImplementation(address newImplementation) internal { bytes32 position = implementationPosition; assembly { sstore(position, newImplementation) } } /** * @dev Upgrades the implementation address * @param newImplementation representing the address of the new implementation to be set */ function _upgradeTo(address newImplementation) internal { address currentImplementation = implementation(); require(currentImplementation != newImplementation, 'OwnedUpgradeabilityProxy: INVALID'); setImplementation(newImplementation); emit Upgraded(newImplementation); } function _fallback() internal { if (maintenance()) { require(msg.sender == proxyOwner(), 'OwnedUpgradeabilityProxy: FORBIDDEN'); } address _impl = implementation(); require(_impl != address(0), 'OwnedUpgradeabilityProxy: INVALID'); assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize()) let result := delegatecall(gas(), _impl, ptr, calldatasize(), 0, 0) let size := returndatasize() returndatacopy(ptr, 0, size) switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } /** * @dev Throws if called by any account other than the owner. */ modifier onlyProxyOwner() { require(msg.sender == proxyOwner(), 'OwnedUpgradeabilityProxy: FORBIDDEN'); _; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maintenance","outputs":[{"internalType":"bool","name":"_maintenance","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_maintenance","type":"bool"}],"name":"setMaintenance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50610039337f127708131c7435127ed6f385809bed9360985cc735efa3ab7ce86da2c1f5fffb55565b6107ba806100486000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b146100f9578063612f2f371461011b5780636c376cc51461013b578063f1739cae1461017a57610083565b8063025313a21461008b5780633659cfe6146100c65780634f1ef286146100e657610083565b366100835761008161019a565b005b61008161019a565b34801561009757600080fd5b50600080516020610745833981519152545b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d257600080fd5b506100816100e1366004610575565b61026f565b6100816100f43660046105ad565b6102bb565b34801561010557600080fd5b50600080516020610765833981519152546100a9565b34801561012757600080fd5b5061008161013636600461066f565b610387565b34801561014757600080fd5b507fbdea91235d25bb9906bd9a4ab42f41c0ada3384bb42758d2900fe2fcae34c1fa5460405190151581526020016100bd565b34801561018657600080fd5b50610081610195366004610575565b6103eb565b7fbdea91235d25bb9906bd9a4ab42f41c0ada3384bb42758d2900fe2fcae34c1fa541561020a57600080516020610745833981519152546001600160a01b0316336001600160a01b03161461020a5760405162461bcd60e51b815260040161020190610691565b60405180910390fd5b60006102226000805160206107658339815191525490565b90506001600160a01b03811661024a5760405162461bcd60e51b8152600401610201906106d4565b60405136600082376000803683855af43d806000843e81801561026b578184f35b8184fd5b600080516020610745833981519152546001600160a01b0316336001600160a01b0316146102af5760405162461bcd60e51b815260040161020190610691565b6102b8816104c0565b50565b600080516020610745833981519152546001600160a01b0316336001600160a01b0316146102fb5760405162461bcd60e51b815260040161020190610691565b6103048261026f565b6000306001600160a01b0316348360405161031f9190610715565b60006040518083038185875af1925050503d806000811461035c576040519150601f19603f3d011682016040523d82523d6000602084013e610361565b606091505b50509050806103825760405162461bcd60e51b8152600401610201906106d4565b505050565b600080516020610745833981519152546001600160a01b0316336001600160a01b0316146103c75760405162461bcd60e51b815260040161020190610691565b7fbdea91235d25bb9906bd9a4ab42f41c0ada3384bb42758d2900fe2fcae34c1fa55565b600080516020610745833981519152546001600160a01b0316336001600160a01b03161461042b5760405162461bcd60e51b815260040161020190610691565b6001600160a01b0381166104515760405162461bcd60e51b8152600401610201906106d4565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96104886000805160206107458339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a16102b88160008051602061074583398151915255565b60006104d86000805160206107658339815191525490565b9050816001600160a01b0316816001600160a01b03160361050b5760405162461bcd60e51b8152600401610201906106d4565b6105218260008051602061076583398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b80356001600160a01b038116811461057057600080fd5b919050565b60006020828403121561058757600080fd5b61059082610559565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156105c057600080fd5b6105c983610559565b9150602083013567ffffffffffffffff808211156105e657600080fd5b818501915085601f8301126105fa57600080fd5b81358181111561060c5761060c610597565b604051601f8201601f19908116603f0116810190838211818310171561063457610634610597565b8160405282815288602084870101111561064d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561068157600080fd5b8135801515811461059057600080fd5b60208082526023908201527f4f776e6564557067726164656162696c69747950726f78793a20464f524249446040820152622222a760e91b606082015260800190565b60208082526021908201527f4f776e6564557067726164656162696c69747950726f78793a20494e56414c496040820152601160fa1b606082015260800190565b6000825160005b81811015610736576020818601810151858301520161071c565b50600092019182525091905056fe127708131c7435127ed6f385809bed9360985cc735efa3ab7ce86da2c1f5fffb9ab02dcb56b946b957b4d88c05e9905e8a50979ab2c93d1f05b7872215a93106a2646970667358221220aa4db2c160d0caed415ab8c71639afa2c93eb9409cfd5f2f5ac14a58d8fccd9164736f6c63430008120033
Deployed Bytecode
0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b146100f9578063612f2f371461011b5780636c376cc51461013b578063f1739cae1461017a57610083565b8063025313a21461008b5780633659cfe6146100c65780634f1ef286146100e657610083565b366100835761008161019a565b005b61008161019a565b34801561009757600080fd5b50600080516020610745833981519152545b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d257600080fd5b506100816100e1366004610575565b61026f565b6100816100f43660046105ad565b6102bb565b34801561010557600080fd5b50600080516020610765833981519152546100a9565b34801561012757600080fd5b5061008161013636600461066f565b610387565b34801561014757600080fd5b507fbdea91235d25bb9906bd9a4ab42f41c0ada3384bb42758d2900fe2fcae34c1fa5460405190151581526020016100bd565b34801561018657600080fd5b50610081610195366004610575565b6103eb565b7fbdea91235d25bb9906bd9a4ab42f41c0ada3384bb42758d2900fe2fcae34c1fa541561020a57600080516020610745833981519152546001600160a01b0316336001600160a01b03161461020a5760405162461bcd60e51b815260040161020190610691565b60405180910390fd5b60006102226000805160206107658339815191525490565b90506001600160a01b03811661024a5760405162461bcd60e51b8152600401610201906106d4565b60405136600082376000803683855af43d806000843e81801561026b578184f35b8184fd5b600080516020610745833981519152546001600160a01b0316336001600160a01b0316146102af5760405162461bcd60e51b815260040161020190610691565b6102b8816104c0565b50565b600080516020610745833981519152546001600160a01b0316336001600160a01b0316146102fb5760405162461bcd60e51b815260040161020190610691565b6103048261026f565b6000306001600160a01b0316348360405161031f9190610715565b60006040518083038185875af1925050503d806000811461035c576040519150601f19603f3d011682016040523d82523d6000602084013e610361565b606091505b50509050806103825760405162461bcd60e51b8152600401610201906106d4565b505050565b600080516020610745833981519152546001600160a01b0316336001600160a01b0316146103c75760405162461bcd60e51b815260040161020190610691565b7fbdea91235d25bb9906bd9a4ab42f41c0ada3384bb42758d2900fe2fcae34c1fa55565b600080516020610745833981519152546001600160a01b0316336001600160a01b03161461042b5760405162461bcd60e51b815260040161020190610691565b6001600160a01b0381166104515760405162461bcd60e51b8152600401610201906106d4565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96104886000805160206107458339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a16102b88160008051602061074583398151915255565b60006104d86000805160206107658339815191525490565b9050816001600160a01b0316816001600160a01b03160361050b5760405162461bcd60e51b8152600401610201906106d4565b6105218260008051602061076583398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b80356001600160a01b038116811461057057600080fd5b919050565b60006020828403121561058757600080fd5b61059082610559565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156105c057600080fd5b6105c983610559565b9150602083013567ffffffffffffffff808211156105e657600080fd5b818501915085601f8301126105fa57600080fd5b81358181111561060c5761060c610597565b604051601f8201601f19908116603f0116810190838211818310171561063457610634610597565b8160405282815288602084870101111561064d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561068157600080fd5b8135801515811461059057600080fd5b60208082526023908201527f4f776e6564557067726164656162696c69747950726f78793a20464f524249446040820152622222a760e91b606082015260800190565b60208082526021908201527f4f776e6564557067726164656162696c69747950726f78793a20494e56414c496040820152601160fa1b606082015260800190565b6000825160005b81811015610736576020818601810151858301520161071c565b50600092019182525091905056fe127708131c7435127ed6f385809bed9360985cc735efa3ab7ce86da2c1f5fffb9ab02dcb56b946b957b4d88c05e9905e8a50979ab2c93d1f05b7872215a93106a2646970667358221220aa4db2c160d0caed415ab8c71639afa2c93eb9409cfd5f2f5ac14a58d8fccd9164736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,617.91 | 0.00109268 | $2.86 |
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.