BNB Chain

0xb7ec85bc396560c4fb56c8622766d5e693a08e33

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

Decompilation outputBNB Chain · 0xb7ec85bc…93a08e3323.5 KB35.8 s
Share
402 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// Decompilation incomplete: generated symbolic output exceeded safe postprocessing limits for 1 of 22 entry points; ABI and selector evidence were preserved but those Solidity bodies were omitted: fc847c2b// SPDX-License-Identifier: MIT  >=0.8.0;  {        = 8534;        = 38565618417199902773051943526088628524471517387241857154768371431684916793409;        = 72579651441009407333943101911154516623030303948146585667981958319985908871313;        = 64624691009355361407247360265918275933336169636348308855649155591726815083253;        = 51542168180248082152030056451728049499749905167243835096059084772534901506895;        = 1158853091786033425893608146368825967478011484247;        = 0;        = 823732757968423494232508997868029306736301263878;        = 10000000000000000;        = 12500;        = 114661979489761869402673463282528833466887108470131624800944901259873389970420;        = 250;        ( => ( => ))  ; // STORAGE[0x65]    ( => ) ; // STORAGE[0x98]     ;     ;     ;         ();     ( ,  ,  );     ( ,  ,  );     ();     ();     ();     ();     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }    ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x4f7edf58)) {            // Route to Unknown_4f7edf58(address) after replacing only msg.sig.            ((0xef7a5401));            ;        }         ((.. >= 4) && (. == 0xa9d335ca)) {            // Route to Unknown_a9d335ca(address) after replacing only msg.sig.            ((0x97a77f65));            ;        }         ((.. >= 4) && (. == 0xef7ec2e7)) {            // Route to Unknown_ef7ec2e7(address) after replacing only msg.sig.            ((0x9cb25c7f));            ;        }         ((.. >= 4) && (. == 0xfc847c2b)) {            // Route to Unknown_fc847c2b(address,address,uint256) after replacing only msg.sig.            ((0x89dac028));            ;        }        ();    }             ( )    () {        ( == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000));          = 0x7965db0b00000000000000000000000000000000000000000000000000000000 == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000);         (0x7965db0b00000000000000000000000000000000000000000000000000000000 != ( & 0xffffffff00000000000000000000000000000000000000000000000000000000)) {             = ( & 0xffffffff00000000000000000000000000000000000000000000000000000000) == 0x1ffc9a700000000000000000000000000000000000000000000000000000000;        }         ;    }         ( )    () {         ;    }         ( ,  )  {        (, );    }         ( ,  )  {        (. == , "AccessControl: can only renounce roles for self");         (([][])) {            [][] = ;             (, , .);        }    }         ( )   {        ( <= 0xffffffffffffffff);        (!((.. - (0x04 + )) < 0xc0));        (!((.. - (0x04 + )) < 0xc0));         ;         ((( + 0xc0) < ) | (( + 0xc0) > 0xffffffffffffffff)) (65);         =  + 0xc0;        ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));        (( + 0x20) == (( + 0x20) & 0xffffffffffffffffffffffffffffffffffffffff));        (!(( + 0x80) > 0xffffffffffffffff));        (((0x04 + ) + ( + 0x80) + 0x1f) < ..);         ( + ( + 0x80) > 0xffffffffffffffff) (65);         ((( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ( + ( + 0x80) + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < ) | (( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ( + ( + 0x80) + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) (65);         =  + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ( + ( + 0x80) + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!(.. < (0x20 + ( + ( + 0x80) + ((0x04 + ) + ( + 0x80))))));        (!(( + 0xa0) > 0xffffffffffffffff));        (((0x04 + ) + ( + 0xa0) + 0x1f) < ..);         ( + ( + 0xa0) > 0xffffffffffffffff) (65);         ((( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ( + ( + 0xa0) + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < ) | (( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ( + ( + 0xa0) + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) (65);         =  + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ( + ( + 0xa0) + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!(.. < (0x20 + ( + ( + 0xa0) + ((0x04 + ) + ( + 0xa0))))));    }         ( )   {        ();    }         ( ,  )  {        (, );    }         ( )   {        ( <= 0xffffffffffffffff);        (!((.. - (0x04 + )) < 0xa0));        (0x4 +  + 0x20 - (0x4 + ) >= 0x20);        ( == );        (0x20 + (0x4 + ) + 0x20 - (0x20 + (0x4 + )) >= 0x20);        ((0x20 + ) == ((0x20 + )));        ((0x80 + ) < ((.. - (0x04 + )) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1));        (!( + (0x80 + ) > 0xffffffffffffffff));        (!((0x20 + ((0x04 + ) + (0x80 + ))) > (.. - ( + (0x80 + )))));         =  + (0x20 + (((0x1f + ( + (0x80 + ))) / 0x20) * 0x20));         = .[36:36];         = 0x20 + ;    }         ( ,  ,  )  {        // Function body omitted: symbolic output exceeded safe complexity limits.         { (0, 0) }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!(([][.]) != 0x0)) {             (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             ;             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));              = (0x14 * 0x02) + 0x02;             (0x14 * 0x2 + 0x2 != 0x0) {                 = ((0x14 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);              = (0x14 * 0x02) + 0x01;              = .;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");             (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));              = (0x20 * 0x02) + 0x02;             ((0x20 * 0x02) + 0x02 != 0) {                 = ((0x20 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);             = (0x20 * 0x02) + 0x01;             = ;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");             = ((((0x20 + ) + 0x17) + .) + 0x11) + .;            ("AccessControl: account 0x\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 is missing role 0x\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\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)) {            [][] = ;             (, , .);        }    }         ( )  {          = 0;        // Decompilation incomplete: helper effect provenance is conservative.         = ();          = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;         (()) {             = ;        }        ( ,   ) = (0x4db4fcfebbf3f0cbd20efff444b133b96abda2d6).(, ()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));          = .;         (!((.))) {            ( ,   ) = (0x4db4fcfebbf3f0cbd20efff444b133b96abda2d6).(, ()); // call            ();             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (!((( + .) - ) < 0x20));             =  + 0x24;            ( ,   ) = .(); // staticcall              = 0x60;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }              = ;             () {                 = 0x20 == ;            }              = ;             () {                  = ;                 ( < 0x20) {                     =  & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff << ((0x20 - ) << 0x03));                }                  = ;                 (()) {                     =  + 0x44;                    ( ,   ) = ().(); // call                      = 0x60;                     (. != 0) {                         =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                         = ;                    }                     = ;                }                 = ;            }             = .;        }    }         ( )   () {        // Decompilation incomplete: helper effect provenance is conservative.         ;         =  + 0x0260;         (([]) == 0xff) {             (([] >> 0x08) > 0x05) (33);             (([] >> 0x10) > 0xa4) (33);             (([] >> 0x18) > 0x05) (33);             (([] >> 0x40) > 0x07) (33);             (([] >> 0x48) > 0x02) (33);             (([] >> 0x50) > 0x03) (33);             (([] >> 0x68) > 0x02) (33);             (([] >> 0x70) > 0x02) (33);             ( > 0x02) (33);        }  {             (([]) > 0x05) (33);             (([] >> 0x08) > 0xa4) (33);             (([] >> 0x10) > 0x05) (33);             (([] >> 0xf8) > 0x07) (33);        }         ;    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!(([][.]) != 0x0)) {             (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             ;             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));              = (0x14 * 0x02) + 0x02;             (0x14 * 0x2 + 0x2 != 0x0) {                 = ((0x14 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);              = (0x14 * 0x02) + 0x01;              = .;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");             (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));              = (0x20 * 0x02) + 0x02;             ((0x20 * 0x02) + 0x02 != 0) {                 = ((0x20 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);             = (0x20 * 0x02) + 0x01;             = ;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");             = ((((0x20 + ) + 0x17) + .) + 0x11) + .;            ("AccessControl: account 0x\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 is missing role 0x\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");        }         (([][])) {            [][] = ;             (, , .);        }    }         ( )  {         {              := (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.        // 0x01ffc9a7 => supportsInterface(bytes4)    // 0x0fe3867c => DEFAULT_PCS_INFINITY_NORMAL_FEE_PIPS()    // 0x248a9ca3 => getRoleAdmin(bytes32)    // 0x24ea54f4 => GUARDIAN_ROLE()    // 0x2f2ff15d => grantRole(bytes32,address)    // 0x36568abe => renounceRole(bytes32,address)    // 0x4f7edf58 => Unknown_4f7edf58(address)    // 0x60a4b76a => MANAGE_ROLE()    // 0x67d92f04 => CURVE_AUTH_SIGNER_ROLE()    // 0x797669c9 => MODERATOR_ROLE()    // 0x8141e247 => unresolved_8141e247()    // 0x91d14854 => hasRole(bytes32,address)    // 0xa217fddf => DEFAULT_ADMIN_ROLE()    // 0xa9d335ca => Unknown_a9d335ca(address)    // 0xb22a3410 => VAULT_PORTAL()    // 0xbc778a25 => SALT_LOCK_FEE()    // 0xd547741f => revokeRole(bytes32,address)    // 0xe0893e0c => DEFAULT_V4_NORMAL_FEE_PIPS()    // 0xeae8a630 => TOKEN_FLAP_FEE_SETTER_ROLE()    // 0xef7ec2e7 => Unknown_ef7ec2e7(address)    // 0xfa4f8931 => DEFAULT_V4_TICK_SPACING()    // 0xfc847c2b => Unknown_fc847c2b(address,address,uint256)}