0x4b32d0a88629ca98e817ccbbb0c6f485d897f681
deployer: unknown
relevance score: 0
status: partially_identified
bytecode: 14876 bytes
DECOMPILED SOLIDITY (Heimdall)
VERIFY
// 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 contractType = 35000263200677284442168254354289586231471933478394369033319683962860686278656 ;
uint256 public constant contractVersion = 1 ;
uint256 public constant pluginMap = 1025084213094066509426836593072480225662722517598 ;
uint256 public constant DEFAULT_ADMIN_ROLE = 0 ;
bytes32 store_b;
address store_c;
mapping ( bytes32 = > bytes32 ) storage_map_d;
bytes32 store_f;
bytes32 store_g;
mapping ( bytes32 = > bytes32 ) storage_map_a;
mapping ( bytes32 = > bytes32 ) storage_map_h;
mapping ( bytes32 = > bytes32 ) storage_map_e;
event CustomRoyalityDisabled( address ) ;
event RoleRevoked( bytes32 , address , address ) ;
event CustomRoyalityEnabled( address , address , uint256 ) ;
event RoleGranted( bytes32 , address , address ) ;
event PlatformFeeInfoUpdated( address , uint256 ) ;
/// @custom:selector 0x5c573f2e
/// @custom:signature getAllFunctionsOfPlugin(address arg0) public payable returns (bytes memory)
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function getAllFunctionsOfPlugin( address arg0) public payable returns ( bytes memory ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( address ( arg0) - arg0) ;
address var_a = address ( arg0) ;
var_b = 0x1a3e4131826bb378aa43abb34a33a366bc4a35b55ab18a884fa205b59285ec47 ;
address var_d = address ( arg0) ;
( bool success, bytes memory ret0) = address ( 0xb38e5daa05e0e4d64419b3598ce0f5a2ff5a2a5e ) . Unresolved_5c573f2e( var_d) ; // staticcall
require ( storage_map_a[ var_a] > ( storage_map_a[ var_a] + var_a) ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
require ( 0 < var_a) ;
require ( ! 0 < var_a) ;
var_a = uint32 ( var_b) ;
require ( storage_map_a[ var_a] ) ;
require ( ( ( storage_map_a[ var_a] + var_a) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) > ( storage_map_a[ var_a] + var_a) ) ;
require ( 0 > 0x01 ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
require ( ( storage_map_a[ var_a] + var_a) > 0xffffffffffffffff ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
require ( ( ( var_f + ( uint248 ( ( 0x20 + ( ( storage_map_a[ var_a] + var_a) < < 0x05 ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_f + ( uint248 ( ( 0x20 + ( ( storage_map_a[ var_a] + var_a) < < 0x05 ) ) + 0x1f ) ) ) < var_f) ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
address var_f = var_f + ( uint248 ( ( 0x20 + ( ( storage_map_a[ var_a] + var_a) < < 0x05 ) ) + 0x1f ) ) ;
require ( ( storage_map_a[ var_a] + var_a) > 0xffffffffffffffff ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
require ( 0 < var_a) ;
require ( 0 < storage_map_a[ var_a] ) ;
var_a = address ( arg0) ;
require ( ! 0 < storage_map_a[ var_a] ) ;
require ( 0 = = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ;
return abi. encodePacked( 0x20 , var_f. length) ;
}
/// @custom:selector 0xbc197c81
/// @custom:signature Unresolved_bc197c81(address arg0, address arg1, uint256 arg2, uint256 arg3) public pure
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
function Unresolved_bc197c81( address arg0, address arg1, uint256 arg2, uint256 arg3) public pure {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0xa0 ) ;
require ( address ( arg0) - arg0) ;
require ( address ( arg1) - arg1) ;
require ( arg2 > 0xffffffffffffffff ) ;
require ( arg2 > 0xffffffffffffffff ) ;
require ( ( ( var_c + ( uint248 ( ( 0x20 + ( arg2 < < 0x05 ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_c + ( uint248 ( ( 0x20 + ( arg2 < < 0x05 ) ) + 0x1f ) ) ) < var_c) ) ;
require ( ( 0x20 + ( 0x04 + arg2) ) < ( ( 0x04 + arg2) + ( arg2 < < 0x05 ) + 0x20 ) ) ;
require ( arg3 > 0xffffffffffffffff ) ;
}
/// @custom:selector 0xca15c873
/// @custom:signature getRoleMemberCount(bytes32 arg0) public view returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
function getRoleMemberCount( bytes32 arg0) public view returns ( uint256 ) {
require ( msg. value) ;
require ( ( msg. data. length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc ) < 0x20 ) ;
uint256 var_a = arg0;
require ( 0 < storage_map_a[ var_a] ) ;
var_a = 0 ;
require ( address ( storage_map_a[ var_a] ) ) ;
require ( 0 > 0x01 ) ;
require ( ! 0 > 0x01 ) ;
var_a = 0 ;
require ( bytes1 ( storage_map_a[ var_a] ) ) ;
require ( 0 > 0x01 ) ;
return 0x01 ;
return 0 ;
}
/// @custom:selector 0x248a9ca3
/// @custom:signature getRoleAdmin(bytes32 arg0) public view returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
function getRoleAdmin( bytes32 arg0) public view returns ( uint256 ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
uint256 var_a = arg0;
return storage_map_a[ var_a] ;
}
/// @custom:selector 0x91d14854
/// @custom:signature hasRole(bytes32 arg0, address arg1) public view returns (bool)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
function hasRole( bytes32 arg0, address arg1) public view returns ( bool ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( address ( arg1) - arg1) ;
var_a = address ( arg1) ;
return ! ( ! bytes1 ( storage_map_a[ var_a] ) ) ;
}
/// @custom:selector 0xd547741f
/// @custom:signature Unresolved_d547741f(uint0 arg0, address arg1, uint256 arg2) public payable
/// @param arg0 ["uint0", "bytes0", "int0"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg18446744073709551615 ["uint256", "bytes32", "int256"]
function Unresolved_d547741f( uint0 arg0, address arg1, uint256 arg2) public payable {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( address ( arg1) - arg1) ;
var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
var_a = address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
var_a = address ( arg1) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = uint248 ( storage_map_a[ var_a] ) ;
var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
emit RoleRevoked( arg0, address ( arg1) , address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ) ;
var_a = address ( arg1) ;
var_a = storage_map_a[ var_a] ;
storage_map_a[ var_a] = uint96 ( storage_map_a[ var_a] ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = 0 ;
emit RoleRevoked( arg0, address ( arg1) , address ( msg. sender) ) ;
var_a = address ( arg1) ;
var_a = storage_map_a[ var_a] ;
storage_map_a[ var_a] = uint96 ( storage_map_a[ var_a] ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = 0 ;
require ( ( ( var_c + 0x60 ) > 0xffffffffffffffff ) | ( ( var_c + 0x60 ) < var_c) , "Strings: hex length insufficient" ) ;
uint256 var_c = var_c + 0x60 ;
require ( ! var_c. length, "Strings: hex length insufficient" ) ;
require ( 0x29 > 0x01 , "Strings: hex length insufficient" ) ;
require ( ! ( ! address ( arg1) ) , "Strings: hex length insufficient" ) ;
require ( ( ( var_c + 0x80 ) > 0xffffffffffffffff ) | ( ( var_c + 0x80 ) < var_c) , "Strings: hex length insufficient" ) ;
var_c = var_c + 0x80 ;
require ( ! var_c. length, "Strings: hex length insufficient" ) ;
require ( 0x41 > 0x01 , "Strings: hex length insufficient" ) ;
require ( arg0, "Strings: hex length insufficient" ) ;
require ( ! ( bytes1 ( arg0) ) < 0x10 ) ;
require ( ! 0x41 < var_c. length) ;
require ( ! 0x41 ) ;
require ( ! ( bytes1 ( address ( arg1) ) ) < 0x10 ) ;
}
/// @custom:selector 0x938e3d7b
/// @custom:signature Unresolved_938e3d7b(uint256 arg0, uint256 arg1) public view
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg18446744073709551615 ["uint256", "bytes32", "int256"]
function Unresolved_938e3d7b( uint256 arg0, uint256 arg1) public view {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( arg0 > 0xffffffffffffffff ) ;
if ( arg0 > 0xffffffffffffffff ) {
require ( arg0 > 0xffffffffffffffff , "Not authorized" ) ;
uint256 var_c = var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( arg0) ) ) + 0x1f ) ) ;
require ( ( ( var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( arg0) ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( arg0) ) ) + 0x1f ) ) ) < var_c) , "Not authorized" ) ;
var_a = address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Not authorized" ) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Not authorized" ) ;
require ( ! ( bytes1 ( store_b) ) , "Not authorized" ) ;
require ( ( ( store_b > > 0x01 ) < 0x20 ) = = ( bytes1 ( store_b) ) , "Not authorized" ) ;
require ( ! ( bytes1 ( store_b) ) , "Not authorized" ) ;
require ( 0x01 = = ( bytes1 ( store_b) ) , "Not authorized" ) ;
}
}
/// @custom:selector 0xe8a3d485
/// @custom:signature contractURI() public view returns (bytes memory)
function contractURI( ) public view returns ( bytes memory ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0 ) ;
if ( ! store_b) {
if ( ( ( store_b > > 0x01 ) < 0x20 ) = = ( store_b) ) {
if ( ! store_b) {
if ( 0x01 = = ( store_b) ) {
if ( 0 < ( store_b > > 0x01 ) ) {
if ( ( ( var_d + ( uint248 ( ( ( 0x20 + ( var_d + 0 ) ) - var_d) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_d + ( uint248 ( ( ( 0x20 + ( var_d + 0 ) ) - var_d) + 0x1f ) ) ) < var_d) ) {
uint248 var_d = var_d + ( uint248 ( ( ( 0x20 + ( var_d + 0 ) ) - var_d) + 0x1f ) ) ;
return abi. encodePacked( 0x20 , var_d. length) ;
if ( ( ( var_d + ( uint248 ( ( 0 - var_d) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_d + ( uint248 ( ( 0 - var_d) + 0x1f ) ) ) < var_d) ) {
}
}
}
}
}
}
}
}
/// @custom:selector 0x2f2ff15d
/// @custom:signature Unresolved_2f2ff15d(uint256 arg0, address arg1, uint256 arg2) public payable returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg18446744073709551615 ["uint256", "bytes32", "int256"]
function Unresolved_2f2ff15d( uint256 arg0, address arg1, uint256 arg2) public payable returns ( uint256 ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( address ( arg1) - arg1) ;
var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Can only grant to non holders" ) ;
var_a = address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Can only grant to non holders" ) ;
var_a = address ( arg1) ;
require ( bytes1 ( storage_map_a[ var_a] ) , "Can only grant to non holders" ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = 0x01 | ( uint248 ( storage_map_a[ var_a] ) ) ;
var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
emit RoleGranted( arg0, address ( arg1) , address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ) ;
var_a = arg0;
require ( storage_map_a[ var_a] > ( storage_map_a[ var_a] + 0x01 ) , "Strings: hex length insufficient" ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
storage_map_a[ var_a] = storage_map_a[ var_a] + 0x01 ;
var_a = storage_map_a[ var_a] ;
storage_map_a[ var_a] = ( uint96 ( storage_map_a[ var_a] ) ) | ( address ( arg1) ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = storage_map_a[ var_a] ;
return ;
require ( ( ( var_h + 0x60 ) > 0xffffffffffffffff ) | ( ( var_h + 0x60 ) < var_h) , "Strings: hex length insufficient" ) ;
uint256 var_h = var_h + 0x60 ;
require ( ! var_h. length, "Strings: hex length insufficient" ) ;
require ( 0x29 > 0x01 , "Strings: hex length insufficient" ) ;
require ( ! ( ! address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ) , "Strings: hex length insufficient" ) ;
require ( ( ( var_h + 0x80 ) > 0xffffffffffffffff ) | ( ( var_h + 0x80 ) < var_h) , "Strings: hex length insufficient" ) ;
var_h = var_h + 0x80 ;
require ( ! var_h. length, "Strings: hex length insufficient" ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
require ( 0x41 > 0x01 , "Strings: hex length insufficient" ) ;
require ( storage_map_a[ var_a] , "Strings: hex length insufficient" ) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) < 0x10 ) ;
require ( ! 0x41 < var_h. length) ;
require ( ! 0x41 ) ;
require ( ! ( bytes1 ( address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ) ) < 0x10 ) ;
var_a = address ( msg. sender) ;
require ( ! bytes1 ( storage_map_a[ var_a] ) ) ;
require ( ( ( var_h + 0x60 ) > 0xffffffffffffffff ) | ( ( var_h + 0x60 ) < var_h) ) ;
}
/// @custom:selector 0x01ffc9a7
/// @custom:signature Unresolved_01ffc9a7(uint32 arg0) public pure returns (bool)
/// @param arg0 ["uint32", "bytes4", "int32"]
function Unresolved_01ffc9a7( uint32 arg0) public pure returns ( bool ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( uint32 ( arg0) - arg0) ;
require ( ! ( uint32 ( arg0) ) = = 0x4e2312e000000000000000000000000000000000000000000000000000000000 ) ;
require ( ! ( uint32 ( arg0) ) = = 0x4e2312e000000000000000000000000000000000000000000000000000000000 ) ;
return ! ( ! ( uint32 ( arg0) ) = = 0x4e2312e000000000000000000000000000000000000000000000000000000000 ) ;
require ( ! ( uint32 ( arg0) ) = = 0xf337402700000000000000000000000000000000000000000000000000000000 ) ;
return ! ( ! ( uint32 ( arg0) ) = = 0xf337402700000000000000000000000000000000000000000000000000000000 ) ;
return ! ( ! ( uint32 ( arg0) ) = = 0x01ffc9a700000000000000000000000000000000000000000000000000000000 ) ;
}
/// @custom:selector 0xd05e5696
/// @custom:signature getPlatformFeeInfo(address arg0) public view returns (bytes memory)
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function getPlatformFeeInfo( address arg0) public view returns ( bytes memory ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( address ( arg0) - arg0) ;
require ( address ( arg0) = = 0xd22e78c22d7e77229d60cc9fc57b0e294f54488e ) ;
return abi. encodePacked( address ( store_c) , 0 ) ;
return abi. encodePacked( address ( store_c) , uint16 ( store_c > > 0xa0 ) ) ;
}
/// @custom:selector 0x572b6c05
/// @custom:signature isTrustedForwarder(address arg0) public view returns (bool)
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function isTrustedForwarder( address arg0) public view returns ( bool ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( address ( arg0) - arg0) ;
address var_a = address ( arg0) ;
return ! ( ! bytes1 ( storage_map_a[ var_a] ) ) ;
}
/// @custom:selector 0xa520a38a
/// @custom:signature getPluginForFunction(bytes4 arg0) public payable returns (address)
/// @param arg0 ["uint32", "bytes4", "int32"]
function getPluginForFunction( bytes4 arg0) public payable returns ( address ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( uint32 ( arg0) - arg0) ;
uint32 var_a = uint32 ( arg0) ;
require ( ! address ( storage_map_d[ var_a] ) ) ;
return address ( storage_map_d[ var_a] ) ;
uint32 var_d = uint32 ( arg0) ;
( bool success, bytes memory ret0) = address ( 0xb38e5daa05e0e4d64419b3598ce0f5a2ff5a2a5e ) . Unresolved_a520a38a( var_d) ; // staticcall
return 0 ;
require ( 0x20 > ret0. length) ;
require ( ( ( var_e + 0x20 ) > 0xffffffffffffffff ) | ( ( var_e + 0x20 ) < var_e) ) ;
uint256 var_e = var_e + 0x20 ;
require ( ( ( var_e + 0x20 ) - var_e) < 0x20 ) ;
require ( address ( var_e. length) - var_e. length) ;
return address ( var_e. length) ;
}
/// @custom:selector 0xaaae5633
/// @custom:signature Unresolved_aaae5633(address arg0, uint256 arg1, uint256 arg2) public pure
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
function Unresolved_aaae5633( address arg0, uint256 arg1, uint256 arg2) public pure {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0xa0 ) ;
require ( address ( arg0) - arg0) ;
require ( arg1 > 0xffffffffffffffff ) ;
require ( arg1 > 0xffffffffffffffff ) ;
require ( ( ( var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( arg1) ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( arg1) ) ) + 0x1f ) ) ) < var_c) ) ;
require ( arg2 > 0xffffffffffffffff ) ;
require ( ! ( arg2 + 0x23 ) < msg. data. length) ;
require ( arg2 > 0xffffffffffffffff ) ;
}
/// @custom:selector 0xa5342fdf
/// @custom:signature removePlugin(bytes4 arg0) public pure
/// @param arg0 ["uint32", "bytes4", "int32"]
function removePlugin( bytes4 arg0) public pure {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( uint32 ( arg0) - arg0) ;
}
/// @custom:selector 0xdc1add48
/// @custom:signature getCustomRoyaltyInfo(address arg0) public view returns (bool)
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function getCustomRoyaltyInfo( address arg0) public view returns ( bool ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( address ( arg0) - arg0) ;
require ( ( ( var_c + 0x60 ) > 0xffffffffffffffff ) | ( ( var_c + 0x60 ) < var_c) ) ;
var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
return abi. encodePacked( ! ( ! bytes1 ( storage_map_a[ var_a] ) ) , address ( storage_map_a[ var_a] > > 0x08 ) , uint16 ( storage_map_a[ var_a] > > 0xa8 ) ) ;
}
/// @custom:selector 0x150b7a02
/// @custom:signature Unresolved_150b7a02(address arg0, address arg1, uint256 arg2) public pure returns (uint256)
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg3 ["uint256", "bytes32", "int256"]
function Unresolved_150b7a02( address arg0, address arg1, uint256 arg2) public pure returns ( uint256 ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x80 ) ;
require ( address ( arg0) - arg0) ;
require ( address ( arg1) - arg1) ;
require ( arg3 > 0xffffffffffffffff ) ;
require ( ! ( arg3 + 0x23 ) < msg. data. length) ;
require ( arg3 > 0xffffffffffffffff ) ;
require ( ( 0x24 + ( arg3 + ( arg3) ) ) > msg. data. length) ;
return 0x150b7a0200000000000000000000000000000000000000000000000000000000 ;
}
/// @custom:selector 0x1e7ac488
/// @custom:signature Unresolved_1e7ac488(address arg0, uint16 arg1, uint256 arg2) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint16", "bytes2", "int16"]
/// @param arg18446744073709551615 ["uint256", "bytes32", "int256"]
function Unresolved_1e7ac488( address arg0, uint16 arg1, uint256 arg2) public payable {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( address ( arg0) - arg0) ;
address var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Platform fee too high." ) ;
var_a = address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Platform fee too high." ) ;
require ( arg1 > 0x2710 , "Platform fee too high." ) ;
require ( bytes1 ( store_c > > 0xb0 ) , "Platform fee cannot be increased." ) ;
require ( uint16 ( arg1) > ( uint16 ( store_c > > 0xa0 ) ) , "Platform fee cannot be increased." ) ;
store_c = ( uint248 ( store_c) ) | 0x0100000000000000000000000000000000000000000000 ;
store_c = ( uint16 ( arg1 < < 0xa0 ) | ( uint80( store_c) ) ) | ( address ( arg0) ) ;
emit PlatformFeeInfoUpdated( address ( arg0) , arg1) ;
store_c = ( uint248 ( store_c) ) | 0x0100000000000000000000000000000000000000000000 ;
store_c = ( uint16 ( arg1 < < 0xa0 ) | ( uint80( store_c) ) ) | ( address ( arg0) ) ;
emit PlatformFeeInfoUpdated( address ( arg0) , arg1) ;
}
/// @custom:selector 0x77d81c4f
/// @custom:signature Unresolved_77d81c4f(address arg0, address arg1, uint16 arg2) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg2 ["uint16", "bytes2", "int16"]
function Unresolved_77d81c4f ( address arg0, address arg1, uint16 arg2) public payable {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x60 ) ;
require ( address ( arg0) - arg0) ;
require ( address ( arg1) - arg1) ;
require ( arg2 > 0x2710 , "Platform fee too high." ) ;
( bool success, bytes memory ret0) = address ( arg0) . owner( ) ; // staticcall
require ( ! ( 0 = = msg. sender) , "Only contract owner can update custom royalty." ) ;
require ( ( ( var_f + 0x60 ) > 0xffffffffffffffff ) | ( ( var_f + 0x60 ) < var_f) ) ;
uint256 var_f = var_f + 0x60 ;
address var_g = address ( arg0) ;
storage_map_e[ var_g] = ( uint248 ( storage_map_e[ var_g] ) ) | ( bytes1 ( var_f. length) ) ;
storage_map_e[ var_g] = ( uint88( storage_map_e[ var_g] ) | ( bytes1 ( var_f. length) ) ) | ( address ( var_l < < 0x08 ) ) ;
storage_map_e[ var_g] = ( uint72( storage_map_e[ var_g] ) | ( bytes1 ( var_f. length) ) | ( address ( var_l < < 0x08 ) ) ) | ( uint16 ( var_m < < 0xa8 ) ) ;
emit CustomRoyalityEnabled( address ( arg0) , address ( arg1) , arg2) ;
require ( 0x20 > ret0. length) ;
require ( ( ( var_f + 0x20 ) > 0xffffffffffffffff ) | ( ( var_f + 0x20 ) < var_f) ) ;
var_f = var_f + 0x20 ;
require ( ( ( var_f + 0x20 ) - var_f) < 0x20 ) ;
require ( address ( var_f. length) - var_f. length, "Unabled to determine contract owner." ) ;
}
/// @custom:selector 0x1ab6b705
/// @custom:signature Unresolved_1ab6b705(uint256 arg0, uint256 arg1, address arg2) public pure
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
function Unresolved_1ab6b705( uint256 arg0, uint256 arg1, address arg2) public pure {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( arg0 > 0xffffffffffffffff ) ;
require ( ( ( msg. data. length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc ) < 0x60 ) ;
require ( ( ( var_a + 0x60 ) > 0xffffffffffffffff ) | ( ( var_a + 0x60 ) < var_a) ) ;
uint256 var_a = var_a + 0x60 ;
require ( uint32 ( arg0) - ( arg0) ) ;
require ( msg. data[ arg0 + 0x24 ] > 0xffffffffffffffff ) ;
require ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) > 0xffffffffffffffff ) ;
require ( ( ( var_a + ( uint248 ( ( 0x20 + ( 0x1f + ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) ) ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_a + ( uint248 ( ( 0x20 + ( 0x1f + ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) ) ) ) + 0x1f ) ) ) < var_a) ) ;
var_a = var_a + ( uint248 ( ( 0x20 + ( 0x1f + ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) ) ) ) + 0x1f ) ) ;
require ( address ( msg. data[ arg0 + 0x44 ] ) - ( msg. data[ arg0 + 0x44 ] ) ) ;
}
/// @custom:selector 0x36568abe
/// @custom:signature Unresolved_36568abe(uint0 arg0, address arg1, uint256 arg2) public payable
/// @param arg0 ["uint0", "bytes0", "int0"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg18446744073709551615 ["uint256", "bytes32", "int256"]
function Unresolved_36568abe( uint0 arg0, address arg1, uint256 arg2) public payable {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( address ( arg1) - arg1) ;
address var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Can only renounce for self" ) ;
require ( address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) - ( address ( arg1) ) , "Can only renounce for self" ) ;
var_a = address ( arg1) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = uint248 ( storage_map_a[ var_a] ) ;
var_a = address ( msg. sender) ;
require ( ! ( bytes1 ( storage_map_a[ var_a] ) ) , "Strings: hex length insufficient" ) ;
emit RoleRevoked( arg0, address ( arg1) , address ( msg. data[ 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec + msg. data. length] > > 0x60 ) ) ;
var_a = address ( arg1) ;
var_a = storage_map_a[ var_a] ;
storage_map_a[ var_a] = uint96 ( storage_map_a[ var_a] ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = 0 ;
emit RoleRevoked( arg0, address ( arg1) , address ( msg. sender) ) ;
var_a = address ( arg1) ;
var_a = storage_map_a[ var_a] ;
storage_map_a[ var_a] = uint96 ( storage_map_a[ var_a] ) ;
var_a = address ( arg1) ;
storage_map_a[ var_a] = 0 ;
require ( ( ( var_g + 0x60 ) > 0xffffffffffffffff ) | ( ( var_g + 0x60 ) < var_g) , "Strings: hex length insufficient" ) ;
uint256 var_g = var_g + 0x60 ;
require ( ! var_g. length, "Strings: hex length insufficient" ) ;
require ( 0x29 > 0x01 , "Strings: hex length insufficient" ) ;
require ( ! ( ! address ( arg1) ) , "Strings: hex length insufficient" ) ;
require ( ( ( var_g + 0x80 ) > 0xffffffffffffffff ) | ( ( var_g + 0x80 ) < var_g) , "Strings: hex length insufficient" ) ;
var_g = var_g + 0x80 ;
require ( ! var_g. length, "Strings: hex length insufficient" ) ;
require ( 0x41 > 0x01 , "Strings: hex length insufficient" ) ;
require ( arg0, "Strings: hex length insufficient" ) ;
require ( ! ( bytes1 ( arg0) ) < 0x10 ) ;
require ( ! 0x41 < var_g. length) ;
require ( ! 0x41 ) ;
require ( ! ( bytes1 ( address ( arg1) ) ) < 0x10 ) ;
}
/// @custom:selector 0xbaf2696a
/// @custom:signature calculateFeeAndRoyalty(address arg0, uint256 arg1, address arg2, uint256 arg3) public payable returns (bytes memory)
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
/// @param arg3 ["uint256", "bytes32", "int256"]
function calculateFeeAndRoyalty( address arg0, uint256 arg1, address arg2, uint256 arg3) public payable returns ( bytes memory ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x80 ) ;
require ( address ( arg0) - arg0) ;
require ( address ( arg2) - arg2) ;
address var_b = address ( arg2) ;
( bool success, bytes memory ret0) = address ( this) . Unresolved_d05e5696( var_b) ; // staticcall
require ( ! ( ( ( arg3 * 0 ) / arg3) = = 0 ) | ! arg3) ;
var_b = address ( arg0) ;
( bool success, bytes memory ret0) = address ( this) . Unresolved_dc1add48( var_b) ; // staticcall
require ( ! 0 , "Custom royalty fee exceeds the price." ) ;
require ( 0 , "Custom royalty fee exceeds the price." ) ;
require ( 0 , "Custom royalty fee exceeds the price." ) ;
require ( ! ( ( ( ( arg3 * 0 ) / arg3) = = 0 ) | ! arg3) , "Custom royalty fee exceeds the price." ) ;
require ( ( ( arg3 * 0 ) / 0x2710 ) > ( ( ( arg3 * 0 ) / 0x2710 ) + ( ( arg3 * 0 ) / 0x2710 ) ) , "Custom royalty fee exceeds the price." ) ;
require ( ! ( ! ( ( ( arg3 * 0 ) / 0x2710 ) + ( ( arg3 * 0 ) / 0x2710 ) ) > arg3) , "Custom royalty fee exceeds the price." ) ;
return abi. encodePacked( ( arg3 * 0 ) / 0x2710 , 0 , ( arg3 * 0 ) / 0x2710 , 0 ) ;
return abi. encodePacked( ( arg3 * 0 ) / 0x2710 , 0 , 0 , 0 ) ;
var_b = arg1;
uint256 var_e = arg3;
( bool success, bytes memory ret0) = address ( arg0) . royaltyInfo( var_b, var_e) ; // staticcall
return abi. encodePacked( ( arg3 * 0 ) / 0x2710 , 0 , 0 , 0 ) ;
require ( 0 ) ;
require ( 0 ) ;
return abi. encodePacked( ( arg3 * 0 ) / 0x2710 , 0 , 0 , 0 ) ;
require ( 0x40 > ret0. length) ;
require ( ( ( var_k + 0x40 ) > 0xffffffffffffffff ) | ( ( var_k + 0x40 ) < var_k) ) ;
uint256 var_k = var_k + 0x40 ;
require ( ( ( var_k + 0x40 ) - var_k) < 0x40 ) ;
require ( address ( var_k. length) - var_k. length) ;
return abi. encodePacked( ( arg3 * 0 ) / 0x2710 , 0 , 0 , 0 ) ;
if ( 0x60 > ret0. length) {
}
if ( 0x40 > ret0. length) {
}
}
/// @custom:selector 0x6b86400e
/// @custom:signature getAllPlugins() public payable returns (bytes memory)
function getAllPlugins( ) public payable returns ( bytes memory ) {
require ( msg. value) ;
require ( ( msg. data. length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc ) < 0 ) ;
( bool success, bytes memory ret0) = address ( 0xb38e5daa05e0e4d64419b3598ce0f5a2ff5a2a5e ) . getAllPlugins( ) ; // staticcall
if ( store_f > ( store_f + var_b) ) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
if ( 0 < store_f) {
if ( 0 < var_b) {
if ( ! 0 < store_f) {
var_b = 0x1a3e4131826bb378aa43abb34a33a366bc4a35b55ab18a884fa205b59285ec45 ;
if ( ! 0 < var_b) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
if ( uint32 ( store_g) = = ( uint32 ( var_d. length) ) ) {
if ( ( ( store_f + var_b) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) > ( store_f + var_b) ) {
if ( 0 > 0x01 ) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
if ( ( store_f + var_b) > 0xffffffffffffffff ) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
if ( ( ( var_e + ( uint248 ( ( 0x20 + ( ( store_f + var_b) < < 0x05 ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_e + ( uint248 ( ( 0x20 + ( ( store_f + var_b) < < 0x05 ) ) + 0x1f ) ) ) < var_e) ) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
uint248 var_e = var_e + ( uint248 ( ( 0x20 + ( ( store_f + var_b) < < 0x05 ) ) + 0x1f ) ) ;
if ( ( store_f + var_b) > 0xffffffffffffffff ) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
if ( 0 < ( ( 0x20 + ( ( store_f + var_b) < < 0x05 ) ) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) ) {
if ( ( ( var_e + 0x60 ) > 0xffffffffffffffff ) | ( ( var_e + 0x60 ) < var_e) ) {
var_b = 0x4e487b7100000000000000000000000000000000000000000000000000000000 ;
if ( 0 < var_b) {
if ( 0 < store_f) {
if ( ! 0 < store_f) {
if ( 0 < ( var_l) ) {
if ( 0x20 < ( var_l) ) {
}
return abi. encodePacked( 0x20 , var_e. length) ;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
/// @custom:selector 0xbf4e168c
/// @custom:signature disableCustomRoyality(address arg0) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function disableCustomRoyality( address arg0) public payable {
require ( msg. value) ;
require ( ( msg. data. length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc ) < 0x20 ) ;
require ( address ( arg0) - arg0) ;
( bool success, bytes memory ret0) = address ( arg0) . owner( ) ; // staticcall
require ( ! ( msg. sender = = 0 ) , "Only asset contract owner can update custom royalty." ) ;
( bool success, bytes memory ret0) = address ( arg0) . owner( ) ; // staticcall
require ( ! ( 0 = = msg. sender) , "Only contract owner can update custom royalty." ) ;
address var_f = address ( arg0) ;
storage_map_h[ var_f] = uint248 ( storage_map_h[ var_f] ) ;
emit CustomRoyalityDisabled( address ( arg0) ) ;
require ( ret0. length < 0x20 ) ;
require ( ( ( var_h + 0x20 ) > 0xffffffffffffffff ) | ( ( var_h + 0x20 ) < var_h) ) ;
uint256 var_h = var_h + 0x20 ;
require ( ( ( var_h + 0x20 ) - var_h) < 0x20 ) ;
require ( address ( var_h. length) - var_h. length, "Unabled to determine contract owner." ) ;
require ( 0x20 > ret0. length) ;
require ( ( ( var_h + 0x20 ) > 0xffffffffffffffff ) | ( ( var_h + 0x20 ) < var_h) ) ;
var_h = var_h + 0x20 ;
require ( ( ( var_h + 0x20 ) - var_h) < 0x20 ) ;
require ( address ( var_h. length) - var_h. length) ;
}
/// @custom:selector 0xa32fa5b3
/// @custom:signature hasRoleWithSwitch(bytes32 arg0, address arg1) public view returns (bool)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
function hasRoleWithSwitch( bytes32 arg0, address arg1) public view returns ( bool ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( address ( arg1) - arg1) ;
var_a = 0 ;
require ( ! bytes1 ( storage_map_a[ var_a] ) ) ;
return 0x01 ;
var_a = address ( arg1) ;
return ! ( ! bytes1 ( storage_map_a[ var_a] ) ) ;
}
/// @custom:selector 0x4cb5d8fd
/// @custom:signature Unresolved_4cb5d8fd(uint256 arg0, uint256 arg1, address arg2) public pure
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
function Unresolved_4cb5d8fd( uint256 arg0, uint256 arg1, address arg2) public pure {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( arg0 > 0xffffffffffffffff ) ;
require ( ( ( msg. data. length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc ) < 0x60 ) ;
require ( ( ( var_a + 0x60 ) > 0xffffffffffffffff ) | ( ( var_a + 0x60 ) < var_a) ) ;
uint256 var_a = var_a + 0x60 ;
require ( uint32 ( arg0) - ( arg0) ) ;
require ( msg. data[ arg0 + 0x24 ] > 0xffffffffffffffff ) ;
require ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) > 0xffffffffffffffff ) ;
require ( ( ( var_a + ( uint248 ( ( 0x20 + ( 0x1f + ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) ) ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_a + ( uint248 ( ( 0x20 + ( 0x1f + ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) ) ) ) + 0x1f ) ) ) < var_a) ) ;
var_a = var_a + ( uint248 ( ( 0x20 + ( 0x1f + ( ( arg0 + ( msg. data[ arg0 + 0x24 ] ) ) ) ) ) + 0x1f ) ) ;
require ( address ( msg. data[ arg0 + 0x44 ] ) - ( msg. data[ arg0 + 0x44 ] ) ) ;
}
/// @custom:selector 0x9010d07c
/// @custom:signature getRoleMember(bytes32 arg0, uint256 arg1) public view returns (address)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function getRoleMember( bytes32 arg0, uint256 arg1) public view returns ( address ) {
require ( msg. value) ;
if ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) {
uint256 var_a = arg0;
if ( 0 < storage_map_a[ var_a] ) {
var_a = 0 ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x40 ) ;
require ( 0 < storage_map_a[ var_a] ) ;
require ( ! address ( storage_map_a[ var_a] ) ) ;
var_a = 0 ;
return address ( storage_map_a[ var_a] ) ;
var_a = 0 ;
require ( 0 = = arg1) ;
var_a = 0 ;
require ( 0 > 0x01 ) ;
require ( 0 = = storage_map_a[ var_a] ) ;
require ( 0 > 0x01 ) ;
}
}
return 0 ;
}
/// @custom:selector 0xac9650d8
/// @custom:signature Unresolved_ac9650d8(uint256 arg0, uint256 arg1) public payable returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function Unresolved_ac9650d8( uint256 arg0, uint256 arg1) public payable returns ( bytes memory ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( arg0 > 0xffffffffffffffff ) ;
require ( ! ( arg0 + 0x23 ) < msg. data. length) ;
require ( arg0 > 0xffffffffffffffff ) ;
require ( ( ( arg0 + ( arg0 < < 0x05 ) ) + 0x24 ) > msg. data. length) ;
require ( arg0 > 0xffffffffffffffff ) ;
require ( ( ( var_c + ( uint248 ( ( 0x20 + ( arg0 < < 0x05 ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_c + ( uint248 ( ( 0x20 + ( arg0 < < 0x05 ) ) + 0x1f ) ) ) < var_c) ) ;
uint256 var_c = var_c + ( uint248 ( ( 0x20 + ( arg0 < < 0x05 ) ) + 0x1f ) ) ;
require ( arg0 > 0xffffffffffffffff ) ;
require ( 0 < ( ( 0x20 + ( arg0 < < 0x05 ) ) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) ) ;
require ( 0 < ( arg0) ) ;
require ( ! ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) < ( ( msg. data. length - ( arg0 + 0x24 ) ) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 ) ) ;
require ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] > 0xffffffffffffffff ) ;
require ( ( 0x20 + ( ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ) ) > ( msg. data. length - ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] ) ) , "Address: delegate call to non-contract" ) ;
require ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] > 0xffffffffffffffff , "Address: delegate call to non-contract" ) ;
require ( ( ( var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] ) ) ) + 0x1f ) ) ) > 0xffffffffffffffff ) | ( ( var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] ) ) ) + 0x1f ) ) ) < var_c) , "Address: delegate call to non-contract" ) ;
var_c = var_c + ( uint248 ( ( 0x20 + ( 0x1f + ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] ) ) ) + 0x1f ) ) ;
require ( ( 0x20 + ( ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ) ) + ( msg. data[ ( arg0 + 0x24 ) + ( msg. data[ ( arg0 + 0x24 ) + 0 ] ) ] ) > msg. data. length, "Address: delegate call to non-contract" ) ;
require ( ( ( var_c + 0x60 ) > 0xffffffffffffffff ) | ( ( var_c + 0x60 ) < var_c) , "Address: delegate call to non-contract" ) ;
var_c = var_c + 0x60 ;
require ( ! address ( this) . code. length, "Address: delegate call to non-contract" ) ;
( bool success, bytes memory ret0) = address ( this) . Unresolved_( var_o) ; // delegatecall
require ( ! ret0. length) ;
require ( ! var_p) ;
if ( 0 < ( var_r) ) {
}
return abi. encodePacked( 0x20 , var_c. length) ;
}
/// @custom:selector 0xc511f8fb
/// @custom:signature _getPluginForFunction(bytes4 arg0) public view returns (address)
/// @param arg0 ["uint32", "bytes4", "int32"]
function _getPluginForFunction( bytes4 arg0) public view returns ( address ) {
require ( msg. value) ;
require ( ( 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg. data. length) < 0x20 ) ;
require ( uint32 ( arg0) - arg0) ;
uint32 var_a = uint32 ( arg0) ;
return address ( storage_map_d[ var_a] ) ;
}
}
ABI
[
{
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_01ffc9a7",
"inputs": [
{
"name": "arg0",
"type": "uint32"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_150b7a02",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_1ab6b705",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_1e7ac488",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint16"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "Unresolved_2f2ff15d",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "Unresolved_36568abe",
"inputs": [
{
"name": "arg0",
"type": "uint0"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "Unresolved_4cb5d8fd",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_77d81c4f",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint16"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "Unresolved_938e3d7b",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "view"
},
{
"type": "function",
"name": "Unresolved_aaae5633",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_ac9650d8",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "Unresolved_bc197c81",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_d547741f",
"inputs": [
{
"name": "arg0",
"type": "uint0"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "_getPluginForFunction",
"inputs": [
{
"name": "arg0",
"type": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateFeeAndRoyalty",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address"
},
{
"name": "arg3",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "contractType",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "contractURI",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "contractVersion",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "disableCustomRoyality",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getAllFunctionsOfPlugin",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getAllPlugins",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getCustomRoyaltyInfo",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getPlatformFeeInfo",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getPluginForFunction",
"inputs": [
{
"name": "arg0",
"type": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "address"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getRoleAdmin",
"inputs": [
{
"name": "arg0",
"type": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMember",
"inputs": [
{
"name": "arg0",
"type": "bytes32"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleMemberCount",
"inputs": [
{
"name": "arg0",
"type": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "hasRole",
"inputs": [
{
"name": "arg0",
"type": "bytes32"
},
{
"name": "arg1",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "hasRoleWithSwitch",
"inputs": [
{
"name": "arg0",
"type": "bytes32"
},
{
"name": "arg1",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "isTrustedForwarder",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pluginMap",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "removePlugin",
"inputs": [
{
"name": "arg0",
"type": "bytes4"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "event",
"name": "CustomRoyalityDisabled",
"inputs": [
{
"name": "arg0",
"type": "address",
"indexed": false
}
],
"anonymous": false
},
{
"type": "event",
"name": "CustomRoyalityEnabled",
"inputs": [
{
"name": "arg0",
"type": "address",
"indexed": false
},
{
"name": "arg1",
"type": "address",
"indexed": false
},
{
"name": "arg2",
"type": "uint256",
"indexed": false
}
],
"anonymous": false
},
{
"type": "event",
"name": "PlatformFeeInfoUpdated",
"inputs": [
{
"name": "arg0",
"type": "address",
"indexed": false
},
{
"name": "arg1",
"type": "uint256",
"indexed": false
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleGranted",
"inputs": [
{
"name": "arg0",
"type": "bytes32",
"indexed": false
},
{
"name": "arg1",
"type": "address",
"indexed": false
},
{
"name": "arg2",
"type": "address",
"indexed": false
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleRevoked",
"inputs": [
{
"name": "arg0",
"type": "bytes32",
"indexed": false
},
{
"name": "arg1",
"type": "address",
"indexed": false
},
{
"name": "arg2",
"type": "address",
"indexed": false
}
],
"anonymous": false
}
]
UNKNOWN SELECTORS (6)
0x77d81c4f unknown 0x0a85bd01 unknown 0x529051c5 unknown 0xbf4e168c unknown 0xbaf2696a unknown 0x3732b917 unknown
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)
VERIFY
CSV
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.
✕
pDAI-1$