Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x602E61eF26821c477124D15Afcde32986c1f8a47
Balance 0 ETH
Nonce 1
Code Size 18943 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

18943 bytes
0x60806040526004361061031e5760003560e01c80637d1db4a5116101ab578063c8607952116100f7578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610bd3578063f2fde38b14610bfe578063f71b9bbf14610c27578063f872858a14610c5057610325565b8063e6b2603b14610b68578063e9fd339414610b7f578063ee828db314610baa57610325565b8063d4e43fb3116100d1578063d4e43fb314610aae578063db886f2314610ad7578063dd62ed3e14610b02578063df8408fe14610b3f57610325565b8063c860795214610a1d578063c867d60b14610a48578063cea9d26f14610a8557610325565b8063a9059cbb11610164578063bf56b3711161013e578063bf56b37114610973578063c16dd4a41461099e578063c5d24189146109c7578063c6d2577d146109f257610325565b8063a9059cbb146108e4578063adc0d09214610921578063ae85ade61461094a57610325565b80637d1db4a5146107be578063807c2d9c146107e95780638b42507f146108145780638da5cb5b1461085157806395d89b411461087c578063a457c2d7146108a757610325565b80633ecad2711161026a5780635d098b38116102235780636ddd1713116101fd5780636ddd17131461071657806370a0823114610741578063715018a61461077e578063728d41c91461079557610325565b80635d098b38146106995780635e42358c146106c2578063651a8987146106ed57610325565b80633ecad2711461057b5780634974d88f146105b857806352f7c988146105e15780635342acb41461060a57806359fac517146106475780635c85974f1461067057610325565b8063111a4651116102d757806327c8f835116102b157806327c8f835146104bd5780632b112e49146104e8578063313ce56714610513578063395093511461053e57610325565b8063111a46511461042a57806318160ddd1461045557806323b872dd1461048057610325565b806301339c211461032a5780630445b6671461034157806306fdde031461036c5780630758d924146103975780630930907b146103c2578063095ea7b3146103ed57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610c7b565b005b34801561034d57600080fd5b50610356610d82565b6040516103639190613883565b60405180910390f35b34801561037857600080fd5b50610381610d88565b60405161038e9190613937565b60405180910390f35b3480156103a357600080fd5b506103ac610e1a565b6040516103b991906139d8565b60405180910390f35b3480156103ce57600080fd5b506103d7610e40565b6040516103e49190613a14565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613a8c565b610e64565b6040516104219190613ae7565b60405180910390f35b34801561043657600080fd5b5061043f610e82565b60405161044c9190613ae7565b60405180910390f35b34801561046157600080fd5b5061046a610e95565b6040516104779190613883565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613b02565b610e9f565b6040516104b49190613ae7565b60405180910390f35b3480156104c957600080fd5b506104d2610f79565b6040516104df9190613a14565b60405180910390f35b3480156104f457600080fd5b506104fd610f9d565b60405161050a9190613883565b60405180910390f35b34801561051f57600080fd5b5061052861101b565b6040516105359190613b71565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613a8c565b611032565b6040516105729190613ae7565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613b8c565b6110e5565b6040516105af9190613ae7565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190613be5565b611105565b005b3480156105ed57600080fd5b5061060860048036038101906106039190613c12565b61119e565b005b34801561061657600080fd5b50610631600480360381019061062c9190613b8c565b61122c565b60405161063e9190613ae7565b60405180910390f35b34801561065357600080fd5b5061066e60048036038101906106699190613b8c565b61124c565b005b34801561067c57600080fd5b5061069760048036038101906106929190613c52565b61130c565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190613b8c565b611392565b005b3480156106ce57600080fd5b506106d7611452565b6040516106e49190613ae7565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190613c7f565b611465565b005b34801561072257600080fd5b5061072b61153c565b6040516107389190613ae7565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613b8c565b61154f565b6040516107759190613883565b60405180910390f35b34801561078a57600080fd5b50610793611598565b005b3480156107a157600080fd5b506107bc60048036038101906107b79190613c52565b611620565b005b3480156107ca57600080fd5b506107d36116a6565b6040516107e09190613883565b60405180910390f35b3480156107f557600080fd5b506107fe6116ac565b60405161080b9190613883565b60405180910390f35b34801561082057600080fd5b5061083b60048036038101906108369190613b8c565b6116b2565b6040516108489190613ae7565b60405180910390f35b34801561085d57600080fd5b506108666116d2565b6040516108739190613a14565b60405180910390f35b34801561088857600080fd5b506108916116fb565b60405161089e9190613937565b60405180910390f35b3480156108b357600080fd5b506108ce60048036038101906108c99190613a8c565b61178d565b6040516108db9190613ae7565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a8c565b61185a565b6040516109189190613ae7565b60405180910390f35b34801561092d57600080fd5b5061094860048036038101906109439190613c52565b611879565b005b34801561095657600080fd5b50610971600480360381019061096c9190613c7f565b6118ff565b005b34801561097f57600080fd5b506109886119d6565b6040516109959190613883565b60405180910390f35b3480156109aa57600080fd5b506109c560048036038101906109c09190613c7f565b6119dc565b005b3480156109d357600080fd5b506109dc611b11565b6040516109e99190613883565b60405180910390f35b3480156109fe57600080fd5b50610a07611b17565b604051610a149190613883565b60405180910390f35b348015610a2957600080fd5b50610a32611b1d565b604051610a3f9190613883565b60405180910390f35b348015610a5457600080fd5b50610a6f6004803603810190610a6a9190613b8c565b611b23565b604051610a7c9190613ae7565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa79190613b02565b611b43565b005b348015610aba57600080fd5b50610ad56004803603810190610ad09190613cbf565b611d01565b005b348015610ae357600080fd5b50610aec611db5565b604051610af99190613a14565b60405180910390f35b348015610b0e57600080fd5b50610b296004803603810190610b249190613cff565b611ddb565b604051610b369190613883565b60405180910390f35b348015610b4b57600080fd5b50610b666004803603810190610b619190613c7f565b611e62565b005b348015610b7457600080fd5b50610b7d611f39565b005b348015610b8b57600080fd5b50610b94612064565b604051610ba19190613ae7565b60405180910390f35b348015610bb657600080fd5b50610bd16004803603810190610bcc9190613be5565b612077565b005b348015610bdf57600080fd5b50610be8612110565b604051610bf59190613a14565b60405180910390f35b348015610c0a57600080fd5b50610c256004803603810190610c209190613b8c565b612136565b005b348015610c3357600080fd5b50610c4e6004803603810190610c499190613b8c565b61222e565b005b348015610c5c57600080fd5b50610c656122ee565b604051610c729190613ae7565b60405180910390f35b610c836123c6565b73ffffffffffffffffffffffffffffffffffffffff16610ca16116d2565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613d8b565b60405180910390fd5b600060125414610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390613df7565b60405180910390fd5b43601281905550426013819055506001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff021916908315150217905550565b60115481565b606060018054610d9790613e46565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc390613e46565b8015610e105780601f10610de557610100808354040283529160200191610e10565b820191906000526020600020905b815481529060010190602001808311610df357829003601f168201915b5050505050905090565b601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e78610e716123c6565b84846123ce565b6001905092915050565b601460009054906101000a900460ff1681565b6000600e54905090565b6000610eac848484612599565b50610f6e84610eb96123c6565b610f698560405180606001604052806028815260200161497d60289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1f6123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b6123ce565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000611016610fcb7f000000000000000000000000000000000000000000000000000000000000000061154f565b611008610ff77f000000000000000000000000000000000000000000000000000000000000dead61154f565b600e54612ce490919063ffffffff16565b612ce490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006110db61103f6123c6565b846110d685600960006110506123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b6123ce565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61110d6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661112b6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890613d8b565b60405180910390fd5b80601460056101000a81548160ff02191690831515021790555050565b6111a66123c6565b73ffffffffffffffffffffffffffffffffffffffff166111c46116d2565b73ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190613d8b565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112546123c6565b73ffffffffffffffffffffffffffffffffffffffff166112726116d2565b73ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613d8b565b60405180910390fd5b80601460066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113146123c6565b73ffffffffffffffffffffffffffffffffffffffff166113326116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613d8b565b60405180910390fd5b80600f8190555050565b61139a6123c6565b73ffffffffffffffffffffffffffffffffffffffff166113b86116d2565b73ffffffffffffffffffffffffffffffffffffffff161461140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590613d8b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460049054906101000a900460ff1681565b61146d6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661148b6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890613d8b565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115a06123c6565b73ffffffffffffffffffffffffffffffffffffffff166115be6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613d8b565b60405180910390fd5b61161e6000612d8c565b565b6116286123c6565b73ffffffffffffffffffffffffffffffffffffffff166116466116d2565b73ffffffffffffffffffffffffffffffffffffffff161461169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169390613d8b565b60405180910390fd5b8060108190555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461170a90613e46565b80601f016020809104026020016040519081016040528092919081815260200182805461173690613e46565b80156117835780601f1061175857610100808354040283529160200191611783565b820191906000526020600020905b81548152906001019060200180831161176657829003601f168201915b5050505050905090565b600061185061179a6123c6565b8461184b856040518060600160405280602581526020016149a560259139600960006117c46123c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b6123ce565b6001905092915050565b600061186e6118676123c6565b8484612599565b506001905092915050565b6118816123c6565b73ffffffffffffffffffffffffffffffffffffffff1661189f6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec90613d8b565b60405180910390fd5b8060118190555050565b6119076123c6565b73ffffffffffffffffffffffffffffffffffffffff166119256116d2565b73ffffffffffffffffffffffffffffffffffffffff161461197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613d8b565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6119e46123c6565b73ffffffffffffffffffffffffffffffffffffffff16611a026116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f90613d8b565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611b0d5780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60045481565b60135481565b60055481565b600c6020528060005260406000206000915054906101000a900460ff1681565b611b4b6123c6565b73ffffffffffffffffffffffffffffffffffffffff16611b696116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb690613d8b565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611beb929190613e78565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c759190613ee8565b6000604051808303816000865af19150503d8060008114611cb2576040519150601f19603f3d011682016040523d82523d6000602084013e611cb7565b606091505b5050905080611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf290613f4b565b60405180910390fd5b50505050565b611d096123c6565b73ffffffffffffffffffffffffffffffffffffffff16611d276116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613d8b565b60405180910390fd5b81601460026101000a81548160ff02191690831515021790555080601460036101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e6a6123c6565b73ffffffffffffffffffffffffffffffffffffffff16611e886116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613d8b565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611f416123c6565b73ffffffffffffffffffffffffffffffffffffffff16611f5f6116d2565b73ffffffffffffffffffffffffffffffffffffffff1614611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90613d8b565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611fdb90613f91565b60006040518083038185875af1925050503d8060008114612018576040519150601f19603f3d011682016040523d82523d6000602084013e61201d565b606091505b5050905080612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205890613ff2565b60405180910390fd5b50565b601460039054906101000a900460ff1681565b61207f6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661209d6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613d8b565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61213e6123c6565b73ffffffffffffffffffffffffffffffffffffffff1661215c6116d2565b73ffffffffffffffffffffffffffffffffffffffff16146121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613d8b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614084565b60405180910390fd5b61222b81612d8c565b50565b6122366123c6565b73ffffffffffffffffffffffffffffffffffffffff166122546116d2565b73ffffffffffffffffffffffffffffffffffffffff16146122aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a190613d8b565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460059054906101000a900460ff1681565b6000808314156123145760009050612376565b6000828461232291906140d3565b9050828482612331919061415c565b14612371576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612368906141ff565b60405180910390fd5b809150505b92915050565b60006123be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e50565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561243e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243590614291565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a590614323565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161258c9190613883565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906143b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561267a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267190614447565b60405180910390fd5b600082116126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b4906144d9565b60405180910390fd5b601560149054906101000a900460ff16156126e4576126dd848484612eb3565b9050612c79565b601460019054906101000a900460ff166127d957600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127995750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf90614545565b60405180910390fd5b5b6000601254141580156127f95750601460009054906101000a900460ff16155b1561280757612806613086565b5b60006128123061154f565b9050600060115482101590508080156128385750601560149054906101000a900460ff16155b801561288e5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128a65750601460029054906101000a900460ff165b156128b5576128b48261315e565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129595750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129715750601460049054906101000a900460ff165b156129bc57600f548411156129bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b2906145d7565b60405180910390fd5b5b612a45846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612a94878761324c565b612aa857612aa38787876133b7565b612aaa565b845b9050601460059054906101000a900460ff168015612b125750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b7757601054612b3582612b278961154f565b612d2e90919063ffffffff16565b1115612b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6d90614643565b60405180910390fd5b5b612bc981600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c699190613883565b60405180910390a3600193505050505b9392505050565b6000838311158290612cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cbf9190613937565b60405180910390fd5b5060008385612cd79190614663565b9050809150509392505050565b6000612d2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c80565b905092915050565b6000808284612d3d9190614697565b905083811015612d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7990614739565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8e9190613937565b60405180910390fd5b5060008385612ea6919061415c565b9050809150509392505050565b6000612f3e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c809092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130739190613883565b60405180910390a3600190509392505050565b60026012546130959190614697565b43116130a7576130a66063806135dc565b5b60026012546130b69190614697565b431180156130d2575060146012546130ce9190614697565b4311155b156130e3576130e2602d806135dc565b5b60146012546130f29190614697565b4311801561310e5750606460125461310a9190614697565b4311155b1561311f5761311e6005806135dc565b5b606460125461312e9190614697565b43111561315c576131406002806135dc565b6001601460006101000a81548160ff0219169083151502179055505b565b6001601560146101000a81548160ff021916908315150217905550601460039054906101000a900460ff16156131945760115490505b60004790506131a2826135ee565b60006131b78247612ce490919063ffffffff16565b9050600081111561322c57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561322a573d6000803e3d6000fd5b505b50506000601560146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132ef5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132fd57600190506133b1565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061339e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156133ac57600090506133b1565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561343c576134356007546134276004548661230190919063ffffffff16565b61237c90919063ffffffff16565b90506134bb565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134ba576134b76007546134a96005548661230190919063ffffffff16565b61237c90919063ffffffff16565b90505b5b60008111156135bf5761351681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2e90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135b69190613883565b60405180910390a35b6135d28184612ce490919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff81111561360b5761360a614759565b5b6040519080825280602002602001820160405280156136395781602001602082028036833780820191505090505b509050308160008151811061365157613650614788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371c91906147cc565b816001815181106137305761372f614788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061379730601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123ce565b601460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137fb9594939291906148f2565b600060405180830381600087803b15801561381557600080fd5b505af1158015613829573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161385e92919061494c565b60405180910390a15050565b6000819050919050565b61387d8161386a565b82525050565b60006020820190506138986000830184613874565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138d85780820151818401526020810190506138bd565b838111156138e7576000848401525b50505050565b6000601f19601f8301169050919050565b60006139098261389e565b61391381856138a9565b93506139238185602086016138ba565b61392c816138ed565b840191505092915050565b6000602082019050818103600083015261395181846138fe565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061399e61399961399484613959565b613979565b613959565b9050919050565b60006139b082613983565b9050919050565b60006139c2826139a5565b9050919050565b6139d2816139b7565b82525050565b60006020820190506139ed60008301846139c9565b92915050565b60006139fe82613959565b9050919050565b613a0e816139f3565b82525050565b6000602082019050613a296000830184613a05565b92915050565b600080fd5b613a3d816139f3565b8114613a4857600080fd5b50565b600081359050613a5a81613a34565b92915050565b613a698161386a565b8114613a7457600080fd5b50565b600081359050613a8681613a60565b92915050565b60008060408385031215613aa357613aa2613a2f565b5b6000613ab185828601613a4b565b9250506020613ac285828601613a77565b9150509250929050565b60008115159050919050565b613ae181613acc565b82525050565b6000602082019050613afc6000830184613ad8565b92915050565b600080600060608486031215613b1b57613b1a613a2f565b5b6000613b2986828701613a4b565b9350506020613b3a86828701613a4b565b9250506040613b4b86828701613a77565b9150509250925092565b600060ff82169050919050565b613b6b81613b55565b82525050565b6000602082019050613b866000830184613b62565b92915050565b600060208284031215613ba257613ba1613a2f565b5b6000613bb084828501613a4b565b91505092915050565b613bc281613acc565b8114613bcd57600080fd5b50565b600081359050613bdf81613bb9565b92915050565b600060208284031215613bfb57613bfa613a2f565b5b6000613c0984828501613bd0565b91505092915050565b60008060408385031215613c2957613c28613a2f565b5b6000613c3785828601613a77565b9250506020613c4885828601613a77565b9150509250929050565b600060208284031215613c6857613c67613a2f565b5b6000613c7684828501613a77565b91505092915050565b60008060408385031215613c9657613c95613a2f565b5b6000613ca485828601613a4b565b9250506020613cb585828601613bd0565b9150509250929050565b60008060408385031215613cd657613cd5613a2f565b5b6000613ce485828601613bd0565b9250506020613cf585828601613bd0565b9150509250929050565b60008060408385031215613d1657613d15613a2f565b5b6000613d2485828601613a4b565b9250506020613d3585828601613a4b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d756020836138a9565b9150613d8082613d3f565b602082019050919050565b60006020820190508181036000830152613da481613d68565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b6000613de16011836138a9565b9150613dec82613dab565b602082019050919050565b60006020820190508181036000830152613e1081613dd4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e5e57607f821691505b60208210811415613e7257613e71613e17565b5b50919050565b6000604082019050613e8d6000830185613a05565b613e9a6020830184613874565b9392505050565b600081519050919050565b600081905092915050565b6000613ec282613ea1565b613ecc8185613eac565b9350613edc8185602086016138ba565b80840191505092915050565b6000613ef48284613eb7565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613f356014836138a9565b9150613f4082613eff565b602082019050919050565b60006020820190508181036000830152613f6481613f28565b9050919050565b50565b6000613f7b600083613eac565b9150613f8682613f6b565b600082019050919050565b6000613f9c82613f6e565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613fdc6014836138a9565b9150613fe782613fa6565b602082019050919050565b6000602082019050818103600083015261400b81613fcf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061406e6026836138a9565b915061407982614012565b604082019050919050565b6000602082019050818103600083015261409d81614061565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140de8261386a565b91506140e98361386a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614122576141216140a4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141678261386a565b91506141728361386a565b9250826141825761418161412d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141e96021836138a9565b91506141f48261418d565b604082019050919050565b60006020820190508181036000830152614218816141dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061427b6024836138a9565b91506142868261421f565b604082019050919050565b600060208201905081810360008301526142aa8161426e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061430d6022836138a9565b9150614318826142b1565b604082019050919050565b6000602082019050818103600083015261433c81614300565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061439f6025836138a9565b91506143aa82614343565b604082019050919050565b600060208201905081810360008301526143ce81614392565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144316023836138a9565b915061443c826143d5565b604082019050919050565b6000602082019050818103600083015261446081614424565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144c36029836138a9565b91506144ce82614467565b604082019050919050565b600060208201905081810360008301526144f2816144b6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061452f6016836138a9565b915061453a826144f9565b602082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006145c16028836138a9565b91506145cc82614565565b604082019050919050565b600060208201905081810360008301526145f0816145b4565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b600061462d601b836138a9565b9150614638826145f7565b602082019050919050565b6000602082019050818103600083015261465c81614620565b9050919050565b600061466e8261386a565b91506146798361386a565b92508282101561468c5761468b6140a4565b5b828203905092915050565b60006146a28261386a565b91506146ad8361386a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146e2576146e16140a4565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614723601b836138a9565b915061472e826146ed565b602082019050919050565b6000602082019050818103600083015261475281614716565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506147c681613a34565b92915050565b6000602082840312156147e2576147e1613a2f565b5b60006147f0848285016147b7565b91505092915050565b6000819050919050565b600061481e614819614814846147f9565b613979565b61386a565b9050919050565b61482e81614803565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614869816139f3565b82525050565b600061487b8383614860565b60208301905092915050565b6000602082019050919050565b600061489f82614834565b6148a9818561483f565b93506148b483614850565b8060005b838110156148e55781516148cc888261486f565b97506148d783614887565b9250506001810190506148b8565b5085935050505092915050565b600060a0820190506149076000830188613874565b6149146020830187614825565b81810360408301526149268186614894565b90506149356060830185613a05565b6149426080830184613874565b9695505050505050565b60006040820190506149616000830185613874565b81810360208301526149738184614894565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122054647f91e865ea1e8921489e00e365587ba4a41fdc5ef0f197ef782b0a78719d64736f6c634300080a0033

Verified Source Code Partial Match

Compiler: v0.8.10+commit.fc410830 EVM: london Optimization: No
AlienToken.sol 609 lines
// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address _account) external view returns (uint256);
    function transfer(address recipient, 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract AlienToken is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Alien Milady";
    string private _symbol = "ALIEN";
    uint8 private _decimals = 18; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public _buyMarketingFee = 2;
    uint256 public _sellMarketingFee = 2;

    address public Marketing = address(0xC59585ddF9236e67264944Ea1aFC9394a61e84bf);
    
    uint256 feedenominator = 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(1).div(100);     // 1%
    uint256 public _walletMax = _totalSupply.mul(1).div(100);        // 1%

    uint256 public swapThreshold = 500_000 * 10**_decimals;

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp;
    bool public normalizeTrade;

    bool tradingActive;

    bool public swapEnabled = true;
    bool public swapbylimit = false;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        address _owner = address(0xe938F21c80D9D344C8e7ebC989113Db63cb26bFd);

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_owner] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[_owner] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!tradingActive) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active.");
            }

            if (launchedAt != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyMarketingFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellMarketingFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function launch() public onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
        tradingActive = true;
        swapEnabled = true;
    }

    function dynamicTaxSetter() internal {
        if (block.number <= launchedAt + 2) {
            dynamicSetter(99,99);
        }
        if (block.number > launchedAt + 2 && block.number <= launchedAt + 20) {
            dynamicSetter(45,45);
        }
        if (block.number > launchedAt + 20 && block.number <= launchedAt + 100) {
            dynamicSetter(5,5);
        }
        if (block.number > launchedAt + 100) {
            dynamicSetter(2,2);
            normalizeTrade = true;
        }
            
    }

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _buyMarketingFee = _buy;
        _sellMarketingFee = _Sell;
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

       if(amountReceived > 0) payable(Marketing).transfer(amountReceived);

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyOwner {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _buyFee, uint _sellFee) external onlyOwner {    
        _buyMarketingFee = _buyFee;
        _sellMarketingFee = _sellFee;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setMarketingWallet(address _newWallet) external onlyOwner {
        Marketing = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

Read Contract

EnableTxLimit 0x5e42358c → bool
Marketing 0xdb886f23 → address
_buyMarketingFee 0xc5d24189 → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_sellMarketingFee 0xc8607952 → uint256
_walletMax 0x807c2d9c → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
checkWalletLimit 0xf872858a → bool
deadAddress 0x27c8f835 → address
decimals 0x313ce567 → uint8
dexPair 0xf242ab41 → address
dexRouter 0x0758d924 → address
getCirculatingSupply 0x2b112e49 → uint256
isExcludedFromFee 0x5342acb4 → bool
isMarketPair 0x3ecad271 → bool
isTxLimitExempt 0x8b42507f → bool
isWalletLimitExempt 0xc867d60b → bool
launchedAt 0xbf56b371 → uint256
launchedAtTimestamp 0xc6d2577d → uint256
name 0x06fdde03 → string
normalizeTrade 0x111a4651 → bool
owner 0x8da5cb5b → address
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
swapbylimit 0xe9fd3394 → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
zeroAddress 0x0930907b → address

Write Contract 24 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableTxLimit 0xee828db3
bool _status
enableWalletLimit 0x4974d88f
bool _status
excludeFromFee 0xdf8408fe
address _adr
bool _status
excludeTxLimit 0xae85ade6
address _adr
bool _status
excludeWalletLimit 0x651a8987
address _adr
bool _status
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
launch 0x01339c21
No parameters
renounceOwnership 0x715018a6
No parameters
rescueFunds 0xe6b2603b
No parameters
rescueTokens 0xcea9d26f
address _token
address recipient
uint256 _amount
setFee 0x52f7c988
uint256 _buyFee
uint256 _sellFee
setManualPair 0xf71b9bbf
address _pair
setManualRouter 0x59fac517
address _router
setMarketPair 0xc16dd4a4
address _pair
bool _status
setMarketingWallet 0x5d098b38
address _newWallet
setMaxWalletLimit 0x728d41c9
uint256 newLimit
setSwapBackSettings 0xd4e43fb3
bool _enabled
bool _limited
setSwapthreshold 0xadc0d092
uint256 _threshold
setTxLimit 0x5c85974f
uint256 newLimit
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address