BNB Chain
0x7bd90a9eb0bc69a97bd54020d9c972801a36843e
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0x7bd90a9e…1a36843e6.1 KB5.0 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0x7bd90a9eb0bc69a97bd54020d9c972801a36843e
363 lines · Click a variable or keyword to highlight its references · Click a line number to copy its link; Shift-click to copy a block link
//decompiled by exvvul decompiler tool contact@exvul.com https://x.com/exvulsec// SPDX-License-Identifier: MIT >=0.8.0; { ( ) ( ); ( , ) ( );} { ; // STORAGE[0x0] // DESOLEX_RAW_STORAGE: packed overlap: getOwner address bytes 0..19 vs owner address bytes 0..19 ( => ) ; // STORAGE[0x1] ( => ( => )) ; // STORAGE[0x2] ; // STORAGE[0x3] ; // STORAGE[0x4] ; // STORAGE[0x5] bytes 0 to 0 ; // STORAGE[0x6] ; // STORAGE[0x7] ; // STORAGE[0x8] ( => ) ; // STORAGE[0x9] ( => ) ; // STORAGE[0xa] ( => ) ; // STORAGE[0xb] ( ); ( , , ); ( ); ( , , ); ( , ); () { } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x66904e10)) { // Route to Unknown_66904e10(address) after replacing only msg.sig. ((0xf7669fb4)); ; } ((.. >= 4) && (. == 0xa60120b9)) { // Route to Unknown_a60120b9(address,address) after replacing only msg.sig. ((0xaca89349)); ; } ((.. >= 4) && (. == 0xcd96c5a9)) { // Route to Unknown_cd96c5a9(bool) after replacing only msg.sig. ((0xfdd7de84)); ; } ((.. >= 4) && (. == 0xfe5101c8)) { // Route to Unknown_fe5101c8(address) after replacing only msg.sig. ((0xd773f78b)); ; } (); } ( ) { (. == (()), "Ownable: caller is not the owner"); [] = ; } () ( ) { ; } ( , ) () { (. != (0), "BEP20: approve from the zero address"); ( != (0), "BEP20: approve to the zero address"); [.][] = ; (., , [.][]); ; } ( ) { (. == (()), "Ownable: caller is not the owner"); ([], "Project not registered."); [] = ; (); } ( , , ) () { (() == 0x0) { (0x01 != 0x0, "BEP20: transfer limited address"); } ([]) { ([], "BEP20: transfer limited address"); } { (![]) { (0x01 != 0x0, "BEP20: transfer limited address"); } { ([], "BEP20: transfer limited address"); } } ( != (0), "BEP20: transfer from the zero address"); ( != (0), "BEP20: transfer to the zero address"); ( <= []) { [] = [] - ; [] = + []; (, , ); ( <= [][.]) { ( != (0), "BEP20: approve from the zero address"); (. != (0), "BEP20: approve to the zero address"); [][.] = [][.] - ; (, ., [][.]); ; } { = 0; () { (!( < )) { ; } = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } } { = 0; () { (!( < )) { ; } = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } } ( , ) () { (. != (0), "BEP20: approve from the zero address"); ( != (0), "BEP20: approve to the zero address"); [.][] = + [.][]; (., , [.][]); ; } ( ) { (. != (0), "BEP20: burn from the zero address"); ( <= [(.)]) { [.] = [.] - ; = - ; (., (0), ); } { = 0; () { (!( < )) { ; } = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } } ( , ) { ([.], "Not allowed."); ( != (0), "BEP20: mint to the zero address"); (!(( + ) > ), "mint amount exceeds maximum supply"); = + ; [] = + []; ((0), , ); } ( , ) { (. == (()), "Ownable: caller is not the owner"); = ().(()); ( > 0, "Insufficient balance"); ().(, ); } ( ) { (. == (()), "Ownable: caller is not the owner"); [] = ; } ( ) { (. == (()), "Ownable: caller is not the owner"); (!( < ), "Below total supply"); = ; } () { (. == (()), "Ownable: caller is not the owner"); = 0 | ( & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000)); ((), (0)); } () () { (); } () () { (); } () ( ) { ; } ( ) { ([.], "Not allowed."); (. != (0), "BEP20: mint to the zero address"); (!(( + ) > ), "mint amount exceeds maximum supply"); = + ; [.] = + [.]; ((0), ., ); } ( , ) () { ; = 0x60 + ; (!( > [.][])) { (. != (0), "BEP20: approve from the zero address"); ( != (0), "BEP20: approve to the zero address"); [.][] = [.][] - ; (., , [.][]); ; } { = 0; () { (!( < .)) { ; } = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } } ( , ) () { (!(())) { ; } ([]) { !(!([])); } (![]) { ; } { !(!([])); } } ( , ) () { (() == 0x0) { (0x01 != 0x0, "BEP20: transfer limited address"); } ([.]) { ([], "BEP20: transfer limited address"); } { (![]) { (0x01 != 0x0, "BEP20: transfer limited address"); } { ([.], "BEP20: transfer limited address"); } } (. != (0), "BEP20: transfer from the zero address"); ( != (0), "BEP20: transfer to the zero address"); ; = 0x60 + ; (!( > [.])) { [.] = [.] - ; [] = + []; (., , ); ; } { = 0; () { (!( < .)) { ; } = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } } ( ) { (. == (()), "Ownable: caller is not the owner"); = | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & ); } ( ) { (. == (()), "Ownable: caller is not the owner"); ((). > 0, "Insufficient balance"); ( , ) = .{ : 0x08fc * !()., : (). }(""); // call (); } ( ) { (. == (()), "Ownable: caller is not the owner"); [] = ; } ( ) { (. == (()), "Ownable: caller is not the owner"); ( != (0), "Ownable: new owner is the zero address"); = | ( & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000)); ((), ); } ( ) { (. == (()), "Ownable: caller is not the owner"); ( != (0), "Invalid project address."); (![], "Project already registered."); [] = ; (); } ( ) { (. == (()), "Ownable: caller is not the owner"); [] = ; } ( ) { { := (0x40) (, 0, ()) (, (((), 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff), (224, (, 0xffffffff)))) := ((), (), , (), 0, 0) := () (, 0, ) 0 { (, ) } { (, ) } } } // Note: This selector table is synthetic and is not part of the original Solidity source. // It records the recovered selector-to-signature mapping without executable behavior. // 0x029eae0e => removeDexPair(address) // 0x06fdde03 => name() // 0x095ea7b3 => approve(address,uint256) // 0x0c0ad299 => removeProject(address) // 0x11e635ad => unresolved_11e635ad(address) // 0x18160ddd => totalSupply() // 0x23b872dd => transferFrom(address,address,uint256) // 0x313ce567 => decimals() // 0x39509351 => increaseAllowance(address,uint256) // 0x42966c68 => burn(uint256) // 0x449a52f8 => mintTo(address,uint256) // 0x4707d000 => rescueToken(address,address) // 0x66904e10 => Unknown_66904e10(address) // 0x6f8b44b0 => setMaxSupply(uint256) // 0x70a08231 => balanceOf(address) // 0x715018a6 => renounceOwnership() // 0x893d20e8 => getOwner() // 0x8da5cb5b => owner() // 0x95d89b41 => symbol() // 0xa0712d68 => mint(uint256) // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa60120b9 => Unknown_a60120b9(address,address) // 0xa9059cbb => transfer(address,uint256) // 0xcd96c5a9 => Unknown_cd96c5a9(bool) // 0xd38851d9 => unresolved_d38851d9(address) // 0xd5abeb01 => maxSupply() // 0xd8792a8f => rescueBnb(address) // 0xdd62ed3e => allowance(address,address) // 0xe393c6c7 => unresolved_e393c6c7(address) // 0xe6ddf403 => addDexPair(address) // 0xf2fde38b => transferOwnership(address) // 0xfb108ea6 => setProject(address) // 0xfe5101c8 => Unknown_fe5101c8(address)}