More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 25 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Lock | 18277326 | 280 days ago | IN | 0 ETH | 0.00078712 | ||||
Unlock | 18277321 | 280 days ago | IN | 0 ETH | 0.00158281 | ||||
Unlock | 18277188 | 280 days ago | IN | 0 ETH | 0.00107363 | ||||
Deposit Tokens | 18277171 | 280 days ago | IN | 0 ETH | 0.00071464 | ||||
List Token | 18277163 | 280 days ago | IN | 0.00085 ETH | 0.00111923 | ||||
Lock | 18277085 | 280 days ago | IN | 0 ETH | 0.00075582 | ||||
Lock | 18276483 | 280 days ago | IN | 0 ETH | 0.00059577 | ||||
Set Fee For Toke... | 18276471 | 280 days ago | IN | 0 ETH | 0.00047601 | ||||
Lock | 18275728 | 280 days ago | IN | 0 ETH | 0.00150864 | ||||
List Token | 18275694 | 280 days ago | IN | 0.00085 ETH | 0.00054963 | ||||
Upgrade To | 18275687 | 280 days ago | IN | 0 ETH | 0.00017444 | ||||
Delist Token By ... | 18275574 | 280 days ago | IN | 0 ETH | 0.00024475 | ||||
List Token | 18275506 | 280 days ago | IN | 0.00085 ETH | 0.00078872 | ||||
Lock | 18275354 | 280 days ago | IN | 0 ETH | 0.0008518 | ||||
List Token | 18275153 | 280 days ago | IN | 0.00085 ETH | 0.00130553 | ||||
Delist Token By ... | 18274881 | 281 days ago | IN | 0 ETH | 0.00026052 | ||||
List Token | 18270935 | 281 days ago | IN | 0.00085 ETH | 0.00287981 | ||||
Delist Token By ... | 18270920 | 281 days ago | IN | 0 ETH | 0.00084822 | ||||
Upgrade To | 18270850 | 281 days ago | IN | 0 ETH | 0.00063907 | ||||
List Token | 18270793 | 281 days ago | IN | 0.00085 ETH | 0.0050814 | ||||
Set Listing Fee | 18270750 | 281 days ago | IN | 0 ETH | 0.00061197 | ||||
Set Chain Suppor... | 18270009 | 281 days ago | IN | 0 ETH | 0.00054483 | ||||
Initialize | 18270006 | 281 days ago | IN | 0 ETH | 0.00362736 | ||||
Upgrade To | 18269936 | 281 days ago | IN | 0 ETH | 0.0004156 | ||||
0x60808060 | 18269874 | 281 days ago | IN | Create: OwnedUpgradeabilityXBridgeProxy | 0 ETH | 0.0044864 |
Loading...
Loading
Contract Name:
OwnedUpgradeabilityXBridgeProxy
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: Apache-2.0 pragma solidity ^0.8.7; /** * @title OwnedUpgradeabilityProxy * @dev This contract combines an upgradeability proxy with basic authorization control functionalities */ contract OwnedUpgradeabilityXBridgeProxy { /** * @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.proxy.maintenance"); // Storage position of the address of the current implementation bytes32 private constant implementationPosition = keccak256("com.proxy.implementation"); // Storage position of the owner of the contract bytes32 private constant proxyOwnerPosition = keccak256("com.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 }, "viaIR": true, "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
6080806040523461003957337f85bd7031deaf76b80f9733e7da132fe310adf86a8e73260691b76988b4b7e35d556105ec908161003f8239f35b600080fdfe60806040526004361015610018575b366104e3576104e3565b6000803560e01c908163025313a21461008b575080633659cfe6146100865780634f1ef286146100815780635c60da1b1461007c578063612f2f37146100775780636c376cc5146100725763f1739cae0361000e576103b4565b610375565b610312565b6102dc565b6101c3565b6100dc565b346100be57806003193601126100be57600080516020610577833981519152546001600160a01b03166080908152602090f35b80fd5b600435906001600160a01b03821682036100d757565b600080fd5b346100d75760203660031901126100d7576100f56100c1565b600080516020610577833981519152546001600160a01b03919061011c9083163314610435565b60008051602061059783398151915261013e815484841694859116141561048d565b557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2005b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176101a257604052565b610166565b67ffffffffffffffff81116101a257601f01601f191660200190565b60403660031901126100d7576101d76100c1565b60243567ffffffffffffffff81116100d757366023820112156100d75780600401359061020b610206836101a7565b61017c565b918083526020830136602483850101116100d7576102d49382602460209501833760009586809581958401015260018060a01b0390610265826000805160206105778339815191525416331461026081610435565b610435565b600080516020610597833981519152610287815484841694859116141561048d565b557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2519034305af13d156102d7573d6102c5610206826101a7565b9081528360203d92013e61048d565b80f35b61048d565b346100d75760003660031901126100d757600080516020610597833981519152546040516001600160a01b039091168152602090f35b346100d75760203660031901126100d75760043580151581036100d75761035160018060a01b0360008051602061057783398151915254163314610435565b7fce60c5db904241f4fe710c6b7d7c2e6f59bb4f2afc9ad1549ac9b29eb7f522b655005b346100d75760003660031901126100d75760207fce60c5db904241f4fe710c6b7d7c2e6f59bb4f2afc9ad1549ac9b29eb7f522b6546040519015158152f35b346100d75760203660031901126100d7576103cd6100c1565b60008051602061057783398151915280547f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9906040906001600160a01b039081169061041a338314610435565b851661042781151561048d565b82519182526020820152a155005b1561043c57565b60405162461bcd60e51b815260206004820152602360248201527f4f776e6564557067726164656162696c69747950726f78793a20464f524249446044820152622222a760e91b6064820152608490fd5b1561049457565b60405162461bcd60e51b815260206004820152602160248201527f4f776e6564557067726164656162696c69747950726f78793a20494e56414c496044820152601160fa1b6064820152608490fd5b7fce60c5db904241f4fe710c6b7d7c2e6f59bb4f2afc9ad1549ac9b29eb7f522b65461054f575b6000805160206105978339815191525461052e6001600160a01b038216151561048d565b60008060405192368285378336915af4903d91826000833e1561054d57f35bfd5b61057160018060a01b0360008051602061057783398151915254163314610435565b61050a56fe85bd7031deaf76b80f9733e7da132fe310adf86a8e73260691b76988b4b7e35df968882b178b4a61d620bde63916829c95f3e1b54eb01ef03837ff1b870f4076a26469706673582212207735b9b0851bf83663474dcd9b74af9c4ca61816e871fa71e3926db6847cc13664736f6c63430008120033
Deployed Bytecode
0x60806040526004361015610018575b366104e3576104e3565b6000803560e01c908163025313a21461008b575080633659cfe6146100865780634f1ef286146100815780635c60da1b1461007c578063612f2f37146100775780636c376cc5146100725763f1739cae0361000e576103b4565b610375565b610312565b6102dc565b6101c3565b6100dc565b346100be57806003193601126100be57600080516020610577833981519152546001600160a01b03166080908152602090f35b80fd5b600435906001600160a01b03821682036100d757565b600080fd5b346100d75760203660031901126100d7576100f56100c1565b600080516020610577833981519152546001600160a01b03919061011c9083163314610435565b60008051602061059783398151915261013e815484841694859116141561048d565b557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2005b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176101a257604052565b610166565b67ffffffffffffffff81116101a257601f01601f191660200190565b60403660031901126100d7576101d76100c1565b60243567ffffffffffffffff81116100d757366023820112156100d75780600401359061020b610206836101a7565b61017c565b918083526020830136602483850101116100d7576102d49382602460209501833760009586809581958401015260018060a01b0390610265826000805160206105778339815191525416331461026081610435565b610435565b600080516020610597833981519152610287815484841694859116141561048d565b557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2519034305af13d156102d7573d6102c5610206826101a7565b9081528360203d92013e61048d565b80f35b61048d565b346100d75760003660031901126100d757600080516020610597833981519152546040516001600160a01b039091168152602090f35b346100d75760203660031901126100d75760043580151581036100d75761035160018060a01b0360008051602061057783398151915254163314610435565b7fce60c5db904241f4fe710c6b7d7c2e6f59bb4f2afc9ad1549ac9b29eb7f522b655005b346100d75760003660031901126100d75760207fce60c5db904241f4fe710c6b7d7c2e6f59bb4f2afc9ad1549ac9b29eb7f522b6546040519015158152f35b346100d75760203660031901126100d7576103cd6100c1565b60008051602061057783398151915280547f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9906040906001600160a01b039081169061041a338314610435565b851661042781151561048d565b82519182526020820152a155005b1561043c57565b60405162461bcd60e51b815260206004820152602360248201527f4f776e6564557067726164656162696c69747950726f78793a20464f524249446044820152622222a760e91b6064820152608490fd5b1561049457565b60405162461bcd60e51b815260206004820152602160248201527f4f776e6564557067726164656162696c69747950726f78793a20494e56414c496044820152601160fa1b6064820152608490fd5b7fce60c5db904241f4fe710c6b7d7c2e6f59bb4f2afc9ad1549ac9b29eb7f522b65461054f575b6000805160206105978339815191525461052e6001600160a01b038216151561048d565b60008060405192368285378336915af4903d91826000833e1561054d57f35bfd5b61057160018060a01b0360008051602061057783398151915254163314610435565b61050a56fe85bd7031deaf76b80f9733e7da132fe310adf86a8e73260691b76988b4b7e35df968882b178b4a61d620bde63916829c95f3e1b54eb01ef03837ff1b870f4076a26469706673582212207735b9b0851bf83663474dcd9b74af9c4ca61816e871fa71e3926db6847cc13664736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.