ETH Price: $2,703.59 (+0.25%)

Contract

0x3AcF163B9E6a384D539e10dAc7e11213c638b2f5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Convert USD218627242025-02-17 1:07:117 hrs ago1739754431IN
0x3AcF163B...3c638b2f5
0 ETH0.001261051.71550819
Migrate218550452025-02-15 23:18:3533 hrs ago1739661515IN
0x3AcF163B...3c638b2f5
0 ETH0.001810661
Convert USD218522612025-02-15 13:56:1142 hrs ago1739627771IN
0x3AcF163B...3c638b2f5
0 ETH0.000650940.88217433
Convert USD218382432025-02-13 14:45:473 days ago1739457947IN
0x3AcF163B...3c638b2f5
0 ETH0.004285955.96955753
Convert USD218359952025-02-13 7:12:474 days ago1739430767IN
0x3AcF163B...3c638b2f5
0 ETH0.000987361.35000191
Convert USD218358512025-02-13 6:43:354 days ago1739429015IN
0x3AcF163B...3c638b2f5
0 ETH0.001232241.6827103
Convert USD218358382025-02-13 6:40:594 days ago1739428859IN
0x3AcF163B...3c638b2f5
0 ETH0.001304641.71634576
Convert USD218329012025-02-12 20:50:354 days ago1739393435IN
0x3AcF163B...3c638b2f5
0 ETH0.001549212.11010208
Migrate218328362025-02-12 20:37:354 days ago1739392655IN
0x3AcF163B...3c638b2f5
0 ETH0.011082673.35897718
Convert USD218304222025-02-12 12:31:354 days ago1739363495IN
0x3AcF163B...3c638b2f5
0 ETH0.000974411.32562873
Migrate218265282025-02-11 23:21:235 days ago1739316083IN
0x3AcF163B...3c638b2f5
0 ETH0.002250621.27785877
Convert USD218264022025-02-11 22:55:595 days ago1739314559IN
0x3AcF163B...3c638b2f5
0 ETH0.001040791.41044588
Convert USD218171712025-02-10 15:59:596 days ago1739203199IN
0x3AcF163B...3c638b2f5
0 ETH0.001257451.70418827
Migrate218110632025-02-09 19:31:357 days ago1739129495IN
0x3AcF163B...3c638b2f5
0 ETH0.002239741.3195276
Convert USD218087852025-02-09 11:53:597 days ago1739102039IN
0x3AcF163B...3c638b2f5
0 ETH0.000673310.91244732
Migrate218021692025-02-08 13:43:358 days ago1739022215IN
0x3AcF163B...3c638b2f5
0 ETH0.00497161.61582348
Migrate217952692025-02-07 14:36:359 days ago1738938995IN
0x3AcF163B...3c638b2f5
0 ETH0.008863425.19507357
Convert USD217920362025-02-07 3:46:1110 days ago1738899971IN
0x3AcF163B...3c638b2f5
0 ETH0.001072471.44410084
Migrate217894812025-02-06 19:13:3510 days ago1738869215IN
0x3AcF163B...3c638b2f5
0 ETH0.02563772.97369459
Migrate217830362025-02-05 21:38:5911 days ago1738791539IN
0x3AcF163B...3c638b2f5
0 ETH0.002846531.67211103
Convert USD217828722025-02-05 21:05:5911 days ago1738789559IN
0x3AcF163B...3c638b2f5
0 ETH0.001205311.64013782
Convert USD217784452025-02-05 6:16:3512 days ago1738736195IN
0x3AcF163B...3c638b2f5
0 ETH0.00092351.25663536
Migrate217782882025-02-05 5:44:3512 days ago1738734275IN
0x3AcF163B...3c638b2f5
0 ETH0.003887241.35180618
Convert USD217781762025-02-05 5:22:1112 days ago1738732931IN
0x3AcF163B...3c638b2f5
0 ETH0.001249061.69321316
Convert USD217757912025-02-04 21:22:4712 days ago1738704167IN
0x3AcF163B...3c638b2f5
0 ETH0.002578673.50878283
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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 Security Audit

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"}]

608060405234801561001057600080fd5b5060405161068538038061068583398181016040528101906100329190610275565b818181600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361009b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100ae8161019d60201b61004f1760201c565b6100ef57806040517f8a8b41ec0000000000000000000000000000000000000000000000000000000081526004016100e691906102c4565b60405180910390fd5b806100fe6101b060201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050806101536101e160201b6100621760201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050610414565b600080823b905060008111915050919050565b6000806040516020016101c290610362565b6040516020818303038152906040528051906020012090508091505090565b6000806040516020016101f3906103f4565b6040516020818303038152906040528051906020012090508091505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061024282610217565b9050919050565b61025281610237565b811461025d57600080fd5b50565b60008151905061026f81610249565b92915050565b6000806040838503121561028c5761028b610212565b5b600061029a85828601610260565b92505060206102ab85828601610260565b9150509250929050565b6102be81610237565b82525050565b60006020820190506102d960008301846102b5565b92915050565b600082825260208201905092915050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f7860008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b600061034c6021836102df565b9150610357826102f0565b604082019050919050565b6000602082019050818103600083015261037b8161033f565b9050919050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e6160008201527f626c650000000000000000000000000000000000000000000000000000000000602082015250565b60006103de6023836102df565b91506103e982610382565b604082019050919050565b6000602082019050818103600083015261040d816103d1565b9050919050565b610262806104236000396000f3fe6080604052366100135761001161001d565b005b61001b61001d565b005b6000610027610093565b90503660008037600080366000845af43d6000803e806000811461004a573d6000f35b3d6000fd5b600080823b905060008111915050919050565b6000806040516020016100749061017a565b6040516020818303038152906040528051906020012090508091505090565b600061009d6100c6565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806040516020016100d89061020c565b6040516020818303038152906040528051906020012090508091505090565b600082825260208201905092915050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e6160008201527f626c650000000000000000000000000000000000000000000000000000000000602082015250565b60006101646023836100f7565b915061016f82610108565b604082019050919050565b6000602082019050818103600083015261019381610157565b9050919050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f7860008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b60006101f66021836100f7565b91506102018261019a565b604082019050919050565b60006020820190508181036000830152610225816101e9565b905091905056fea264697066735822122032669087b735337c9422ac4fec5ef5ee7df3e0af0c8b76755e9fb5b0ce10b45964736f6c63430008110033000000000000000000000000c7ba0f1de31627ad655684cd347260eb7a815e78000000000000000000000000eb3107117fead7de89cd14d463d340a2e6917769

Deployed Bytecode

0x6080604052366100135761001161001d565b005b61001b61001d565b005b6000610027610093565b90503660008037600080366000845af43d6000803e806000811461004a573d6000f35b3d6000fd5b600080823b905060008111915050919050565b6000806040516020016100749061017a565b6040516020818303038152906040528051906020012090508091505090565b600061009d6100c6565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806040516020016100d89061020c565b6040516020818303038152906040528051906020012090508091505090565b600082825260208201905092915050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e4f776e6160008201527f626c650000000000000000000000000000000000000000000000000000000000602082015250565b60006101646023836100f7565b915061016f82610108565b604082019050919050565b6000602082019050818103600083015261019381610157565b9050919050565b7f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f7860008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b60006101f66021836100f7565b91506102018261019a565b604082019050919050565b60006020820190508181036000830152610225816101e9565b905091905056fea264697066735822122032669087b735337c9422ac4fec5ef5ee7df3e0af0c8b76755e9fb5b0ce10b45964736f6c63430008110033

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

000000000000000000000000c7ba0f1de31627ad655684cd347260eb7a815e78000000000000000000000000eb3107117fead7de89cd14d463d340a2e6917769

-----Decoded View---------------
Arg [0] : firstImplementation (address): 0xc7BA0f1DE31627Ad655684Cd347260eb7a815e78
Arg [1] : initialOwner (address): 0xEb3107117FEAd7de89Cd14D463D340A2E6917769

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c7ba0f1de31627ad655684cd347260eb7a815e78
Arg [1] : 000000000000000000000000eb3107117fead7de89cd14d463d340a2e6917769


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.