BNB Chain
0xe2ce6ab80874fa9fa2aae65d277dd6b8e65c9de0
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0xe2ce6ab8…e65c9de02.8 KB1.6 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0xe2ce6ab80874fa9fa2aae65d277dd6b8e65c9de0
286 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[0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc] ; // STORAGE[0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103] (, ); ( ); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { ; = 0x80; (.. == 0) { (. != ) { ( , ) = ().(); // delegatecall (); ; } { ((.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xc9a6301a00000000000000000000000000000000000000000000000000000000) != 0x0) { ((.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xb0e10d7a00000000000000000000000000000000000000000000000000000000) != 0x0) { ((.[0] & 0xffffffff00000000000000000000000000000000000000000000000000000000 & 0xffffffff00000000000000000000000000000000000000000000000000000000 + 0x70d7c69000000000000000000000000000000000000000000000000000000000) == 0x0) { (!.); (!(0x04 > ..)); (!(.. > ..)); (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (, ); ( != (0), "ERC1967: new admin is the zero address"); = | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); = + 0x20; ; } ((.[0] & 0xffffffff00000000000000000000000000000000000000000000000000000000 & 0xffffffff00000000000000000000000000000000000000000000000000000000 + 0x07ae5bc000000000000000000000000000000000000000000000000000000000) == 0x0) { (!.); ; } { (!(.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xa39f25e500000000000000000000000000000000000000000000000000000000), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); (!.); = 0x40 + ; (); } } { (!(0x04 > ..)); (!(.. > ..)); (.[0x04] == ((.[0x04]))); (. > 0xffffffffffffffff) (65); ((( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < ) | (( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) (65); = + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!(((0x04 + ) + + 0x20) > (0x04 + (.. - 0x04)))); ((.[0x04] & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract"); = ((.[0x04])) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((.[0x04])); (0x1 != 0) { = 0x60 + ; = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } ( , ) = (.[0x04]).(); // delegatecall = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (!) { (!); = 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"); } } { (0x0 == ) { (.[0x04].. != 0x0, "Address: call to non-contract"); } } } ; } } { (!.); (0x04 <= ..); (.. <= ..); ((0x04 + 0) + (.. - 0x04) - (0x04 + 0) >= 0x20); (.[0x04 + 0] == ((.[0x04 + 0]))); = 0x20 + ; ((.[0x04 + 0] & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract"); = ((.[0x04 + 0])) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((.[0x04 + 0])); = ( > 0) ? 1 : 0; ( <= 0) { = 0; } ( != 0x0) { = 0x60 + ; = 0; () { ( >= ) { ; } = 0x20 + ; ( , ) = (.[0x04 + 0]).(); // delegatecall = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (!) { (!); = 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"); } } { (0x0 == ) { (.[0x04].. != 0x0, "Address: call to non-contract"); } } } } = + 0x20; ; } } } (. == ) { (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xc9a6301a00000000000000000000000000000000000000000000000000000000 == 0) { (!.); (!(0x04 > ..)); (!(.. > ..)); (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); = 0x20 + ; (( & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract"); = | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); (); ( > 0x0) { = 0x60 + ; = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } ( , ) = .(); // delegatecall = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (!) { (!); = 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"); } } { (0x0 == ) { (.. != 0x0, "Address: call to non-contract"); } } } = + 0x20; ; } (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xb0e10d7a00000000000000000000000000000000000000000000000000000000 == 0) { (0x04 <= ..); (.. <= ..); (.[0x04 + 0] == ((.[0x04 + 0]))); (!(.[(0x04 + 0) + 0x20] > 0xffffffffffffffff)); (((0x04 + 0) + (.[(0x04 + 0) + 0x20]) + 0x1f) < ((0x04 + 0) + (.. - 0x04))); (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] > 0xffffffffffffffff) (65); ((( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < ) | (( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) (65); = + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!(((0x04 + 0) + (.[(0x04 + 0) + 0x20]) + (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])]) + 0x20) > ((0x04 + 0) + (.. - 0x04)))); (((.[0x04 + 0]) & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract"); = ((.[0x04 + 0])) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((.[0x04 + 0])); = ( > 0) ? 1 : 0; ( <= 0) { = 0x01; } ( != 0x0) { = 0x60 + ; = 0; () { = ; ( >= ) { ; } (0x20 + >= ) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } ( , ) = (.[0x04 + 0]).(); // delegatecall = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (!) { (!); = 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"); } } { (0x0 == ) { ((.[0x04 + 0]).. != 0x0, "Address: call to non-contract"); } } } ; } (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0x70d7c69000000000000000000000000000000000000000000000000000000000 == 0) { (!.); (0x04 <= ..); (.. <= ..); (0x04 + 0 + (.. - 0x04) - (0x04 + 0) >= 0x20); (.[0x04 + 0] == ((.[0x04 + 0]))); (, (.[0x04 + 0])); ((.[0x04 + 0]) != 0x0, "ERC1967: new admin is the zero address"); = (.[0x04 + 0]); = + 0x20; ; } (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0x07ae5bc000000000000000000000000000000000000000000000000000000000 == 0) { (!.); = 0x40 + ; ; } (!(.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xa39f25e500000000000000000000000000000000000000000000000000000000), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); (!.); (); } ( , ) = ().(); // delegatecall (); 0x4e487b7100000000000000000000000000000000000000000000000000000000; } }