Sepolia Testnet

Contract

0xEf654C46c8f33c7F6b0db04BF64DFd5f228c35d4

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Recompute Fundin...63570392024-07-22 16:18:12143 days ago1721665092IN
0xEf654C46...f228c35d4
0 ETH0.000472764.72816381
Recompute Utiliz...63570362024-07-22 16:17:36143 days ago1721665056IN
0xEf654C46...f228c35d4
0 ETH0.000508855.05378742
Settle Order60322962024-06-03 15:42:48192 days ago1717429368IN
0xEf654C46...f228c35d4
1 wei0.0110637816.29502308
Commit Order60322942024-06-03 15:42:24192 days ago1717429344IN
0xEf654C46...f228c35d4
0 ETH0.0050784515.19435901
Commit Order60322042024-06-03 15:22:36192 days ago1717428156IN
0xEf654C46...f228c35d4
0 ETH0.001864335.61410952
Modify Collatera...60321992024-06-03 15:21:24192 days ago1717428084IN
0xEf654C46...f228c35d4
0 ETH0.002636475.59069462
Modify Collatera...60321972024-06-03 15:21:00192 days ago1717428060IN
0xEf654C46...f228c35d4
0 ETH0.001665715.17495501
Settle Order60321322024-06-03 15:06:36193 days ago1717427196IN
0xEf654C46...f228c35d4
1 wei0.005814697.03517653
Commit Order60321292024-06-03 15:06:00193 days ago1717427160IN
0xEf654C46...f228c35d4
0 ETH0.002349737.06859353
Cancel Stale Ord...60321132024-06-03 15:02:36193 days ago1717426956IN
0xEf654C46...f228c35d4
0 ETH0.0005162611.15252476
Commit Order60321072024-06-03 15:01:24193 days ago1717426884IN
0xEf654C46...f228c35d4
0 ETH0.0039137611.77303656
Cancel Stale Ord...60321062024-06-03 15:01:12193 days ago1717426872IN
0xEf654C46...f228c35d4
0 ETH0.0005286311.41982708
Commit Order60319022024-06-03 14:15:00193 days ago1717424100IN
0xEf654C46...f228c35d4
0 ETH0.0036634211.0199637
Cancel Stale Ord...60319012024-06-03 14:14:48193 days ago1717424088IN
0xEf654C46...f228c35d4
0 ETH0.0005207811.25017957
Commit Order60318952024-06-03 14:13:24193 days ago1717424004IN
0xEf654C46...f228c35d4
0 ETH0.0037074311.15290341
Cancel Stale Ord...60318942024-06-03 14:13:12193 days ago1717423992IN
0xEf654C46...f228c35d4
0 ETH0.0005290311.42841251
Commit Order60318872024-06-03 14:11:36193 days ago1717423896IN
0xEf654C46...f228c35d4
0 ETH0.0040490712.18063968
Cancel Stale Ord...60318862024-06-03 14:11:24193 days ago1717423884IN
0xEf654C46...f228c35d4
0 ETH0.0005563412.01846215
Commit Order60318792024-06-03 14:10:00193 days ago1717423800IN
0xEf654C46...f228c35d4
0 ETH0.0050582815.21585136
Cancel Stale Ord...60318782024-06-03 14:09:48193 days ago1717423788IN
0xEf654C46...f228c35d4
0 ETH0.0007087915.31162571
Commit Order60318042024-06-03 13:53:12193 days ago1717422792IN
0xEf654C46...f228c35d4
0 ETH0.0061438418.48223896
Cancel Stale Ord...60317372024-06-03 13:38:24193 days ago1717421904IN
0xEf654C46...f228c35d4
0 ETH0.000540311.67181843
Commit Order60317112024-06-03 13:32:36193 days ago1717421556IN
0xEf654C46...f228c35d4
0 ETH0.0036912511.1036774
Cancel Stale Ord...60315732024-06-03 13:03:00193 days ago1717419780IN
0xEf654C46...f228c35d4
0 ETH0.0013296228.72318062
Commit Order60315172024-06-03 12:50:12193 days ago1717419012IN
0xEf654C46...f228c35d4
0 ETH0.004630313.92846692
View all transactions

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
60322962024-06-03 15:42:48192 days ago1717429368
0xEf654C46...f228c35d4
1 wei
60321322024-06-03 15:06:36193 days ago1717427196
0xEf654C46...f228c35d4
1 wei
59595822024-05-23 5:54:24204 days ago1716443664
0xEf654C46...f228c35d4
 Contract Creation0 ETH
59595812024-05-23 5:54:12204 days ago1716443652
0xEf654C46...f228c35d4
 Contract Creation0 ETH
59595782024-05-23 5:53:12204 days ago1716443592
0xEf654C46...f228c35d4
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Proxy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 9 : Proxy.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

import {UUPSProxyWithOwner} from "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol";

contract Proxy is UUPSProxyWithOwner {
    // solhint-disable-next-line no-empty-blocks
    constructor(
        address firstImplementation,
        address initialOwner
    ) UUPSProxyWithOwner(firstImplementation, initialOwner) {}
}

File 2 of 9 : AccessError.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

/**
 * @title Library for access related errors.
 */
library AccessError {
    /**
     * @dev Thrown when an address tries to perform an unauthorized action.
     * @param addr The address that attempts the action.
     */
    error Unauthorized(address addr);
}

File 3 of 9 : AddressError.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

/**
 * @title Library for address related errors.
 */
library AddressError {
    /**
     * @dev Thrown when a zero address was passed as a function parameter (0x0000000000000000000000000000000000000000).
     */
    error ZeroAddress();

    /**
     * @dev Thrown when an address representing a contract is expected, but no code is found at the address.
     * @param contr The address that was expected to be a contract.
     */
    error NotAContract(address contr);
}

File 4 of 9 : OwnableStorage.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

import "../errors/AccessError.sol";

library OwnableStorage {
    bytes32 private constant _SLOT_OWNABLE_STORAGE =
        keccak256(abi.encode("io.synthetix.core-contracts.Ownable"));

    struct Data {
        address owner;
        address nominatedOwner;
    }

    function load() internal pure returns (Data storage store) {
        bytes32 s = _SLOT_OWNABLE_STORAGE;
        assembly {
            store.slot := s
        }
    }

    function onlyOwner() internal view {
        if (msg.sender != getOwner()) {
            revert AccessError.Unauthorized(msg.sender);
        }
    }

    function getOwner() internal view returns (address) {
        return OwnableStorage.load().owner;
    }
}

File 5 of 9 : AbstractProxy.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

abstract contract AbstractProxy {
    fallback() external payable {
        _forward();
    }

    receive() external payable {
        _forward();
    }

    function _forward() internal {
        address implementation = _getImplementation();

        // solhint-disable-next-line no-inline-assembly
        assembly {
            calldatacopy(0, 0, calldatasize())

            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            returndatacopy(0, 0, returndatasize())

            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    function _getImplementation() internal view virtual returns (address);
}

File 6 of 9 : ProxyStorage.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

contract ProxyStorage {
    bytes32 private constant _SLOT_PROXY_STORAGE =
        keccak256(abi.encode("io.synthetix.core-contracts.Proxy"));

    struct ProxyStore {
        address implementation;
        bool simulatingUpgrade;
    }

    function _proxyStore() internal pure returns (ProxyStore storage store) {
        bytes32 s = _SLOT_PROXY_STORAGE;
        assembly {
            store.slot := s
        }
    }
}

File 7 of 9 : UUPSProxy.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

import "./AbstractProxy.sol";
import "./ProxyStorage.sol";
import "../errors/AddressError.sol";
import "../utils/AddressUtil.sol";

contract UUPSProxy is AbstractProxy, ProxyStorage {
    constructor(address firstImplementation) {
        if (firstImplementation == address(0)) {
            revert AddressError.ZeroAddress();
        }

        if (!AddressUtil.isContract(firstImplementation)) {
            revert AddressError.NotAContract(firstImplementation);
        }

        _proxyStore().implementation = firstImplementation;
    }

    function _getImplementation() internal view virtual override returns (address) {
        return _proxyStore().implementation;
    }
}

File 8 of 9 : UUPSProxyWithOwner.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

import {UUPSProxy} from "./UUPSProxy.sol";
import {OwnableStorage} from "../ownership/OwnableStorage.sol";

contract UUPSProxyWithOwner is UUPSProxy {
    // solhint-disable-next-line no-empty-blocks
    constructor(address firstImplementation, address initialOwner) UUPSProxy(firstImplementation) {
        OwnableStorage.load().owner = initialOwner;
    }
}

File 9 of 9 : AddressUtil.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;

library AddressUtil {
    function isContract(address account) internal view returns (bool) {
        uint256 size;

        assembly {
            size := extcodesize(account)
        }

        return size > 0;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"firstImplementation","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contr","type":"address"}],"name":"NotAContract","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161068538038061068583398181016040528101906100329190610275565b818181600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361009b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100ae8161019d60201b61004f1760201c565b6100ef57806040517f8a8b41ec0000000000000000000000000000000000000000000000000000000081526004016100e691906102c4565b60405180910390fd5b806100fe6101b060201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050806101536101e160201b6100621760201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050610414565b600080823b905060008111915050919050565b6000806040516020016101c290610362565b6040516020818303038152906040528051906020012090508091505090565b6000806040516020016101f3906103f4565b6040516020818303038152906040528051906020012090508091505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061024282610217565b9050919050565b61025281610237565b811461025d57600080fd5b50565b60008151905061026f81610249565b92915050565b6000806040838503121561028c5761028b610212565b5b600061029a85828601610260565b92505060206102ab85828601610260565b9150509250929050565b6102be81610237565b82525050565b60006020820190506102d960008301846102b5565b92915050565b600082825260208201905092915050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f7860008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b600061034c6021836102df565b9150610357826102f0565b604082019050919050565b6000602082019050818103600083015261037b8161033f565b9050919050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e6160008201527f626c650000000000000000000000000000000000000000000000000000000000602082015250565b60006103de6023836102df565b91506103e982610382565b604082019050919050565b6000602082019050818103600083015261040d816103d1565b9050919050565b610262806104236000396000f3fe6080604052366100135761001161001d565b005b61001b61001d565b005b6000610027610093565b90503660008037600080366000845af43d6000803e806000811461004a573d6000f35b3d6000fd5b600080823b905060008111915050919050565b6000806040516020016100749061017a565b6040516020818303038152906040528051906020012090508091505090565b600061009d6100c6565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806040516020016100d89061020c565b6040516020818303038152906040528051906020012090508091505090565b600082825260208201905092915050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e6160008201527f626c650000000000000000000000000000000000000000000000000000000000602082015250565b60006101646023836100f7565b915061016f82610108565b604082019050919050565b6000602082019050818103600083015261019381610157565b9050919050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f7860008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b60006101f66021836100f7565b91506102018261019a565b604082019050919050565b60006020820190508181036000830152610225816101e9565b905091905056fea264697066735822122032669087b735337c9422ac4fec5ef5ee7df3e0af0c8b76755e9fb5b0ce10b45964736f6c634300081100330000000000000000000000001f837a979fb63c0255f5f4d879e98412fab35926000000000000000000000000431d454bd4d352a0b1f45ae11ef1182bbeec6a7b

Deployed Bytecode

0x6080604052366100135761001161001d565b005b61001b61001d565b005b6000610027610093565b90503660008037600080366000845af43d6000803e806000811461004a573d6000f35b3d6000fd5b600080823b905060008111915050919050565b6000806040516020016100749061017a565b6040516020818303038152906040528051906020012090508091505090565b600061009d6100c6565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806040516020016100d89061020c565b6040516020818303038152906040528051906020012090508091505090565b600082825260208201905092915050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e6160008201527f626c650000000000000000000000000000000000000000000000000000000000602082015250565b60006101646023836100f7565b915061016f82610108565b604082019050919050565b6000602082019050818103600083015261019381610157565b9050919050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f7860008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b60006101f66021836100f7565b91506102018261019a565b604082019050919050565b60006020820190508181036000830152610225816101e9565b905091905056fea264697066735822122032669087b735337c9422ac4fec5ef5ee7df3e0af0c8b76755e9fb5b0ce10b45964736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001f837a979fb63c0255f5f4d879e98412fab35926000000000000000000000000431d454bd4d352a0b1f45ae11ef1182bbeec6a7b

-----Decoded View---------------
Arg [0] : firstImplementation (address): 0x1f837a979FB63c0255f5f4D879E98412FaB35926
Arg [1] : initialOwner (address): 0x431D454Bd4d352A0b1f45AE11EF1182bBEec6a7B

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001f837a979fb63c0255f5f4d879e98412fab35926
Arg [1] : 000000000000000000000000431d454bd4d352a0b1f45ae11ef1182bbeec6a7b


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.