0x6722ec501be09fb221bcc8a46f9660868d0a6c63

deployer: unknown relevance score: 0 status: partially_identified bytecode: 3112 bytes

DECOMPILED SOLIDITY (Heimdall)

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

/// @title            Decompiled Contract
/// @author           Jonathan Becker <jonathan@jbecker.dev>
/// @custom:version   heimdall-rs v0.9.2
///
/// @notice           This contract was decompiled using the heimdall-rs decompiler.
///                     It was generated directly by tracing the EVM opcodes from this contract.
///                     As a result, it may not compile or even be valid solidity code.
///                     Despite this, it should be obvious what each function does. Overall
///                     logic should have been preserved throughout decompiling.
///
/// @custom:github    You can find the open-source decompiler here:
///                       https://heimdall.rs

contract DecompiledContract {
    bytes32 store_b;
    bytes32 store_a;
    address store_d;
    address store_c;
    address store_e;
    
    event SuccessorChanged(address, address);
    event Claim(address);
    event IncognitoChanged(address, address);
    event Upgraded(address);
    
    /// @custom:selector    0x5c975abb
    /// @custom:signature   paused() public returns (uint256)
    function paused() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        return store_b;
    }
    
    /// @custom:selector    0x1c587771
    /// @custom:signature   upgradeIncognito(address arg0) public returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function upgradeIncognito(address arg0) public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        require(address(arg0), "TransparentUpgradeableProxy: incognito proxy is the zero address");
        emit IncognitoChanged(address(store_d), address(arg0));
        store_d = address(arg0);
    }
    
    /// @custom:selector    0x9e6371ba
    /// @custom:signature   retire(address arg0) public returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function retire(address arg0) public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        require(address(arg0), "TransparentUpgradeableProxy: successor is the zero address");
        emit SuccessorChanged(address(store_e), address(arg0));
        store_e = address(arg0);
    }
    
    /// @custom:selector    0x4e71d92d
    /// @custom:signature   claim() public returns (uint256)
    function claim() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_e))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        emit Claim(address(store_e));
        store_a = store_e;
    }
    
    /// @custom:selector    0x6ff968c3
    /// @custom:signature   successor() public returns (uint256)
    function successor() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        return address(store_e);
    }
    
    /// @custom:selector    0x5c60da1b
    /// @custom:signature   implementation() public returns (uint256)
    function implementation() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        return address(store_c);
    }
    
    /// @custom:selector    0xf851a440
    /// @custom:signature   admin() public returns (uint256)
    function admin() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        return address(store_a);
    }
    
    /// @custom:selector    0x8456cb59
    /// @custom:signature   pause() public returns (uint256)
    function pause() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        require(!store_b, "TransparentUpgradeableProxy: contract paused already");
        store_b = 0x01;
    }
    
    /// @custom:selector    0x3f4ba83a
    /// @custom:signature   unpause() public returns (uint256)
    function unpause() public returns (uint256) {
        require(!(address(msg.sender)) == (address(store_a)));
        require(!(address(msg.sender)) == (address(store_a)));
        require(!store_b);
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_b); // delegatecall
        return ;
        require(store_b, "TransparentUpgradeableProxy: contract not paused");
        store_b = 0;
    }
    
    /// @custom:selector    0x8a984538
    /// @custom:signature   incognito() public returns (uint256)
    function incognito() public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        return address(store_d);
    }
    
    /// @custom:selector    0x3659cfe6
    /// @custom:signature   upgradeTo(address arg0) public returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function upgradeTo(address arg0) public returns (uint256) {
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        require(!(!address(arg0).code.length), "UpgradeableProxy: new implementation is not a contract");
        store_c = address(arg0);
        emit Upgraded(address(arg0));
    }
    
    /// @custom:selector    0x4f1ef286
    /// @custom:signature   Unresolved_4f1ef286(address arg0, uint256 arg1) public payable returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function Unresolved_4f1ef286(address arg0, uint256 arg1) public payable returns (uint256) {
        require(!arg1 > 0x0100000000);
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!(address(msg.sender) == (address(store_a))), "TransparentUpgradeableProxy: contract is paused");
        require(!store_b, "TransparentUpgradeableProxy: contract is paused");
        (bool success, bytes memory ret0) = address(store_c).Unresolved_(var_g); // delegatecall
        return ;
        require(!(!address(arg0).code.length), "UpgradeableProxy: new implementation is not a contract");
        store_c = address(arg0);
        emit Upgraded(address(arg0));
        (bool success, bytes memory ret0) = address(arg0).Unresolved_(var_i); // delegatecall
        require(ret0.length == 0, "DELEGATECALL failed");
    }
}

ABI

[
  {
    "type": "function",
    "name": "Unresolved_4f1ef286",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "admin",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "claim",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "implementation",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "incognito",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "pause",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "paused",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "retire",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "successor",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "unpause",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "upgradeIncognito",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "upgradeTo",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "event",
    "name": "Claim",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "IncognitoChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SuccessorChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Upgraded",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  }
]

UNKNOWN SELECTORS (1)

0x6f6e7472unknown
These selectors are not yet in the research database — they are being investigated and will be added as known functions once identified. They are also marked in red in the decompiled Solidity above.

KNOWN CLUSTER ADDRESSES IN THIS BYTECODE (0)

(none)