// SPDX-License-Identifier: MITpragmasolidity>=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.rscontract DecompiledContract {address store_b;address store_a;event AdminChanged(address,address);event Upgraded(address);/// @custom:selector 0xcf7a1d77/// @custom:signature Unresolved_cf7a1d77(address arg0, address arg1, uint256 arg2) public payable/// @param arg0 ["address", "uint160", "bytes20", "int160"]/// @param arg1 ["address", "uint160", "bytes20", "int160"]/// @param arg2 ["uint256", "bytes32", "int256"]function Unresolved_cf7a1d77(address arg0,address arg1,uint256 arg2)publicpayable{require(!arg2 >0x0100000000);uint256 var_a = var_a +(0x20+(((0x1f+(arg2))/0x20)*0x20));
var_c = msg.data[36:36];require(address(store_a)==0);require(address(store_a)==0);require((keccak256(var_e)+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)==0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc,"Cannot set a proxy implementation to a non-contract address");require(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");require(!(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash)),"Cannot set a proxy implementation to a non-contract address");
store_a =address(arg0);require(!var_a.length);require(var_a.length <0x20);require((var_a.length +0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)<0x20);(bool success,bytesmemory ret0)=address(arg0).Unresolved_(var_l);// delegatecallrequire(ret0.length ==0);require((keccak256(var_e)+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)==0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103,"Cannot set a proxy implementation to a non-contract address");
store_b =address(arg1);require(!(!address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");}/// @custom:selector 0xd1f57894/// @custom:signature Unresolved_d1f57894(address arg0, uint256 arg1) public payable/// @param arg0 ["address", "uint160", "bytes20", "int160"]/// @param arg1 ["uint256", "bytes32", "int256"]function Unresolved_d1f57894(address arg0,uint256 arg1)publicpayable{require(!arg1 >0x0100000000);uint256 var_a = var_a +(0x20+(((0x1f+(arg1))/0x20)*0x20));
var_c = msg.data[36:36];require(address(store_a)==0);require((keccak256(var_e)+0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)==0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc,"Cannot set a proxy implementation to a non-contract address");require(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");require(!(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash)),"Cannot set a proxy implementation to a non-contract address");
store_a =address(arg0);require(!var_a.length);require(var_a.length <0x20);require((var_a.length +0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)<0x20);(bool success,bytesmemory ret0)=address(arg0).Unresolved_(var_l);// delegatecallrequire(ret0.length ==0);require(!(!address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");}/// @custom:selector 0xf851a440/// @custom:signature admin() public returns (uint256)function admin()publicreturns(uint256){require(!(address(msg.sender))==(address(store_b)));require(!(address(msg.sender))==(address(store_b)));(bool success,bytesmemory ret0)=address(store_a).Unresolved_(var_b);// delegatecallreturn;returnaddress(store_b);}/// @custom:selector 0x3659cfe6/// @custom:signature upgradeTo(address arg0) public returns (uint256)/// @param arg0 ["address", "uint160", "bytes20", "int160"]function upgradeTo(address arg0)publicreturns(uint256){require(!(address(msg.sender))==(address(store_b)));require(!(address(msg.sender))==(address(store_b)));(bool success,bytesmemory ret0)=address(store_a).Unresolved_(var_b);// delegatecallreturn;require(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");require(!(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash)),"Cannot set a proxy implementation to a non-contract address");
store_a =address(arg0);emit Upgraded(address(arg0));require(!(!address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");
store_a =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)publicpayablereturns(uint256){require(!arg1 >0x0100000000);require(!(address(msg.sender))==(address(store_b)));require(!(address(msg.sender))==(address(store_b)));(bool success,bytesmemory ret0)=address(store_a).Unresolved_(var_b);// delegatecallreturn;require(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");require(!(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg0).codehash)),"Cannot set a proxy implementation to a non-contract address");
store_a =address(arg0);emit Upgraded(address(arg0));(bool success,bytesmemory ret0)=address(arg0).Unresolved_(var_i);// delegatecallrequire(ret0.length ==0);require(!(!address(arg0).codehash),"Cannot set a proxy implementation to a non-contract address");}/// @custom:selector 0x5c60da1b/// @custom:signature implementation() public returns (uint256)function implementation()publicreturns(uint256){require(!(address(msg.sender))==(address(store_b)));require(!(address(msg.sender))==(address(store_b)));(bool success,bytesmemory ret0)=address(store_a).Unresolved_(var_b);// delegatecallreturn;returnaddress(store_a);}/// @custom:selector 0x8f283970/// @custom:signature changeAdmin(address arg0) public returns (uint256)/// @param arg0 ["address", "uint160", "bytes20", "int160"]function changeAdmin(address arg0)publicreturns(uint256){require(!(address(msg.sender))==(address(store_b)));require(!(address(msg.sender))==(address(store_b)));(bool success,bytesmemory ret0)=address(store_a).Unresolved_(var_b);// delegatecallreturn;require(address(arg0),"Cannot change the admin of a proxy to the zero address");emit AdminChanged(address(store_b),address(arg0));
store_b =address(arg0);}}
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)
on-chain verify terminalⓘ
Query any address live from your own browser. code/owner/symbol/supply/storage/impl read directly from the PulseChain RPC - these are live on-chain facts anyone can reproduce. An address can be a wallet (EOA) or a contract; use code <addr> to tell them apart (no code = wallet). The trace command is different: it uses a pre-scanned dataset (not live), still being expanded block-by-block, so some addresses aren't in it yet. Nothing is sent or logged.