Address Contract Partially Verified
Address
0x602E61eF26821c477124D15Afcde32986c1f8a47
Balance
0 ETH
Nonce
1
Code Size
18943 bytes
Creator
0x8baA8042...4c50 at tx 0x315a4644...69698f
Indexed Transactions
0
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