// 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 {addresspublic implementation;addresspublic upgradeabilityOwner;uint256public version;event Upgraded(uint256,address);event ProxyOwnershipTransferred(address,address);/// @custom:selector 0x3ad06d16/// @custom:signature upgradeTo(uint256 arg0, address arg1) public/// @param arg0 ["uint256", "bytes32", "int256"]/// @param arg1 ["address", "uint160", "bytes20", "int160"]function upgradeTo(uint256 arg0,address arg1)public{require(address(msg.sender)==(address(upgradeabilityOwner)));require(!(address(implementation))==(address(arg1)));require(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg1).codehash));require(!0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg1).codehash));require(arg0 > version);
version = arg0;
implementation =(address(arg1))|(uint96(implementation));emit Upgraded(address(arg1), arg0);require(address(arg1).codehash);}/// @custom:selector 0xf1739cae/// @custom:signature transferProxyOwnership(address arg0) public/// @param arg0 ["address", "uint160", "bytes20", "int160"]function transferProxyOwnership(address arg0)public{require(address(msg.sender)==(address(upgradeabilityOwner)));require(address(arg0));emit ProxyOwnershipTransferred(address(upgradeabilityOwner),address(arg0));
upgradeabilityOwner =(address(arg0))|(uint96(upgradeabilityOwner));}/// @custom:selector 0xa9c45fcb/// @custom:signature Unresolved_a9c45fcb(uint256 arg0, address arg1, uint256 arg2) public payable/// @param arg0 ["uint256", "bytes32", "int256"]/// @param arg1 ["address", "uint160", "bytes20", "int160"]/// @param arg2 ["uint256", "bytes32", "int256"]function Unresolved_a9c45fcb(uint256 arg0,address arg1,uint256 arg2)publicpayable{require(!arg2 >0x0100000000);require(address(msg.sender)==(address(upgradeabilityOwner)));require(address(msg.sender)==(address(upgradeabilityOwner)));require(!(address(implementation))==(address(arg1)));require(0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg1).codehash));require(!0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470==(address(arg1).codehash));require(arg0 > version);
version = arg0;
implementation =(address(arg1))|(uint96(implementation));emit Upgraded(address(arg1), arg0);(bool success,bytesmemory ret0)=address(this).transfer(msg.value);require(ret0.length ==0);require(address(arg1).codehash);}}
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.