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
Share
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)}