/

    Contract

    0x3a91e7E276936dE80AeD4c2498954921bD107dB7

    Overview

    S Balance

    Sonic LogoSonic LogoSonic Logo0 S

    S Value

    -

    Multichain Info

    No addresses found
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Init2710412024-12-10 15:07:5920 days ago1733843279IN
    0x3a91e7E2...1bD107dB7
    0 S0.001219744

    Parent Transaction Hash Block Age From To Amount
    View All Internal Transactions
    Loading...
    Loading

    Similar Match Source Code
    This contract matches the deployed Bytecode of the Source Code for Contract 0x75e1e986...97Ed70c6a
    The constructor portion of the code might be different and could alter the actual behaviour of the contract

    Contract Name:
    ProxyControlled

    Compiler Version
    v0.8.23+commit.f704f362

    Optimization Enabled:
    Yes with 50 runs

    Other Settings:
    istanbul EvmVersion, BSL 1.1 license
    File 1 of 5 : ProxyControlled.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    /**
    ▒▓▒ ▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓███▓▓▒ ▒▒▒▒▓▓▓▒▓▓▓▓▓▓▓██▓
    ▒██▒▓▓▓▓█▓██████████████████▓ ▒▒▒▓███████████████▒
    ▒██▒▓█████████████████████▒ ▒▓██████████▓███████
    ▒███████████▓▒ ▒███▓▓██████▓
    █████████▒ ▒▓▒▓███████▒
    ███████▓ ▒▒▒▒▒▓▓█▓▒ ▓█▓████████
    ▒▒▒▒▒ ▒▒▒▒▓▓▓█████▒ ▓█████████▓
    ▒▓▓▓▒▓██████▓ ▒▓▓████████▒
    ▒██▓▓▓███████▒ ▒▒▓███▓████
    ▒███▓█████▒ ▒▒█████▓██▓
    ██████▓ ▒▒▒▓██▓██▓█████▒
    ▒▒▓▓▒ ▒██▓▒▓▓████████
    ▓█████▓███████▓
    ██▓▓██████████▒
    ▒█████████████
    ███████████▓
    ▒▓▓▓▓▓▓▒▓ ▒█████████▒ ▒▓▓
    ▒▓█▒ ▒▒█▒▒ ▓██████ ▒▒▓▓▒
    ▒▒█▒ ▓▒ ▒████ ▒▓█▓█▓▒
    ▓▒██▓▒ ██ ▒▓█▓▓▓██▒
    ▓█▓▓▓▓▓█▓▓▓▒ ▒▒▒ ▒▒▒▓▓▓▓▒▓▒▒▓▒▓▓▓▓▓▓▓▓▒ ▒▓█▒ ▒▓▒▓█▓
    ▒▓█▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▓▒ ▒▒▒▓▓ ▓▓ ▓▓█▓ ▒▒▓▓ ▒▒█▒ ▒▓▒▓█▓
    ▒▒▓▓▓▒▓▒ ▒▓▓▓▒█▒ ▒▒▒█▒ ▒▒█▓▒▒▒▓▓▓▒ ▓██▓▓▓▓▓▓▓███▓
    ▒ ▒▓▓█▓ ▒▓▓▓▓█▓█▓ ▒█▓▓▒ ▓▓█▓▒▓█▓▒▒ ▓█▓ ▓███▓
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 5 : IControllable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    interface IControllable {
    function VERSION() external pure returns (string memory);
    function revision() external view returns (uint);
    function previousImplementation() external view returns (address);
    function isController(address contract_) external view returns (bool);
    function isGovernance(address contract_) external view returns (bool);
    function created() external view returns (uint256);
    function createdBlock() external view returns (uint256);
    function controller() external view returns (address);
    function increaseRevision(address oldLogic) external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 5 : IProxyControlled.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    interface IProxyControlled {
    function upgrade(address newImplementation_) external;
    function implementation() external view returns (address);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 5 : Proxy.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    /**
    * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
    * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
    * be specified by overriding the virtual {_implementation} function.
    *
    * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
    * different contract through the {_delegate} function.
    *
    * The success and return data of the delegated call will be returned back to the caller of the proxy.
    */
    abstract contract Proxy {
    /**
    * @dev Delegates the current call to `implementation`.
    *
    * This function does not return to its internall call site, it will return directly to the external caller.
    */
    function _delegate(address implementation) internal virtual {
    assembly {
    // Copy msg.data. We take full control of memory in this inline assembly
    // block because it will not return to Solidity code. We overwrite the
    // Solidity scratch pad at memory position 0.
    calldatacopy(0, 0, calldatasize())
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 5 : UpgradeableProxy.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.23;
    import "../openzeppelin/Proxy.sol";
    /// @title OpenZeppelin https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.4/contracts/proxy/UpgradeableProxy.sol
    /// @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
    /// implementation address that can be changed. This address is stored in storage in the location specified by
    /// https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
    /// implementation behind the proxy.
    /// Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see
    /// {TransparentUpgradeableProxy}.
    abstract contract UpgradeableProxy is Proxy {
    /// @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
    /// If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
    /// function call, and allows initializating the storage of the proxy like a Solidity constructor.
    constructor(address _logic) payable {
    assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
    _setImplementation(_logic);
    }
    /// @dev Emitted when the implementation is upgraded.
    event Upgraded(address indexed implementation);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    {
    "evmVersion": "istanbul",
    "libraries": {},
    "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
    },
    "optimizer": {
    "enabled": true,
    "runs": 50
    },
    "remappings": [],
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "devdoc",
    "userdoc",
    "metadata",
    "abi"
    ]
    }
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    [{"inputs":[{"internalType":"address","name":"_logic","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"PROXY_CONTROLLED_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation_","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

    Deployed Bytecode

    0x6080604052600436106100385760003560e01c80630900f0101461004f5780633bc845301461006f5780635c60da1b146100b657610047565b36610047576100456100d8565b005b6100456100d8565b34801561005b57600080fd5b5061004561006a3660046103dd565b6100ea565b34801561007b57600080fd5b506100a0604051806040016040528060058152602001640312e302e360dc1b81525081565b6040516100ad919061040d565b60405180910390f35b3480156100c257600080fd5b506100cb6102a8565b6040516100ad919061045c565b6100e86100e36102b7565b6102dc565b565b60405163b429afeb60e01b8152309063b429afeb9061010d90339060040161045c565b602060405180830381865afa15801561012a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014e9190610470565b6101925760405162461bcd60e51b815260206004820152601060248201526f283937bc3c9d102337b93134b23232b760811b60448201526064015b60405180910390fd5b30634fac6ccd6101a06102b7565b6040518263ffffffff1660e01b81526004016101bc919061045c565b600060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b505050506101f781610300565b60405163b429afeb60e01b8152309063b429afeb9061021a90339060040161045c565b602060405180830381865afa158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b9190610470565b6102a55760405162461bcd60e51b815260206004820152601b60248201527a283937bc3c9d102bb937b7339034b6b83632b6b2b73a30ba34b7b760291b6044820152606401610189565b50565b60006102b26102b7565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156102fb573d6000f35b3d6000fd5b61030981610340565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b806001600160a01b03163b6000036103b95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e74616044820152751d1a5bdb881a5cc81b9bdd08184818dbdb9d1c9858dd60521b6064820152608401610189565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000602082840312156103ef57600080fd5b81356001600160a01b038116811461040657600080fd5b9392505050565b60006020808352835180602085015260005b8181101561043b5785810183015185820160400152820161041f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0391909116815260200190565b60006020828403121561048257600080fd5b8151801515811461040657600080fdfea2646970667358221220483dd349a6a96a9c79e983f237b6fa176adbf5f8652b1313f4595d0dd8afd2db64736f6c63430008170033

    Block Age Transaction Gas Used Reward
    view all blocks produced

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

    Validator Index Block Age Amount
    View All Withdrawals

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