Ethereum
0x6167a3e21585a9f6b3a1012d0aed3280a36a5baa
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputEthereum · 0x6167a3e2…a36a5baa10.3 KB5.5 s
This result is permanently available athttps://decompiler.exvul.com/ethereum/0x6167a3e21585a9f6b3a1012d0aed3280a36a5baa
406 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] bytes 0 to 19 ; // STORAGE[0x3] ; // STORAGE[0x4] ; // STORAGE[0x5] ; // STORAGE[0x6] ; // STORAGE[0x7] ( => ) ; // STORAGE[0xc] ( => ) ; // STORAGE[0xd] ( => ) ; // STORAGE[0xe] ( => ) ; // STORAGE[0xf] ; // STORAGE[0x10] bytes 0 to 19 ; // STORAGE[0x12] bytes 0 to 19 ; // STORAGE[0x13] ; // STORAGE[0x15] bytes 0 to 0 ; // STORAGE[0x15] bytes 1 to 1 ; // STORAGE[0x16] ( => ) ; // STORAGE[0x17] ( => ) ; // STORAGE[0x18] ; // STORAGE[0x19] bytes 0 to 19 ( => ) ; // STORAGE[0x1c] ( , , ); ( , , ); () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x29525bf2)) { // Route to Unknown_29525bf2() after replacing only msg.sig. ((0xeb0b79ce)); ; } ((.. >= 4) && (. == 0x3562ca32)) { // Route to Unknown_3562ca32(address) after replacing only msg.sig. ((0xe66c1f23)); ; } ((.. >= 4) && (. == 0x6f8ac742)) { // Route to Unknown_6f8ac742() after replacing only msg.sig. ((0x515a1afd)); ; } ((.. >= 4) && (. == 0xaed92f4d)) { // Route to Unknown_aed92f4d(uint256) after replacing only msg.sig. ((0xf0dedfe0)); ; } ((.. >= 4) && (. == 0xeb76bc97)) { // Route to Unknown_eb76bc97() after replacing only msg.sig. ((0xb4fe09f9)); ; } (); } () ( ) { ; } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = ; (., , [.][]); ; } ( , , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60)); (, , ); ; } () () { (); } ( ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (); } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (!(([.][] + ) < [.][]), "SafeMath: addition overflow"); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = [.][] + ; (., , ([(.)][] + )); ; } ( , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (, ); } () () { (); } ( ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); ( != (0), "balance query for the zero address"); = []; ([] == 0) { = ; } ; } () ( ) { ; } ([] , , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60)); (!(. > 0xffffffffffffffff)); (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04))); (!(. > 0xffffffffffffffff)); (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04)))); = 0; () { ( >= .) { ; } (0x20 * + ((0x04 + ) + 0x20) + 0x20 - (0x20 * + ((0x04 + ) + 0x20)) >= 0x20); (, [], ); = + 0x01; } } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (, ); ; } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (, , .); ; } ( ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (); } () () { (); } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. (, , ); ( > [][(.)]) { = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 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"); } ( != (0), "ERC20: approve from the zero address"); (. != (0), "ERC20: approve to the zero address"); [][.] = (([][(.)] - )); (, ., [][.]); } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ( > 0x0, "Transfer amount must be greater than zero"); ( == ) { (.. != 0x0); ( , ) = .(.((0x18160ddd))); // staticcall totalSupply (); ; = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); = .(, ()); ( == ); ( > ) { = ; } } (!(([] / 0x01) || ([] / 0x01))) { (!(([] / 0x01))); (( == ) && ( > 0)) { (.. != 0x0); ( , ) = .(.((0x18160ddd))); // staticcall totalSupply (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ); (!( < )); } (, , ); } { (, , ); } } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); (!([] < ), "ERC20: transfer amount exceeds balance"); ( > []) { = 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"); } } [] = [] - ; ([] + >= [], "SafeMath: addition overflow"); [] = [] + ; (, , ); } ( ) { // Decompilation incomplete: helper effect provenance is conservative. ; = (0x20 + ) + 0x14; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); ( == ); ( == ) { = ; } } ( , ) { // Decompilation incomplete: helper effect provenance is conservative. ; = (0x20 + ) + 0x14; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); ( == ); ( == ) { [] = ( * 0x01) | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & []); } } ( , ) { // Decompilation incomplete: helper effect provenance is conservative. ( > [.][]) { = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 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"); } (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = ([.][] - ); (., , (([(.)][] - ))); } ( ) { // Decompilation incomplete: helper effect provenance is conservative. ; = (0x20 + ) + 0x14; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); ( == ); ( == ) { (!( == 0), "ERC20: transfer from the zero address"); (!( == 0), "ERC20: transfer to the zero address"); (!([] < ), "ERC20: transfer amount exceeds balance"); = 0x40 + ; ( > []) { = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 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"); } [] = ([] - ); ([] + >= [], "SafeMath: addition overflow"); [] = ([] + ); (, , ); } } ( ) { { := (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. // 0x06fdde03 => name() // 0x095ea7b3 => approve(address,uint256) // 0x0fb3f904 => unresolved_0fb3f904(address) // 0x16163c13 => unresolved_16163c13(address) // 0x18160ddd => totalSupply() // 0x23b872dd => transferFrom(address,address,uint256) // 0x29525bf2 => Unknown_29525bf2() // 0x313ce567 => decimals() // 0x3562ca32 => Unknown_3562ca32(address) // 0x39509351 => increaseAllowance(address,uint256) // 0x404e5129 => blacklist(address,bool) // 0x49bd5a5e => uniswapV2Pair() // 0x5983810f => unresolved_5983810f(address) // 0x6f8ac742 => Unknown_6f8ac742() // 0x70a08231 => balanceOf(address) // 0x880e68be => unresolved_880e68be(address) // 0x927f3d41 => _defaultAddress() // 0x95d89b41 => symbol() // 0x983bc41b => airdrop(address[],address,uint256) // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa9059cbb => transfer(address,uint256) // 0xaed92f4d => Unknown_aed92f4d(uint256) // 0xc0cd0dd8 => unresolved_c0cd0dd8(address) // 0xc45a0155 => factory() // 0xdd62ed3e => allowance(address,address) // 0xeb76bc97 => Unknown_eb76bc97() // 0xef95c4a0 => unresolved_ef95c4a0(address) // 0xfbbb9809 => unresolved_fbbb9809(address)}