BNB Chain

0xd5f7d51549b249c53303d594f19887477fa9ab89

Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.

Decompilation outputBNB Chain · 0xd5f7d515…7fa9ab895.1 KB3.2 s
Share
353 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]    [] ; // STORAGE[0x1]      ; // STORAGE[0x2]      ; // STORAGE[0x3]    [] ; // STORAGE[0x4]      ; // STORAGE[0x4]    [] ; // STORAGE[0x5]      ; // STORAGE[0x5]      ; // STORAGE[0x6]      ; // STORAGE[0x7]      ; // STORAGE[0x8]      ; // STORAGE[0x9]      ; // STORAGE[0xa]    ( => ) ; // STORAGE[0xb]    ( => ) ; // STORAGE[0xc]    ( => )  ; // STORAGE[0xd]     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;         ( ,  );         () {        (. == , "Ownable: caller is not the owner");        ;    }    ()   {         ( != 0x0) {             = (( * .) / ) + ;        }    }        ()  {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0xb10be8af)) {            // Route to Unknown_b10be8af(address) after replacing only msg.sig.            ((0xda3bf9a1));            ;        }        ();    }             ( )   {        ( <= 0x64, "Percent cannot exceed 100");         = ;    }         ( )   {         = ;    }         ( )   {         = ;    }         ( ,  )  {        (. ==  || . == );          = ().(());        ().(, );    }         ( )    ( ) {         .(([]), , );    }         ()  {        . = 0x01 + .;        (![.], "account is blocklist");         ([.] != 0) {             = ((( * ) / ) - ) + ;        }        ( != 0x0, "Nothing to claim");         =  + ;         = 0;        ( ,   ) = (.).{ :  }(""); // call          = 0x60;         (. != 0) {             ;             =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             = ;        }        (, "Failed to transfer rewards");         = ( * [.]) / ;        (. == ., "ReentrancyGuard: reentrant call");    }         ( )  {        ();    }         ( )    ( ) {          = 0;         ((( * []) / ) > ) {             = (( * []) / ) - ;        }         .([], ,  + );    }         ( )    ( ) {         .([], , , , );    }         ()   {         (, (0));         = (0);    }         ( )  {        (. ==  || . == );        ( ,   ) = .{ : (). }(""); // call          = 0x60;         (. != 0) {             ;             =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             = ;        }        (, "BNB transfer failed");    }         ( )  {        . = 0x01 + .;        (.. != 0x0);        ( ,   ) = .(.((0x23b872dd), ., (), )); // call transferFrom        ();         ([.] != 0) {             = ((( * ) / ) - ) + ;        }         =  + ;         = 0x01 + ;        [.] =  + [.];         =  + 0x01;         = ;         ;         =  + 0x60;        [] = (. & (0xffffffffffffffffffffffffffffffffffffffff)) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);         = ;         = ;         = ( * [.]) / ;        (. == ., "ReentrancyGuard: reentrant call");    }         ( )   {         = ;    }         ( )    () {          = 0;          = 0;         () {             (!( < )) {                ;            }             ;             (!(. < ( + ))) {                  = ( * (((. - ( + )) / ) + 0x01)) * ;                  =  * (((. - ( + )) / ) + 0x01);                 (!(( * (((. - ( + )) / ) + 0x01)) > 0x64)) {                }  {                     = 0x64 * ;                     = 0x64;                }                 = ( / 0x64) + ;            }  {                 = ;            }             = 0x01 + ;             = ;        }         ( <= ) {             0;        }          - ;    }         ( ,  )   {        [] = ;    }         ( )   {        ( != (0), "Ownable: new owner is the zero address");         (, );         = ;    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.        . = 0x01 + .;        (![.], "account is blocklist");        (!( > [.]), "Insufficient staked amount");          = 0;          = (.(., 0x0c));          = 0;          = .;         () {             (!( < [])) {                ;            }             ;             (!(. < ( + ))) {                  = ( * (((. - ( + )) / ) + 0x01)) * ;                  =  * (((. - ( + )) / ) + 0x01);                 (( * (((. - ( + )) / ) + 0x01)) > 0x64) {                     = 0x64 * ;                     = 0x64;                }                 = ( / 0x64) + ;            }  {                 = ;            }             (!((0x01 + ) < [])) {                ;            }             ;             (!(. < ( + ))) {                  = ( * (((. - ( + )) / ) + 0x01)) * ;                  =  * (((. - ( + )) / ) + 0x01);                 (( * (((. - ( + )) / ) + 0x01)) > 0x64) {                     = 0x64 * ;                     = 0x64;                }                 = ( / 0x64) + ;            }  {                 = ;            }             = (0x01 + (0x01 + ));             = ;             = ;             = ;             ( <= ) {                (0 >= , "Requested unstake amount exceeds unlocked amount");                 ([.] != 0) {                     = ((( * ) / ) - ) + ;                }                 =  - ;                [((.(., 0x0c)))] =  + [((.(., 0x0c)))];                 =  - ;                ().(., );                [((.(., 0x0c)))] = ( * ) / ;                (. == ., "ReentrancyGuard: reentrant call");            }            (( - ) >= , "Requested unstake amount exceeds unlocked amount");             ([.] != 0) {                 = ((( * ) / ) - ) + ;            }             =  - ;            [((.(., 0x0c)))] =  + [((.(., 0x0c)))];             =  - ;            ().(., );            [((.(., 0x0c)))] = ( * ) / ;            (. == ., "ReentrancyGuard: reentrant call");        }          = ( - );         (!( > )) {             = 0;        }        ( >= , "Requested unstake amount exceeds unlocked amount");         ([.] != 0) {             = (((( * ) / ) - ) + );        }         =  - ;         =  + ;         =  - ;        ().(., );         = ( * [.]) / ;        (. == ., "ReentrancyGuard: reentrant call");    }         ( )  {         {              := (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.        // 0x0247497e => setMonthlyUnlockPercent(uint256)    // 0x0d118899 => MONTHLY_UNLOCK_PERCENT()    // 0x0d668087 => lockTime()    // 0x144fa6d7 => setToken(address)    // 0x2e3c9e99 => managerAddr()    // 0x322f1b35 => setUnlockInterval(uint256)    // 0x32fcd966 => ACC_PRECISION()    // 0x3aeac4e1 => withdrawToken(address,address)    // 0x4e5919ef => _orders(uint256)    // 0x4e71d92d => claim()    // 0x5ce10521 => UNLOCK_INTERVAL()    // 0x5d3eea91 => unStake(uint256)    // 0x6386c1c7 => getUserInfo(address)    // 0x6f17d611 => _userInfo(address)    // 0x715018a6 => renounceOwnership()    // 0x72609471 => withdrawBNB(address)    // 0x817b1cd2 => totalStaked()    // 0x8da5cb5b => owner()    // 0xa694fc3a => stake(uint256)    // 0xae04d45d => setLockTime(uint256)    // 0xb10be8af => Unknown_b10be8af(address)    // 0xbe374423 => orderIdCounter()    // 0xbf048b0d => _isBlockList(address)    // 0xc2412676 => Token()    // 0xcd3daf9d => rewardPerToken()    // 0xe7acf131 => setBlockList(address,bool)    // 0xf2fde38b => transferOwnership(address)}
0xd5f7d5…a9ab89 on BNB Chain — Decompiled Solidity