Address Contract Verified
Address
0x7E9B25aF8DF116f131fbFa7029AA5EF4a521AA2c
Balance
0 ETH
Nonce
1
Code Size
248 bytes
Creator
0x66576636...941c at tx 0xab6d7a93...20913a
Indexed Transactions
0
Contract Bytecode
248 bytes
0x608060405236601057600e6013565b005b600e5b6000601b6040565b90503660008037600080366000845af43d6000803e808015603b573d6000f35b3d6000fd5b600060486057565b546001600160a01b0316919050565b60008060405160200160a49060208082526021908201527f696f2e73796e7468657469782e636f72652d636f6e7472616374732e50726f786040820152607960f81b606082015260800190565b60408051601f1981840301815291905280516020909101209291505056fea264697066735822122029ebc86041b73f8029d879f02589ee5d9aa1c29ba2bcbdfbca9eb42d6430667164736f6c63430008150033
Verified Source Code Full Match
Compiler: v0.8.21+commit.d9974bed
EVM: paris
Optimization: Yes (200 runs)
AddressError.sol 18 lines
//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);
}
AbstractProxy.sol 40 lines
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.11 <0.9.0;
abstract contract AbstractProxy {
fallback() external payable {
// gasleft();
_forward();
// gasleft();
// gasAMount = gas1-gas2
// oracle amount(gasAMount)
// transfer(oracleamount);
}
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);
}
ProxyStorage.sol 19 lines
//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
}
}
}
UUPSProxy.sol 25 lines
//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;
}
}
AddressUtil.sol 14 lines
//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;
}
}
InfinexProxy.sol 12 lines
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
import { UUPSProxy } from "@synthetixio/core-contracts/contracts/proxy/UUPSProxy.sol";
/**
* Synthetix V3 Core Proxy Contract
*/
contract InfinexProxy is UUPSProxy {
// solhint-disable-next-line no-empty-blocks
constructor(address firstImplementation) UUPSProxy(firstImplementation) { }
}
Recent Transactions
No transactions found for this address