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
This result is permanently available athttps://decompiler.exvul.com/bsc/0xb7ec85bc396560c4fb56c8622766d5e693a08e33
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)}