Sonic Blaze Testnet

Contract

0x8163Ba369ef796eA5Bd878dc5cED406f9b6f21Cd

Overview

S Balance

Sonic Blaze LogoSonic Blaze LogoSonic Blaze Logo0 S

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Initialize256827312025-03-11 0:24:5131 hrs ago1741652691IN
0x8163Ba36...f9b6f21Cd
0 S0.000190621
Upgrade To256827132025-03-11 0:24:4131 hrs ago1741652681IN
0x8163Ba36...f9b6f21Cd
0 S0.00004641

Latest 8 internal transactions

Parent Transaction Hash Block From To
256827312025-03-11 0:24:5131 hrs ago1741652691
0x8163Ba36...f9b6f21Cd
0 S
256827132025-03-11 0:24:4131 hrs ago1741652681
0x8163Ba36...f9b6f21Cd
0 S
256827132025-03-11 0:24:4131 hrs ago1741652681
0x8163Ba36...f9b6f21Cd
0 S
256827132025-03-11 0:24:4131 hrs ago1741652681
0x8163Ba36...f9b6f21Cd
0x8163Ba36...f9b6f21Cd
0 S
256827132025-03-11 0:24:4131 hrs ago1741652681
0x8163Ba36...f9b6f21Cd
0 S
256827132025-03-11 0:24:4131 hrs ago1741652681
0x8163Ba36...f9b6f21Cd
0x8163Ba36...f9b6f21Cd
0 S
256827132025-03-11 0:24:4131 hrs ago1741652681
0x8163Ba36...f9b6f21Cd
0 S
256826602025-03-11 0:24:1431 hrs ago1741652654  Contract Creation0 S
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
InfinexProxyWithOwner

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 6 : InfinexProxyWithOwner.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

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

/**
 * @dev Infinex Proxy with owner based on Synthetix UUPSProxyWithOwner
 * https://github.com/Synthetixio/synthetix-v3/blob/main/utils/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol
 */
// slither-disable-start locked-ether
contract InfinexProxyWithOwner is UUPSProxy {
    constructor(address firstImplementation, address initialOwner) UUPSProxy(firstImplementation) {
        if (initialOwner == address(0)) revert ZeroAddress();
        OwnableStorage._setOwner(initialOwner);
    }
}
// slither-disable-end locked-ether

File 2 of 6 : AddressUtil.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

library AddressUtil {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
}

File 3 of 6 : OwnableStorage.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/**
 * @title Ownable Storage
 * @dev This library provides storage and functions for managing the ownership of a contract, using the Openzeppelin ownable upgradable storage slot.
 * Implementation is a modified version of Openzeppelin and Synthetix Ownable implementations.
 */
library OwnableStorage {
    // Storage slot copied from the Openzeppelin ownable upgradable contract.
    // https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/master/contracts/access/OwnableUpgradeable.sol
    // keccak256(abi.encode(uint256(keccak256("openzeppelin.storage.Ownable")) - 1)) & ~bytes32(uint256(0xff))
    bytes32 private constant _SLOT_OWNABLE_STORAGE = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; //#gitleaks:allow

    struct Storage {
        address _owner;
        address _pendingOwner;
    }

    /**
     * @notice Loads the storage data for the Ownable contract
     * @return store The storage data for the Ownable contract
     */
    function getStorage() internal pure returns (Storage storage store) {
        bytes32 s = _SLOT_OWNABLE_STORAGE;
        assembly {
            store.slot := s
        }
    }

    /**
     * @notice Returns the current owner of the contract
     * @return The address of the owner
     */
    function _getOwner() internal view returns (address) {
        return getStorage()._owner;
    }

    /**
     * @notice Returns the pending owner of the contract.
     * @return The address of the pending owner.
     */
    function _getPendingOwner() internal view returns (address) {
        return getStorage()._pendingOwner;
    }

    /**
     * @notice Sets the owner in ownable storage.
     * @param _newOwner The new owner of the contract.
     */
    function _setOwner(address _newOwner) internal {
        getStorage()._owner = _newOwner;
    }

    /**
     * @notice Sets the pending owner.
     * @param _newOwner The new pending owner of the contract.
     */
    function _setPendingOwner(address _newOwner) internal {
        getStorage()._pendingOwner = _newOwner;
    }
}

File 4 of 6 : AbstractProxy.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/**
 * @dev Synthetix Abstract Proxy
 * https://github.com/Synthetixio/synthetix-v3/blob/main/utils/core-contracts/contracts/proxy/AbstractProxy.sol
 */
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 5 of 6 : ProxyStorage.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/**
 * @dev Modified Synthetix proxy storage contract.
 * https://github.com/Synthetixio/synthetix-v3/blob/main/utils/core-contracts/contracts/proxy/ProxyStorage.sol
 */
contract ProxyStorage {
    // keccak256(abi.encode("io.synthetix.core-contracts.Proxy"));
    bytes32 private constant _SLOT_PROXY_STORAGE = 0x5a648c35a2f5512218b4683cf10e03f5b7c9dc7346e1bf77d304ae97f60f592b; //#gitleaks:allow

    struct ProxyStore {
        address implementation;
        bool simulatingUpgrade;
    }

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

File 6 of 6 : UUPSProxy.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

import { AbstractProxy } from "src/proxy/AbstractProxy.sol";
import { ProxyStorage } from "src/proxy/ProxyStorage.sol";
import { AddressUtil } from "src/libraries/AddressUtil.sol";

/**
 * @dev Modified Synthetix UUPS Proxy contract
 * https://github.com/Synthetixio/synthetix-v3/blob/main/utils/core-contracts/contracts/proxy/UUPSProxy.sol
 */
contract UUPSProxy is AbstractProxy, ProxyStorage {
    error ZeroAddress();

    error NotAContract(address implementation);

    constructor(address firstImplementation) {
        if (firstImplementation == address(0)) {
            revert ZeroAddress();
        }

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

        _proxyStore().implementation = firstImplementation;
    }

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

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "shanghai",
  "remappings": [
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@pythnetwork/entropy-sdk-solidity/=node_modules/@pythnetwork/entropy-sdk-solidity/",
    "@synthetixio/core-contracts/=node_modules/@synthetixio/core-contracts/",
    "@synthetixio/core-modules/=node_modules/@synthetixio/core-modules/",
    "@synthetixio/main/=node_modules/@synthetixio/main/",
    "@synthetixio/oracle-manager/=node_modules/@synthetixio/oracle-manager/",
    "@synthetixio/perps-market/=node_modules/@synthetixio/perps-market/",
    "@synthetixio/spot-market/=node_modules/@synthetixio/spot-market/",
    "ERC721A/=lib/ERC721A/contracts/",
    "cannon-std/=lib/cannon-std/src/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "wormhole-circle-integration/=lib/wormhole-circle-integration/evm/src/",
    "wormhole-solidity-sdk/=lib/wormhole-solidity-sdk/src/",
    "wormhole/=lib/wormhole-circle-integration/evm/src/"
  ],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

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

608060405234801561000f575f80fd5b5060405161021038038061021083398101604081905261002e9161013a565b816001600160a01b0381166100565760405163d92e233d60e01b815260040160405180910390fd5b803b610084576040516322a2d07b60e21b81526001600160a01b038216600482015260240160405180910390fd5b7f5a648c35a2f5512218b4683cf10e03f5b7c9dc7346e1bf77d304ae97f60f592b80546001600160a01b0319166001600160a01b0392831617905581166100de5760405163d92e233d60e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b0319166001600160a01b038316179055505061016b565b80516001600160a01b0381168114610135575f80fd5b919050565b5f806040838503121561014b575f80fd5b6101548361011f565b91506101626020840161011f565b90509250929050565b6099806101775f395ff3fe608060405236601057600e6013565b005b600e5b5f60447f5a648c35a2f5512218b4683cf10e03f5b7c9dc7346e1bf77d304ae97f60f592b546001600160a01b031690565b9050365f80375f80365f845af43d5f803e808015605f573d5ff35b3d5ffdfea2646970667358221220811a8148ee9fdaadd2d3e891d5a92d2bad50e52e7a0e7d5139b3fda8ac13c63664736f6c6343000815003300000000000000000000000007ae0a6d2a687de98d62ff3b0220c476ebc950b40000000000000000000000003f768e3ac5ee75a2f39cfd7d72eb3a40bddb5ecb

Deployed Bytecode

0x608060405236601057600e6013565b005b600e5b5f60447f5a648c35a2f5512218b4683cf10e03f5b7c9dc7346e1bf77d304ae97f60f592b546001600160a01b031690565b9050365f80375f80365f845af43d5f803e808015605f573d5ff35b3d5ffdfea2646970667358221220811a8148ee9fdaadd2d3e891d5a92d2bad50e52e7a0e7d5139b3fda8ac13c63664736f6c63430008150033

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

00000000000000000000000007ae0a6d2a687de98d62ff3b0220c476ebc950b40000000000000000000000003f768e3ac5ee75a2f39cfd7d72eb3a40bddb5ecb

-----Decoded View---------------
Arg [0] : firstImplementation (address): 0x07Ae0A6D2a687DE98D62Ff3B0220c476EBC950b4
Arg [1] : initialOwner (address): 0x3F768E3aC5eE75A2F39CFD7d72Eb3a40Bddb5ecB

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000007ae0a6d2a687de98d62ff3b0220c476ebc950b4
Arg [1] : 0000000000000000000000003f768e3ac5ee75a2f39cfd7d72eb3a40bddb5ecb


Block Transaction 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
[ 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.