0xf0a32b39fa1f5779a0b2858893d26d8f1fe79043

deployer: unknown relevance score: 0 status: partially_identified bytecode: 10511 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 {
    uint256 public constant MAX_FEE_BPS = 1000;
    uint256 public constant MAX_ROYALTY_BPS = 1000;
    uint256 public constant unresolved_a7fcce57 = 120000;
    uint256 public constant PERMIT2 = 180847076211518657644945212059388835;
    
    address public pendingOwner;
    address public owner;
    bytes32 store_d;
    uint16 public feeBps;
    mapping(bytes32 => bytes32) storage_map_g;
    mapping(bytes32 => bytes32) storage_map_e;
    mapping(bytes32 => bytes32) storage_map_c;
    
    error CustomError_00000000();
    event FeeChanged(uint16, address);
    event OwnershipTransferStarted(address, address);
    event NonceBumped(address, uint256);
    event OrderCancelled(bytes32, address);
    event OwnershipTransferred(address, address);
    
    /// @custom:selector    0x715018a6
    /// @custom:signature   renounceOwnership() public payable returns (uint256)
    function renounceOwnership() public payable returns (uint256) {
        require(msg.value);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0);
        require(msg.sender - (address(owner)), CustomError_118cdaa7());
        pendingOwner = uint96(pendingOwner);
        owner = uint96(owner);
        emit OwnershipTransferred(address(owner), 0);
        return ;
    }
    
    /// @custom:selector    0x79ba5097
    /// @custom:signature   acceptOwnership() public payable returns (uint256)
    function acceptOwnership() public payable returns (uint256) {
        require(msg.value);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0);
        require(address(pendingOwner) - msg.sender, CustomError_118cdaa7());
        pendingOwner = uint96(pendingOwner);
        owner = (uint96(owner)) | msg.sender;
        emit OwnershipTransferred(address(owner), msg.sender);
        return ;
    }
    
    /// @custom:selector    0x5511f319
    /// @custom:signature   cancelledOrFilled(bytes32 arg0) public view returns (bool)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function cancelledOrFilled(bytes32 arg0) public view returns (bool) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20);
        uint256 var_a = arg0;
        return !(!bytes1(storage_map_c[var_a]));
    }
    
    /// @custom:selector    0x0a4d2aa5
    /// @custom:signature   Unresolved_0a4d2aa5(uint256 arg0, uint256 arg1, bool arg2, bool arg3, bool arg4, address arg5, uint256 arg6, uint256 arg7, address arg8, uint256 arg9, uint256 arg10, uint64 arg11, uint64 arg12, uint256 arg13, uint256 arg14) public payable returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    /// @param              arg2 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg3 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg4 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg5 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg6 ["uint256", "bytes32", "int256"]
    /// @param              arg7 ["uint256", "bytes32", "int256"]
    /// @param              arg8 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg9 ["uint256", "bytes32", "int256"]
    /// @param              arg10 ["uint256", "bytes32", "int256"]
    /// @param              arg11 ["uint64", "bytes8", "int64"]
    /// @param              arg12 ["uint64", "bytes8", "int64"]
    /// @param              arg13 ["uint256", "bytes32", "int256"]
    /// @param              arg14 ["uint256", "bytes32", "int256"]
    function Unresolved_0a4d2aa5(uint256 arg0, uint256 arg1, bool arg2, bool arg3, bool arg4, address arg5, uint256 arg6, uint256 arg7, address arg8, uint256 arg9, uint256 arg10, uint64 arg11, uint64 arg12, uint256 arg13, uint256 arg14) public payable returns (uint256) {
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
        require(arg0 > 0xffffffffffffffff);
        require(!(arg0 + 0x23) < msg.data.length);
        require(arg0 > 0xffffffffffffffff);
        require(((arg0 + (arg0 * 0x01c0)) + 0x24) > msg.data.length);
        require(arg1 > 0xffffffffffffffff);
        require(arg1 > 0xffffffffffffffff);
        require(store_d == 0x02, CustomError_3ee5aeb5());
        store_d = 0x02;
        require(!(arg0 == (arg1)), "len");
        require(0 < (arg0));
        require(msg.data[(arg0 + 0) + 0x44] - (bytes1(msg.data[(arg0 + 0) + 0x44])));
        require(!(bytes1(msg.data[(arg0 + 0) + 0x44])), CustomError_8f3723ea());
        require(!(!bytes1(msg.data[(arg0 + 0) + 0x44])), CustomError_8f3723ea());
        require(msg.data[(arg0 + 0) + 0x0104] - (address(msg.data[(arg0 + 0) + 0x0104])));
        require(address(msg.data[(arg0 + 0) + 0x0104]), CustomError_ca0a69a7());
        require(msg.data[(arg0 + 0) + 0x24] - (address(msg.data[(arg0 + 0) + 0x24])));
        require(msg.data[((arg0 + 0) + 0x24) + 0x20] - (bytes1(msg.data[((arg0 + 0) + 0x24) + 0x20])));
        require(msg.data[((arg0 + 0) + 0x24) + 0x40] - (bytes1(msg.data[((arg0 + 0) + 0x24) + 0x40])));
        require(msg.data[((arg0 + 0) + 0x24) + 0x60] - (bytes1(msg.data[((arg0 + 0) + 0x24) + 0x60])));
        require(msg.data[((arg0 + 0) + 0x24) + 0x80] - (address(msg.data[((arg0 + 0) + 0x24) + 0x80])));
        require(msg.data[((arg0 + 0) + 0x24) + 0xe0] - (address(msg.data[((arg0 + 0) + 0x24) + 0xe0])));
        require(msg.data[0x0140 + ((arg0 + 0) + 0x24)] - (uint64(msg.data[0x0140 + ((arg0 + 0) + 0x24)])));
        require(msg.data[0x0160 + ((arg0 + 0) + 0x24)] - (uint64(msg.data[0x0160 + ((arg0 + 0) + 0x24)])));
        if (((var_t + 0x0200) > 0xffffffffffffffff) | ((var_t + 0x0200) < var_t)) {
            uint256 var_t = var_t + 0x0200;
            require(((var_t + 0x0200) > 0xffffffffffffffff) | ((var_t + 0x0200) < var_t), CustomError_98d4901c());
            require(0x0171 - block.chainid, CustomError_98d4901c());
            var_t = var_t + 0x80;
            var_u = keccak256(var_ab);
            require(((var_t + 0x80) > 0xffffffffffffffff) | ((var_t + 0x80) < var_t), CustomError_98d4901c());
            require(!(bytes1(storage_map_e[var_u])), CustomError_98d4901c());
            require(!(bytes1(storage_map_e[var_u])), CustomError_98d4901c());
            require(!(bytes1(storage_map_e[var_u])), CustomError_98d4901c());
            require(bytes1(storage_map_e[var_u]), CustomError_98d4901c());
            require(!(!msg.data[(arg0 + 0) + 0xe4]), CustomError_98d4901c());
        }
        require(((var_t + 0xc0) > 0xffffffffffffffff) | ((var_t + 0xc0) < var_t), CustomError_98d4901c());
        require(msg.value < 0, CustomError_98d4901c());
        require(msg.value > 0, CustomError_90b8ec18());
        require((msg.value - 0) > msg.value, CustomError_90b8ec18());
        (bool success, bytes memory ret0) = address(msg.sender).transfer(msg.value - 0);
        require(!ret0.length, CustomError_90b8ec18());
        store_d = 0x01;
        return ;
        require(ret0.length > 0xffffffffffffffff);
        require(((var_t + (uint248((0x20 + (ret0.length + 0x1f)) + 0x1f))) > 0xffffffffffffffff) | ((var_t + (uint248((0x20 + (ret0.length + 0x1f)) + 0x1f))) < var_t));
        store_d = 0x01;
        return ;
    }
    
    /// @custom:selector    0x70ae92d2
    /// @custom:signature   nonce(address arg0) public view returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function nonce(address arg0) public view returns (uint256) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20);
        require(arg0 - (address(arg0)));
        address var_a = address(arg0);
        return storage_map_c[var_a];
    }
    
    /// @custom:selector    0xf2fde38b
    /// @custom:signature   transferOwnership(address arg0) public payable returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function transferOwnership(address arg0) public payable returns (uint256) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20);
        require(arg0 - (address(arg0)));
        require(msg.sender - (address(owner)), CustomError_118cdaa7());
        pendingOwner = (address(arg0)) | (uint96(pendingOwner));
        emit OwnershipTransferStarted(address(owner), address(arg0));
        return ;
    }
    
    /// @custom:selector    0x161626ba
    /// @custom:signature   Unresolved_161626ba(uint256 arg0, bool arg1, bool arg2, uint256 arg3, uint256 arg4, uint256 arg5, uint256 arg6, uint256 arg7, uint256 arg8) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg3 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg5 ["uint256", "bytes32", "int256"]
    /// @param              arg6 ["uint256", "bytes32", "int256"]
    /// @param              arg14 ["uint256", "bytes32", "int256"]
    /// @param              arg21 ["uint256", "bytes32", "int256"]
    /// @param              arg22 ["uint256", "bytes32", "int256"]
    /// @param              arg23 ["uint256", "bytes32", "int256"]
    function Unresolved_161626ba(uint256 arg0, bool arg1, bool arg2, uint256 arg3, uint256 arg4, uint256 arg5, uint256 arg6, uint256 arg7, uint256 arg8) public payable {
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0x0300);
        require(0x01c0 > (msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc));
        require(arg14 > 0xffffffffffffffff);
        require(arg14 > 0xffffffffffffffff);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1c) < 0xc0);
        require(arg21 > 0xffffffffffffffff);
        require(arg21 > 0xffffffffffffffff);
        require(arg23 > 0xffffffffffffffff);
        require(arg23 > 0xffffffffffffffff);
        require(store_d == 0x02, CustomError_3ee5aeb5());
        store_d = 0x02;
        require(arg1 - (bytes1(arg1)));
        require(bytes1(arg1), CustomError_8f3723ea());
        require(arg3 - (bytes1(arg3)));
        require(bytes1(arg3), CustomError_936bb5ad());
        require(!(arg22 == arg5), CustomError_936bb5ad());
        require(arg22, CustomError_936bb5ad());
        require(!arg6, CustomError_749b5939());
    }
    
    /// @custom:selector    0xf698da25
    /// @custom:signature   domainSeparator() public view returns (uint256)
    function domainSeparator() public view returns (uint256) {
        require(msg.value);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0);
        if (0x0171 - block.chainid) {
            return 0xf23ef48696c11017a55a86cbf6e6cffa68e24b4be144c28141627cc860f7ffa2;
            if (((var_g + 0xc0) > 0xffffffffffffffff) | ((var_g + 0xc0) < var_g)) {
                return keccak256(var_k);
            }
        }
    }
    
    /// @custom:selector    0x88fa8dc4
    /// @custom:signature   Unresolved_88fa8dc4(uint256 arg0, uint256 arg1) public view returns (bool)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function Unresolved_88fa8dc4(uint256 arg0, uint256 arg1) public view returns (bool) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
        var_a = arg1;
        return !(!bytes1(storage_map_c[var_a]));
    }
    
    /// @custom:selector    0x1f12d904
    /// @custom:signature   Unresolved_1f12d904(uint256 arg0, bool arg1, bool arg2, bool arg3, address arg4, uint256 arg5, uint256 arg6, address arg7, uint256 arg8, uint256 arg9, uint64 arg10, uint64 arg11, uint256 arg12, uint256 arg13, uint256 arg14, uint256 arg15, uint256 arg16) public payable returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg2 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg3 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg4 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg5 ["uint256", "bytes32", "int256"]
    /// @param              arg6 ["uint256", "bytes32", "int256"]
    /// @param              arg7 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg8 ["uint256", "bytes32", "int256"]
    /// @param              arg9 ["uint256", "bytes32", "int256"]
    /// @param              arg10 ["uint64", "bytes8", "int64"]
    /// @param              arg11 ["uint64", "bytes8", "int64"]
    /// @param              arg12 ["uint256", "bytes32", "int256"]
    /// @param              arg13 ["uint256", "bytes32", "int256"]
    /// @param              arg14 ["uint256", "bytes32", "int256"]
    /// @param              arg15 ["uint256", "bytes32", "int256"]
    /// @param              arg16 ["uint256", "bytes32", "int256"]
    function Unresolved_1f12d904(uint256 arg0, bool arg1, bool arg2, bool arg3, address arg4, uint256 arg5, uint256 arg6, address arg7, uint256 arg8, uint256 arg9, uint64 arg10, uint64 arg11, uint256 arg12, uint256 arg13, uint256 arg14, uint256 arg15, uint256 arg16) public payable returns (uint256) {
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x0220);
        require(0x01c0 > (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length));
        require(arg14 > 0xffffffffffffffff);
        require(arg14 > 0xffffffffffffffff);
        require(arg15 > 0xffffffffffffffff);
        require(arg15 > 0xffffffffffffffff);
        require(arg16 > 0xffffffffffffffff);
        require(arg16 > 0xffffffffffffffff);
        require(store_d == 0x02, CustomError_3ee5aeb5());
        store_d = 0x02;
        require(arg1 - (bytes1(arg1)));
        require(bytes1(arg1), CustomError_8f3723ea());
        require(arg3 - (bytes1(arg3)));
        require(bytes1(arg3) - 0x02);
        require(arg7 - (address(arg7)));
        require(address(arg7), CustomError_ca0a69a7());
        require(!(arg15 == (arg16)), "len");
        require(!arg6);
        require(arg2 - (bytes1(arg2)));
        require(!bytes1(arg2));
        require(!bytes1(arg2));
        require(arg0 - (address(arg0)));
        uint256 var_e = address(arg0);
        require(arg13 - storage_map_g[var_e]);
        require(arg10 - (uint64(arg10)));
        require(!(!uint64(arg10)), CustomError_6f312cbd());
        require(block.timestamp < (uint64(arg10)), CustomError_6f312cbd());
        require(arg11 - (uint64(arg11)));
        require(uint64(arg11));
        require(block.timestamp > (uint64(arg11)));
        require(arg1 - (bytes1(arg1)));
        require(arg4 - (address(arg4)));
        require(arg7 - (address(arg7)));
        var_a = 0x01e0;
        require(((var_v + 0x0200) > 0xffffffffffffffff) | ((var_v + 0x0200) < var_v), CustomError_bdb90210());
        uint256 var_v = var_v + 0x0200;
        require(0x0171 - block.chainid, CustomError_bdb90210());
        require(((var_v + 0x80) > 0xffffffffffffffff) | ((var_v + 0x80) < var_v), CustomError_bdb90210());
        var_v = var_v + 0x80;
        var_e = keccak256(var_aa);
        require(bytes1(storage_map_g[var_e]), CustomError_bdb90210());
        require(!address(arg0).code.length, CustomError_7e079014());
        require(0x41 - (arg14), CustomError_7e079014());
        require(((arg14 + 0x20) + 0x20) > 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0, CustomError_7e079014());
        require(!0, CustomError_7e079014());
        require(arg9, CustomError_7e079014());
        require(arg9 == arg8, CustomError_7e079014());
        require(arg9 > arg8, CustomError_7e079014());
        require(arg11 - (uint64(arg11)));
        require(arg10 - (uint64(arg10)));
        require(!(uint64(arg11)) > (uint64(arg10)));
        require(!block.timestamp > (uint64(arg10)));
        require(0 < (arg15));
        require(!0 < (arg15));
        var_e = (0 + (arg15 + 0x20));
        require(bytes1(storage_map_g[var_e]));
        require(!0 < (arg16));
        require((arg16 + 0x20) + ((arg16 + 0x20) + 0) > 0xffffffffffffffff);
        require(((var_v + 0x40) > 0xffffffffffffffff) | ((var_v + 0x40) < var_v));
        var_v = var_v + 0x40;
        require(0 < ((arg16 + 0x20) + ((arg16 + 0x20) + 0)));
        require(!0 < ((arg16 + 0x20) + ((arg16 + 0x20) + 0)));
        require(keccak256(var_aa) > (0 + (0x20 + ((arg16 + 0x20) + ((arg16 + 0x20) + 0)))));
        require(((var_v + 0x60) > 0xffffffffffffffff) | ((var_v + 0x60) < var_v));
        require(((var_v + 0x60) > 0xffffffffffffffff) | ((var_v + 0x60) < var_v));
        require(!(keccak256(var_aa)) == arg5);
        var_e = (0 + (arg15 + 0x20));
        var_f = keccak256(var_e);
        storage_map_g[var_e] = (uint248(storage_map_g[var_e])) | 0x01;
        require(arg0 - (address(arg0)));
        require(arg4 - (address(arg4)));
        require(!(((arg8 * (uint16(feeBps))) / arg8) == (uint16(feeBps))) | !arg8);
        uint256 var_ah = (0 + (arg15 + 0x20));
        uint256 var_ai = arg8;
        require(((var_v + 0x80) > 0xffffffffffffffff) | ((var_v + 0x80) < var_v));
        var_v = var_v + 0x80;
        (bool success, bytes memory ret0) = address(arg4).{ gas: 0x01d4c0 }Unresolved_2a55205a(var_ah, var_ai); // staticcall
        require(!ret0.length);
        require(((arg8 * (uint16(feeBps))) / 0x2710) > (((arg8 * (uint16(feeBps))) / 0x2710) + 0));
        require((((arg8 * (uint16(feeBps))) / 0x2710) + 0) > arg8);
        require((arg8 - ((arg8 * (uint16(feeBps))) / 0x2710)) > arg8);
        require(((0x60 + var_aj) - 0x60) < 0x40);
        require(var_a - (address(var_a)));
        if (address(var_a)) {
            require(address(var_a));
            require(!address(var_a));
            require(arg8 | (((arg8 * 0x03e8) / arg8) == 0x03e8));
        }
        if (var_aj < 0x40) {
        }
        require(ret0.length > 0xffffffffffffffff);
        require(((var_v + (uint248((0x20 + (ret0.length + 0x1f)) + 0x1f))) > 0xffffffffffffffff) | ((var_v + (uint248((0x20 + (ret0.length + 0x1f)) + 0x1f))) < var_v));
        var_v = var_v + (uint248((0x20 + (ret0.length + 0x1f)) + 0x1f));
        require(msg.value < 0, CustomError_98d4901c());
        if (msg.value > 0) {
            store_d = 0x01;
            return ;
            require(msg.value > 0, CustomError_7e079014());
        }
        require(!((arg14 + 0x20) + 0x40) == 0x1b);
        require(!((arg14 + 0x20) + 0x40) == 0x1b);
        address var_e = ecrecover(keccak256(var_aa), ((arg14 + 0x20) + 0x40), (arg14 + 0x20), ((arg14 + 0x20) + 0x20));
        require(!var_f);
        require(!(!address(var_e)), CustomError_5cd5d233());
        require(!(address(arg0) == (address(var_e))), CustomError_5cd5d233());
        require(((var_v + 0xc0) > 0xffffffffffffffff) | ((var_v + 0xc0) < var_v), CustomError_203d82d8());
        require(!(!uint64(arg11)), CustomError_203d82d8());
    }
    
    /// @custom:selector    0x7ca3d9c3
    /// @custom:signature   Unresolved_7ca3d9c3(address arg0, bool arg1, bool arg2, bool arg3, address arg4, uint256 arg5, uint256 arg6, address arg7, uint256 arg8, uint256 arg9, uint64 arg10, uint64 arg11, uint256 arg12, uint256 arg13) public view returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg2 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg3 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg4 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg5 ["uint256", "bytes32", "int256"]
    /// @param              arg6 ["uint256", "bytes32", "int256"]
    /// @param              arg7 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg8 ["uint256", "bytes32", "int256"]
    /// @param              arg9 ["uint256", "bytes32", "int256"]
    /// @param              arg10 ["uint64", "bytes8", "int64"]
    /// @param              arg11 ["uint64", "bytes8", "int64"]
    /// @param              arg12 ["uint256", "bytes32", "int256"]
    /// @param              arg13 ["uint256", "bytes32", "int256"]
    function Unresolved_7ca3d9c3(address arg0, bool arg1, bool arg2, bool arg3, address arg4, uint256 arg5, uint256 arg6, address arg7, uint256 arg8, uint256 arg9, uint64 arg10, uint64 arg11, uint256 arg12, uint256 arg13) public view returns (uint256) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x01c0);
        require(arg0 - (address(arg0)));
        require(arg1 - (bytes1(arg1)));
        require(arg2 - (bytes1(arg2)));
        require(arg3 - (bytes1(arg3)));
        require(arg4 - (address(arg4)));
        require(arg7 - (address(arg7)));
        require(arg10 - (uint64(arg10)));
        require(arg11 - (uint64(arg11)));
        require(((var_q + 0x0200) > 0xffffffffffffffff) | ((var_q + 0x0200) < var_q));
        uint256 var_q = var_q + 0x0200;
        require(0x0171 - block.chainid);
        require(((var_q + 0x80) > 0xffffffffffffffff) | ((var_q + 0x80) < var_q));
        var_q = var_q + 0x80;
        return keccak256(var_w);
        require(((var_q + 0xc0) > 0xffffffffffffffff) | ((var_q + 0xc0) < var_q));
    }
    
    /// @custom:selector    0x30f738be
    /// @custom:signature   setFee(uint16 arg0, address arg1) public payable returns (uint256)
    /// @param              arg0 ["uint16", "bytes2", "int16"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function setFee(uint16 arg0, address arg1) public payable returns (uint256) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
        require(arg0 - (uint16(arg0)));
        require(arg1 - (address(arg1)));
        require(msg.sender - (address(owner)), CustomError_118cdaa7());
        require(uint16(arg0) > 0x03e8, "fee too high");
        require(!(address(arg1)), "recipient 0");
        feeBps = (uint80(feeBps) | (uint16(arg0))) | (address(arg1 << 0x10));
        emit FeeChanged(uint16(arg0), address(arg1));
        return ;
    }
    
    /// @custom:selector    0xd6aef706
    /// @custom:signature   Unresolved_d6aef706(address arg0, bool arg1, bool arg2, bool arg3, address arg4, uint256 arg5, uint256 arg6, address arg7, uint256 arg8, uint256 arg9, uint64 arg10, uint64 arg11, uint256 arg12, uint256 arg13) public payable returns (uint256)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg2 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg3 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg4 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg5 ["uint256", "bytes32", "int256"]
    /// @param              arg6 ["uint256", "bytes32", "int256"]
    /// @param              arg7 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg8 ["uint256", "bytes32", "int256"]
    /// @param              arg9 ["uint256", "bytes32", "int256"]
    /// @param              arg10 ["uint64", "bytes8", "int64"]
    /// @param              arg11 ["uint64", "bytes8", "int64"]
    /// @param              arg12 ["uint256", "bytes32", "int256"]
    /// @param              arg13 ["uint256", "bytes32", "int256"]
    function Unresolved_d6aef706(address arg0, bool arg1, bool arg2, bool arg3, address arg4, uint256 arg5, uint256 arg6, address arg7, uint256 arg8, uint256 arg9, uint64 arg10, uint64 arg11, uint256 arg12, uint256 arg13) public payable returns (uint256) {
        require(msg.value);
        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x01c0);
        require(arg0 - (address(arg0)));
        require(address(arg0) - msg.sender, "not offerer");
        require(arg0 - (address(arg0)));
        require(arg1 - (bytes1(arg1)));
        require(arg2 - (bytes1(arg2)));
        require(arg3 - (bytes1(arg3)));
        require(arg4 - (address(arg4)));
        require(arg7 - (address(arg7)));
        require(arg10 - (uint64(arg10)));
        require(arg11 - (uint64(arg11)));
        require(((var_t + 0x0200) > 0xffffffffffffffff) | ((var_t + 0x0200) < var_t));
        uint256 var_t = var_t + 0x0200;
        require(0x0171 - block.chainid);
        require(((var_t + 0x80) > 0xffffffffffffffff) | ((var_t + 0x80) < var_t));
        var_t = var_t + 0x80;
        var_u = keccak256(var_z);
        storage_map_e[var_u] = 0x01 | (uint248(storage_map_e[var_u]));
        emit OrderCancelled(keccak256(var_z), msg.sender);
        return ;
        require(((var_t + 0xc0) > 0xffffffffffffffff) | ((var_t + 0xc0) < var_t));
    }
    
    /// @custom:selector    0x6f95be10
    /// @custom:signature   Unresolved_6f95be10(uint256 arg0, bool arg1, bool arg2, uint256 arg3, uint256 arg4, address arg5, uint256 arg6, uint256 arg7, uint256 arg8, uint256 arg9) public payable
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg3 ["bool", "uint8", "bytes1", "int8"]
    /// @param              arg5 ["uint256", "bytes32", "int256"]
    /// @param              arg6 ["uint256", "bytes32", "int256"]
    /// @param              arg7 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg14 ["uint256", "bytes32", "int256"]
    /// @param              arg21 ["uint256", "bytes32", "int256"]
    /// @param              arg22 ["uint256", "bytes32", "int256"]
    /// @param              arg23 ["uint256", "bytes32", "int256"]
    function Unresolved_6f95be10(uint256 arg0, bool arg1, bool arg2, uint256 arg3, uint256 arg4, address arg5, uint256 arg6, uint256 arg7, uint256 arg8, uint256 arg9) public payable {
        require(msg.value);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0x0300);
        require(0x01c0 > (msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc));
        require(arg14 > 0xffffffffffffffff);
        require(arg14 > 0xffffffffffffffff);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1c) < 0xc0);
        require(arg21 > 0xffffffffffffffff);
        require(arg21 > 0xffffffffffffffff);
        require(arg23 > 0xffffffffffffffff);
        require(arg23 > 0xffffffffffffffff);
        require(store_d == 0x02, CustomError_3ee5aeb5());
        store_d = 0x02;
        require(arg1 - (bytes1(arg1)));
        require(bytes1(arg1) - 0x01);
        require(arg7 - (address(arg7)));
        require(!address(arg7));
        require(arg3 - (bytes1(arg3)));
        require(bytes1(arg3));
        require(arg3 - (bytes1(arg3)));
        require(bytes1(arg3) - 0x01, CustomError_749b5939());
        require(!arg6, CustomError_749b5939());
        require(arg22 - arg5, CustomError_936bb5ad());
    }
    
    /// @custom:selector    0xd1a1c334
    /// @custom:signature   bumpNonce() public payable returns (uint256)
    function bumpNonce() public payable returns (uint256) {
        require(msg.value);
        require((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0);
        address var_a = msg.sender;
        if (storage_map_c[var_a] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {
            var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
            storage_map_c[var_a] = 0x01 + storage_map_c[var_a];
            emit NonceBumped(msg.sender, 0x01 + storage_map_c[var_a]);
            return ;
        }
    }
}

ABI

[
  {
    "type": "function",
    "name": "MAX_FEE_BPS",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "MAX_ROYALTY_BPS",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "PERMIT2",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_0a4d2aa5",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      },
      {
        "name": "arg2",
        "type": "bool"
      },
      {
        "name": "arg3",
        "type": "bool"
      },
      {
        "name": "arg4",
        "type": "bool"
      },
      {
        "name": "arg5",
        "type": "address"
      },
      {
        "name": "arg6",
        "type": "uint256"
      },
      {
        "name": "arg7",
        "type": "uint256"
      },
      {
        "name": "arg8",
        "type": "address"
      },
      {
        "name": "arg9",
        "type": "uint256"
      },
      {
        "name": "arg10",
        "type": "uint256"
      },
      {
        "name": "arg11",
        "type": "uint64"
      },
      {
        "name": "arg12",
        "type": "uint64"
      },
      {
        "name": "arg13",
        "type": "uint256"
      },
      {
        "name": "arg14",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_161626ba",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "bool"
      },
      {
        "name": "arg2",
        "type": "bool"
      },
      {
        "name": "arg3",
        "type": "uint256"
      },
      {
        "name": "arg4",
        "type": "uint256"
      },
      {
        "name": "arg5",
        "type": "uint256"
      },
      {
        "name": "arg6",
        "type": "uint256"
      },
      {
        "name": "arg7",
        "type": "uint256"
      },
      {
        "name": "arg8",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_1f12d904",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "bool"
      },
      {
        "name": "arg2",
        "type": "bool"
      },
      {
        "name": "arg3",
        "type": "bool"
      },
      {
        "name": "arg4",
        "type": "address"
      },
      {
        "name": "arg5",
        "type": "uint256"
      },
      {
        "name": "arg6",
        "type": "uint256"
      },
      {
        "name": "arg7",
        "type": "address"
      },
      {
        "name": "arg8",
        "type": "uint256"
      },
      {
        "name": "arg9",
        "type": "uint256"
      },
      {
        "name": "arg10",
        "type": "uint64"
      },
      {
        "name": "arg11",
        "type": "uint64"
      },
      {
        "name": "arg12",
        "type": "uint256"
      },
      {
        "name": "arg13",
        "type": "uint256"
      },
      {
        "name": "arg14",
        "type": "uint256"
      },
      {
        "name": "arg15",
        "type": "uint256"
      },
      {
        "name": "arg16",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_6f95be10",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "bool"
      },
      {
        "name": "arg2",
        "type": "bool"
      },
      {
        "name": "arg3",
        "type": "uint256"
      },
      {
        "name": "arg4",
        "type": "uint256"
      },
      {
        "name": "arg5",
        "type": "address"
      },
      {
        "name": "arg6",
        "type": "uint256"
      },
      {
        "name": "arg7",
        "type": "uint256"
      },
      {
        "name": "arg8",
        "type": "uint256"
      },
      {
        "name": "arg9",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "Unresolved_7ca3d9c3",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "bool"
      },
      {
        "name": "arg2",
        "type": "bool"
      },
      {
        "name": "arg3",
        "type": "bool"
      },
      {
        "name": "arg4",
        "type": "address"
      },
      {
        "name": "arg5",
        "type": "uint256"
      },
      {
        "name": "arg6",
        "type": "uint256"
      },
      {
        "name": "arg7",
        "type": "address"
      },
      {
        "name": "arg8",
        "type": "uint256"
      },
      {
        "name": "arg9",
        "type": "uint256"
      },
      {
        "name": "arg10",
        "type": "uint64"
      },
      {
        "name": "arg11",
        "type": "uint64"
      },
      {
        "name": "arg12",
        "type": "uint256"
      },
      {
        "name": "arg13",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_88fa8dc4",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_a7fcce57",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_d6aef706",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "bool"
      },
      {
        "name": "arg2",
        "type": "bool"
      },
      {
        "name": "arg3",
        "type": "bool"
      },
      {
        "name": "arg4",
        "type": "address"
      },
      {
        "name": "arg5",
        "type": "uint256"
      },
      {
        "name": "arg6",
        "type": "uint256"
      },
      {
        "name": "arg7",
        "type": "address"
      },
      {
        "name": "arg8",
        "type": "uint256"
      },
      {
        "name": "arg9",
        "type": "uint256"
      },
      {
        "name": "arg10",
        "type": "uint64"
      },
      {
        "name": "arg11",
        "type": "uint64"
      },
      {
        "name": "arg12",
        "type": "uint256"
      },
      {
        "name": "arg13",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "acceptOwnership",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "bumpNonce",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "cancelledOrFilled",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "domainSeparator",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "feeBps",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "feeRecipient",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "nonce",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pendingOwner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "renounceOwnership",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "setFee",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint16"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable"
  },
  {
    "type": "event",
    "name": "FeeChanged",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint16",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "NonceBumped",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "uint256",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OrderCancelled",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferStarted",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "AlreadyDone",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BadAmount",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BadSide",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BadSignature",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CustomError_000000000000000000000000000000000000000000000000000000007e079014",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CustomError_00000000000000000000000000000000000000000000000000000000a2e87f10",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CustomError_00000000000000000000000000000000000000000000000000000000ca0a69a7",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CustomError_00000000000000000000000000000000000000000000000000000000dc680269",
    "inputs": []
  },
  {
    "type": "error",
    "name": "Expired",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NonceStale",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NotStarted",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OwnableUnauthorizedAccount",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "ReentrancyGuardReentrantCall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TokenMismatch",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TransferFailed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WrongValue",
    "inputs": []
  }
]

UNKNOWN SELECTORS (27)

0x1ccc9ea7unknown
0x26352407unknown
0x0a4d2aa5unknown
0xca0a69a7unknown
0x7ca55c77unknown
0x0407b05bunknown
0xd6aef706unknown
0x161626baunknown
0x0a2e87f1unknown
0x30f738beunknown
0x152a902dunknown
0x1b63c28bunknown
0x79212195unknown
0x0bdb9021unknown
0xa7fcce57unknown
0x7ca3d9c3unknown
0x0b135d3funknown
0x479b91f5unknown
0x6f95be10unknown
0x88fa8dc4unknown
0x02b67b57unknown
0x1f81e405unknown
0x21421707unknown
0xdc680269unknown
0x12171d83unknown
0x1f12d904unknown
0x6f312cbdunknown
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)