BNB Chain
0xda43dd736dd2a1183c36a1a56c5665a63c135568
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0xda43dd73…3c1355684.5 KB5.1 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0xda43dd736dd2a1183c36a1a56c5665a63c135568
418 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; { ( , ) ( );} { = 0; ( => ( => )) ; // STORAGE[0x0] ( => ) ; // STORAGE[0x1] ; // STORAGE[0x2] ; // STORAGE[0x3] ; // STORAGE[0x4] ; // STORAGE[0x5] ( => ) ; // STORAGE[0x6] ; // STORAGE[0x7] ( => ) ; ( => ) ; ( => ) ; ( => ) ; ( => ) ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ( , , ); ( , , ); ( , , ); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x4a28d784)) { // Route to Unknown_4a28d784(uint256,uint256,uint256,bool,uint256,uint256,bytes32,bool,uint256,uint256) after replacing only msg.sig. ((0xe87d7864)); ; } ((.. >= 4) && (. == 0x9010d07c)) { // Route to Unknown_9010d07c(uint256,uint256) after replacing only msg.sig. ((0xb656a175)); ; } (); } ( ) () { ( == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000)); (0x5a05180f00000000000000000000000000000000000000000000000000000000 == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000)) { !(!(0x5a05180f00000000000000000000000000000000000000000000000000000000 == ( & (0xffffffff00000000000000000000000000000000000000000000000000000000)))); } { (0x7965db0b00000000000000000000000000000000000000000000000000000000 == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000)) { !(!(0x7965db0b00000000000000000000000000000000000000000000000000000000 == ( & (0xffffffff00000000000000000000000000000000000000000000000000000000)))); } { !(!( & (0xffffffff00000000000000000000000000000000000000000000000000000000) == 0x01ffc9a700000000000000000000000000000000000000000000000000000000)); } } } ( , , , ) { (([0][.]) != 0x0, "error"); = ; = ; = ; = ; } ( ) () { ; } ( , ) { (, ); } ( , , ) { (([0][.]) != 0x0, "error"); ().(, ); } ( , ) { (. == , "AccessControl: can only renounce roles for self"); (([][])) { [][] = ; (, , .); } ([] != 0) { (!(([] - 0x01) == ([] - 0x01))) { (!(([] - 0x01) < )) (50); (!(([] - 0x01) < )) (50); = ; [] = []; } (!([] != 0x0)) (49); = 0; [] = [] - 0x01; [] = 0; } } ( , , , , , , , , , ) { ( == ( & 0xff)); ( == ( & 0xff)); ( > 0x0, "id error"); = 0x06; (!([]), " id withdraw error"); = (0xe0 + ) + 0x20; (); (() != 0x0, "invalid signature"); ( == (()), "unauthorized"); [] = (.) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []); (.. != 0x0); ( , ) = .(, , , (), , , ); // call (); ().(, ); ().(., - ); (., , ); } ( , ) () { (!( < )) (50); ; } ( , ) { (, ); } ( , ) { // 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"); = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } = 0x28 + (. + ((0x20 + ) + .)); = 0; () { ( >= .) { ; } (0x20 + >= .) { ; } = 0x20 + (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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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; (!([] != 0x0)) { [] = 0x01 + []; = ; [] = []; = ; } } ( , ) { // 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"); = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } = 0x28 + (. + ((0x20 + ) + .)); = 0; () { ( >= .) { ; } (0x20 + >= .) { ; } = 0x20 + (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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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; ([] != 0) { (!(([] - 0x01) == (([] - 0x01)))) { (!(([] - 0x01) < )) (50); (!(([] - 0x01) < )) (50); = ; [] = []; } (!([] != 0x0)) (49); = 0; [] = [] - 0x01; [] = 0; = ; } } ( ) { { := (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) // 0x0682bdbc => signAddress() // 0x087bc228 => setConfig(address,address,address,address) // 0x1581b600 => withdrawAddress() // 0x248a9ca3 => getRoleAdmin(bytes32) // 0x2f2ff15d => grantRole(bytes32,address) // 0x34a1bedb => admin(address,address,uint256) // 0x3644e515 => DOMAIN_SEPARATOR() // 0x36568abe => renounceRole(bytes32,address) // 0x4a28d784 => Unknown_4a28d784(uint256,uint256,uint256,bool,uint256,uint256,bytes32,bool,uint256,uint256) // 0x4de10d6f => BTCX() // 0x8747bf9c => withdrawInfo(uint256) // 0x9010d07c => Unknown_9010d07c(uint256,uint256) // 0x91d14854 => hasRole(bytes32,address) // 0xa217fddf => DEFAULT_ADMIN_ROLE() // 0xca15c873 => getRoleMemberCount(bytes32) // 0xd547741f => revokeRole(bytes32,address) // 0xe82bef29 => fundAddress()}