Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x36E90A36C51c5Df231880C167A9CF237cB44a6fF
Balance 0 ETH
Nonce 1
Code Size 10124 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

10124 bytes
0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063a457c2d71161006f578063a457c2d7146104cb578063a9059cbb14610508578063aa4bde2814610545578063bb85c6d114610570578063dd62ed3e146105ad578063f2fde38b146105ea57610156565b8063715018a6146103cb57806375f0a874146103e257806381bfdcca1461040d5780638c0b5e221461044a5780638da5cb5b1461047557806395d89b41146104a057610156565b8063395093511161010857806339509351146102815780633e45c8af146102be57806349bd5a5e146102fb578063527ffabd14610326578063677daa571461035157806370a082311461038e57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610613565b60405161017d9190611997565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611a52565b6106a5565b6040516101ba9190611aad565b60405180910390f35b3480156101cf57600080fd5b506101d86106c8565b6040516101e59190611b27565b60405180910390f35b3480156101fa57600080fd5b506102036106ec565b6040516102109190611b51565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611b6c565b6106f6565b60405161024d9190611aad565b60405180910390f35b34801561026257600080fd5b5061026b610725565b6040516102789190611bdb565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190611a52565b61072e565b6040516102b59190611aad565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190611bf6565b610765565b6040516102f29190611aad565b60405180910390f35b34801561030757600080fd5b506103106107c3565b60405161031d9190611c32565b60405180910390f35b34801561033257600080fd5b5061033b6107e7565b6040516103489190611b51565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190611bf6565b6107ed565b6040516103859190611aad565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b09190611c4d565b610807565b6040516103c29190611b51565b60405180910390f35b3480156103d757600080fd5b506103e061084f565b005b3480156103ee57600080fd5b506103f7610863565b6040516104049190611c32565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190611bf6565b610889565b6040516104419190611aad565b60405180910390f35b34801561045657600080fd5b5061045f6108a3565b60405161046c9190611b51565b60405180910390f35b34801561048157600080fd5b5061048a6108a9565b6040516104979190611c32565b60405180910390f35b3480156104ac57600080fd5b506104b56108d3565b6040516104c29190611997565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190611a52565b610965565b6040516104ff9190611aad565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a9190611a52565b6109dc565b60405161053c9190611aad565b60405180910390f35b34801561055157600080fd5b5061055a6109ff565b6040516105679190611b51565b60405180910390f35b34801561057c57600080fd5b5061059760048036038101906105929190611c4d565b610a05565b6040516105a49190611aad565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf9190611c7a565b610a59565b6040516105e19190611b51565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190611c4d565b610ae0565b005b60606003805461062290611ce9565b80601f016020809104026020016040519081016040528092919081815260200182805461064e90611ce9565b801561069b5780601f106106705761010080835404028352916020019161069b565b820191906000526020600020905b81548152906001019060200180831161067e57829003601f168201915b5050505050905090565b6000806106b0610b63565b90506106bd818585610b6b565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b600080610701610b63565b905061070e858285610d34565b610719858585610dc0565b60019150509392505050565b60006009905090565b600080610739610b63565b905061075a81858561074b8589610a59565b6107559190611d49565b610b6b565b600191505092915050565b600061076f6112e3565b60648211156107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90611def565b60405180910390fd5b81600a8190555060019050919050565b7f00000000000000000000000066f88fe0bd4caa515984a6e77bf0428c8a70d41281565b600a5481565b60006107f76112e3565b81600b8190555060019050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108576112e3565b6108616000611361565b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006108936112e3565b81600c8190555060019050919050565b600b5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108e290611ce9565b80601f016020809104026020016040519081016040528092919081815260200182805461090e90611ce9565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b600080610970610b63565b9050600061097e8286610a59565b9050838110156109c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ba90611e81565b60405180910390fd5b6109d08286868403610b6b565b60019250505092915050565b6000806109e7610b63565b90506109f4818585610dc0565b600191505092915050565b600c5481565b6000610a0f6112e3565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ae86112e3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90611f13565b60405180910390fd5b610b6081611361565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd190611fa5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612037565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d279190611b51565b60405180910390a3505050565b6000610d408484610a59565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610dba5781811015610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da3906120a3565b60405180910390fd5b610db98484848403610b6b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2690612135565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e95906121c7565b60405180910390fd5b80610ea884610807565b1015610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090612259565b60405180910390fd5b7f00000000000000000000000066f88fe0bd4caa515984a6e77bf0428c8a70d41273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f8e57507f00000000000000000000000066f88fe0bd4caa515984a6e77bf0428c8a70d41273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015610fa75750601160009054906101000a900460ff16155b156112d2577f00000000000000000000000066f88fe0bd4caa515984a6e77bf0428c8a70d41273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110ce57601054600e54106110cd57611015601054611427565b601054600e60008282546110299190612279565b925050819055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050509050806110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906122f9565b60405180910390fd5b505b5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111715750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561117e578190506112c1565b600b548211156111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba9061238b565b60405180910390fd5b7f00000000000000000000000066f88fe0bd4caa515984a6e77bf0428c8a70d41273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361126f57600c5461122284610807565b8361122d9190611d49565b111561126e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112659061241d565b60405180910390fd5b5b60006064600a5484611281919061243d565b61128b91906124c6565b905080836112999190612279565b915080600e60008282546112ad9190611d49565b925050819055506112bf8530836116a7565b505b6112cc8484836116a7565b506112de565b6112dd8383836116a7565b5b505050565b6112eb610b63565b73ffffffffffffffffffffffffffffffffffffffff166113096108a9565b73ffffffffffffffffffffffffffffffffffffffff161461135f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135690612543565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561145f5761145e612563565b5b60405190808252806020026020018201604052801561148d5781602001602082028036833780820191505090505b50905030816000815181106114a5576114a4612592565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156e91906125d6565b8160018151811061158257611581612592565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e7307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610b6b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947836000843061012c426116369190611d49565b6040518663ffffffff1660e01b81526004016116569594939291906126fc565b600060405180830381600087803b15801561167057600080fd5b505af1158015611684573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90612135565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c906121c7565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180290612259565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118f99190611b51565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611941578082015181840152602081019050611926565b60008484015250505050565b6000601f19601f8301169050919050565b600061196982611907565b6119738185611912565b9350611983818560208601611923565b61198c8161194d565b840191505092915050565b600060208201905081810360008301526119b1818461195e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119e9826119be565b9050919050565b6119f9816119de565b8114611a0457600080fd5b50565b600081359050611a16816119f0565b92915050565b6000819050919050565b611a2f81611a1c565b8114611a3a57600080fd5b50565b600081359050611a4c81611a26565b92915050565b60008060408385031215611a6957611a686119b9565b5b6000611a7785828601611a07565b9250506020611a8885828601611a3d565b9150509250929050565b60008115159050919050565b611aa781611a92565b82525050565b6000602082019050611ac26000830184611a9e565b92915050565b6000819050919050565b6000611aed611ae8611ae3846119be565b611ac8565b6119be565b9050919050565b6000611aff82611ad2565b9050919050565b6000611b1182611af4565b9050919050565b611b2181611b06565b82525050565b6000602082019050611b3c6000830184611b18565b92915050565b611b4b81611a1c565b82525050565b6000602082019050611b666000830184611b42565b92915050565b600080600060608486031215611b8557611b846119b9565b5b6000611b9386828701611a07565b9350506020611ba486828701611a07565b9250506040611bb586828701611a3d565b9150509250925092565b600060ff82169050919050565b611bd581611bbf565b82525050565b6000602082019050611bf06000830184611bcc565b92915050565b600060208284031215611c0c57611c0b6119b9565b5b6000611c1a84828501611a3d565b91505092915050565b611c2c816119de565b82525050565b6000602082019050611c476000830184611c23565b92915050565b600060208284031215611c6357611c626119b9565b5b6000611c7184828501611a07565b91505092915050565b60008060408385031215611c9157611c906119b9565b5b6000611c9f85828601611a07565b9250506020611cb085828601611a07565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d0157607f821691505b602082108103611d1457611d13611cba565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d5482611a1c565b9150611d5f83611a1c565b9250828201905080821115611d7757611d76611d1a565b5b92915050565b7f45524332303a20746f74616c20746178206d757374206e6f742062652067726560008201527f61746572207468616e2031303000000000000000000000000000000000000000602082015250565b6000611dd9602d83611912565b9150611de482611d7d565b604082019050919050565b60006020820190508181036000830152611e0881611dcc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611e6b602583611912565b9150611e7682611e0f565b604082019050919050565b60006020820190508181036000830152611e9a81611e5e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611efd602683611912565b9150611f0882611ea1565b604082019050919050565b60006020820190508181036000830152611f2c81611ef0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611f8f602483611912565b9150611f9a82611f33565b604082019050919050565b60006020820190508181036000830152611fbe81611f82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612021602283611912565b915061202c82611fc5565b604082019050919050565b6000602082019050818103600083015261205081612014565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061208d601d83611912565b915061209882612057565b602082019050919050565b600060208201905081810360008301526120bc81612080565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061211f602583611912565b915061212a826120c3565b604082019050919050565b6000602082019050818103600083015261214e81612112565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006121b1602383611912565b91506121bc82612155565b604082019050919050565b600060208201905081810360008301526121e0816121a4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612243602683611912565b915061224e826121e7565b604082019050919050565b6000602082019050818103600083015261227281612236565b9050919050565b600061228482611a1c565b915061228f83611a1c565b92508282039050818111156122a7576122a6611d1a565b5b92915050565b7f4661696c656420746f2073656e64204554480000000000000000000000000000600082015250565b60006122e3601283611912565b91506122ee826122ad565b602082019050919050565b60006020820190508181036000830152612312816122d6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207460008201527f6865206d6178207472616e73616374696f6e20616d6f756e7400000000000000602082015250565b6000612375603983611912565b915061238082612319565b604082019050919050565b600060208201905081810360008301526123a481612368565b9050919050565b7f45524332303a2062616c616e636520616d6f756e74206578636565646564206d60008201527f61782077616c6c657420616d6f756e74206c696d697400000000000000000000602082015250565b6000612407603683611912565b9150612412826123ab565b604082019050919050565b60006020820190508181036000830152612436816123fa565b9050919050565b600061244882611a1c565b915061245383611a1c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561248c5761248b611d1a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124d182611a1c565b91506124dc83611a1c565b9250826124ec576124eb612497565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061252d602083611912565b9150612538826124f7565b602082019050919050565b6000602082019050818103600083015261255c81612520565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506125d0816119f0565b92915050565b6000602082840312156125ec576125eb6119b9565b5b60006125fa848285016125c1565b91505092915050565b6000819050919050565b600061262861262361261e84612603565b611ac8565b611a1c565b9050919050565b6126388161260d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612673816119de565b82525050565b6000612685838361266a565b60208301905092915050565b6000602082019050919050565b60006126a98261263e565b6126b38185612649565b93506126be8361265a565b8060005b838110156126ef5781516126d68882612679565b97506126e183612691565b9250506001810190506126c2565b5085935050505092915050565b600060a0820190506127116000830188611b42565b61271e602083018761262f565b8181036040830152612730818661269e565b905061273f6060830185611c23565b61274c6080830184611b42565b969550505050505056fea2646970667358221220dd1ff9dee5c6fb760e00cbd55a33c1f8ad14702950fe945484f90b32ec35b0e864736f6c63430008100033

Verified Source Code Partial Match

Compiler: v0.8.16+commit.07a7930e EVM: london Optimization: No
Magpac.sol 525 lines
/*

Web: https://www.magamemepac.com/
TG: https://t.me/JoinMAGAMEMEPAC
X: https://x.com/TheMagaboyz
TikTok: https://www.tiktok.com/@themagaboyz

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );


    function createPair(address tokenA, address tokenB)
    external
    returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);


    function nonces(address owner) external view returns (uint256);


    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);


    function factory() external view returns (address);


    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function symbol() external view virtual override returns (string memory) {
        return _symbol;
    }

    function name() external view virtual override returns (string memory) {
        return _name;
    }

    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() external view virtual override returns (uint256) {
        return _totalSupply;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function transfer(address to, uint256 amount)
        external
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function approve(address spender, uint256 amount)
        external
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        external
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        external
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }



    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }
}


 contract Magpac is ERC20, Ownable {
    string private _name = "MAGA Meme PAC";
    string private _symbol = "MAGPAC";
    uint8 private _decimals = 9;
    uint256 private _supply = 47000000;
    uint256 public taxForMarketing = 5;
    uint256 public maxTxAmount = 235000 * 10**_decimals;
    uint256 public maxWalletAmount = 235000 * 10**_decimals;
    address public marketingWallet = 0x8689BC58795198F40e2d312312094b4cf967d071;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 private _marketingReserves = 0;
    mapping(address => bool) private _isExcludedFromFee;

    uint256 private _numTokensSellToAddToETH = 235000 * 10**_decimals;
    bool inSwapAndLiquify;


    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor() ERC20(_name, _symbol) {
        _mint(msg.sender, (_supply * 10**_decimals));
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[marketingWallet] = true;
    }


    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance");

        if ((from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify) {
            if (from != uniswapV2Pair) {
                if ((_marketingReserves) >= _numTokensSellToAddToETH) {
                    _swapTokensForEth(_numTokensSellToAddToETH);
                    _marketingReserves -= _numTokensSellToAddToETH;
                    bool sent = payable(marketingWallet).send(address(this).balance);
                    require(sent, "Failed to send ETH");
                }
            }

            uint256 transferAmount;
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                transferAmount = amount;
            } 
            else {
                require(amount <= maxTxAmount, "ERC20: transfer amount exceeds the max transaction amount");
                if(from == uniswapV2Pair){
                    require((amount + balanceOf(to)) <= maxWalletAmount, "ERC20: balance amount exceeded max wallet amount limit");
                }

                uint256 marketingShare = ((amount * taxForMarketing) / 100);
                transferAmount = amount - marketingShare;
                _marketingReserves += marketingShare;

                super._transfer(from, address(this), marketingShare);
            }
            super._transfer(from, to, transferAmount);
        } 
        else {
            super._transfer(from, to, amount);
        }
    }


    function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            (block.timestamp + 300)
        );
    }



    function changeMarketingWallet(address newWallet)
        public
        onlyOwner
        returns (bool)
    {
        marketingWallet = newWallet;
        return true;
    }

    function changeTax(uint256 _taxForMarketing)
        public
        onlyOwner
        returns (bool)
    {
        require(_taxForMarketing <= 100, "ERC20: total tax must not be greater than 100");
        taxForMarketing = _taxForMarketing;

        return true;
    }

    function changeMaxTxAmount(uint256 _maxTxAmount)
        public
        onlyOwner
        returns (bool)
    {
        maxTxAmount = _maxTxAmount;

        return true;
    }

    function changeMaxWalletAmount(uint256 _maxWalletAmount)
        public
        onlyOwner
        returns (bool)
    {
        maxWalletAmount = _maxWalletAmount;

        return true;
    }

    receive() external payable {}
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
marketingWallet 0x75f0a874 → address
maxTxAmount 0x8c0b5e22 → uint256
maxWalletAmount 0xaa4bde28 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
taxForMarketing 0x527ffabd → uint256
totalSupply 0x18160ddd → uint256
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address

Write Contract 11 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
changeMarketingWallet 0xbb85c6d1
address newWallet
returns: bool
changeMaxTxAmount 0x677daa57
uint256 _maxTxAmount
returns: bool
changeMaxWalletAmount 0x81bfdcca
uint256 _maxWalletAmount
returns: bool
changeTax 0x3e45c8af
uint256 _taxForMarketing
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address