Address Contract Partially Verified
Address
0x26f9111a358385dc46A832CF1a1A021Ee72E58A1
Balance
5.0484 ETH
Nonce
1
Code Size
22337 bytes
Creator
0x897B2fFC...a230 at tx 0x9c303846...4f9fe2
Indexed Transactions
0
Contract Bytecode
22337 bytes
0x6080604052600436106103905760003560e01c806392136913116101dc578063c79c04fd11610102578063e2f45605116100a0578063f11a24d31161006f578063f11a24d314610d71578063f2fde38b14610d9c578063f637434214610dc5578063f8b45b0514610df057610397565b8063e2f4560514610cb3578063e596219514610cde578063e884f26014610d1b578063ef8700e514610d4657610397565b8063d4698016116100dc578063d469801614610be3578063d85ba06314610c0e578063dd62ed3e14610c39578063e1bc339414610c7657610397565b8063c79c04fd14610b52578063c876d0b914610b7b578063d257b34f14610ba657610397565b8063b20414111161017a578063c024666811610149578063c024666814610aaa578063c04a541414610ad3578063c17b5b8c14610afe578063c3f70b5214610b2757610397565b8063b2041411146109ee578063b62496f514610a19578063bbc0c74214610a56578063bff7816914610a8157610397565b806395d89b41116101b657806395d89b41146109205780639a7a23d61461094b578063a457c2d714610974578063a9059cbb146109b157610397565b806392136913146108a3578063924de9b7146108ce57806392aa3773146108f757610397565b806349bd5a5e116102c1578063751039fc1161025f5780638095d5641161022e5780638095d5641461080f5780638a13a44b146108385780638a8c523c146108615780638da5cb5b1461087857610397565b8063751039fc146107655780637571336a1461079057806375f0a874146107b95780637bce5a04146107e457610397565b80636a486a8e1161029b5780636a486a8e146106bb5780636ddd1713146106e657806370a0823114610711578063715018a61461074e57610397565b806349bd5a5e146106285780634a62bb65146106535780634fbee1931461067e57610397565b80631c499ab01161032e57806327c8f8351161030857806327c8f8351461056a578063313ce56714610595578063377ad127146105c057806339509351146105eb57610397565b80631c499ab0146104d95780631f3fed8f1461050257806323b872dd1461052d57610397565b80631694505e1161036a5780631694505e1461042d57806318160ddd1461045857806318a94cf1146104835780631a8145bb146104ae57610397565b80630517d13d1461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190614121565b610e1b565b005b3480156103d157600080fd5b506103da610f2a565b6040516103e791906141e7565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190614267565b610fbc565b60405161042491906142c2565b60405180910390f35b34801561043957600080fd5b50610442610fda565b60405161044f919061433c565b60405180910390f35b34801561046457600080fd5b5061046d610ffe565b60405161047a9190614366565b60405180910390f35b34801561048f57600080fd5b50610498611008565b6040516104a59190614366565b60405180910390f35b3480156104ba57600080fd5b506104c361100e565b6040516104d09190614366565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190614121565b611014565b005b34801561050e57600080fd5b50610517611123565b6040516105249190614366565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190614381565b611129565b60405161056191906142c2565b60405180910390f35b34801561057657600080fd5b5061057f611221565b60405161058c91906143e3565b60405180910390f35b3480156105a157600080fd5b506105aa611227565b6040516105b7919061441a565b60405180910390f35b3480156105cc57600080fd5b506105d5611230565b6040516105e291906143e3565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d9190614267565b611256565b60405161061f91906142c2565b60405180910390f35b34801561063457600080fd5b5061063d611302565b60405161064a91906143e3565b60405180910390f35b34801561065f57600080fd5b50610668611326565b60405161067591906142c2565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190614435565b611339565b6040516106b291906142c2565b60405180910390f35b3480156106c757600080fd5b506106d061138f565b6040516106dd9190614366565b60405180910390f35b3480156106f257600080fd5b506106fb611395565b60405161070891906142c2565b60405180910390f35b34801561071d57600080fd5b5061073860048036038101906107339190614435565b6113a8565b6040516107459190614366565b60405180910390f35b34801561075a57600080fd5b506107636113f0565b005b34801561077157600080fd5b5061077a611478565b60405161078791906142c2565b60405180910390f35b34801561079c57600080fd5b506107b760048036038101906107b2919061448e565b611518565b005b3480156107c557600080fd5b506107ce6115ef565b6040516107db91906143e3565b60405180910390f35b3480156107f057600080fd5b506107f9611615565b6040516108069190614366565b60405180910390f35b34801561081b57600080fd5b50610836600480360381019061083191906144ce565b61161b565b005b34801561084457600080fd5b5061085f600480360381019061085a9190614586565b6116e4565b005b34801561086d57600080fd5b506108766118f3565b005b34801561088457600080fd5b5061088d6119fe565b60405161089a91906143e3565b60405180910390f35b3480156108af57600080fd5b506108b8611a28565b6040516108c59190614366565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f091906145e6565b611a2e565b005b34801561090357600080fd5b5061091e60048036038101906109199190614435565b611ac7565b005b34801561092c57600080fd5b50610935611c03565b60405161094291906141e7565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d919061448e565b611c95565b005b34801561098057600080fd5b5061099b60048036038101906109969190614267565b611dae565b6040516109a891906142c2565b60405180910390f35b3480156109bd57600080fd5b506109d860048036038101906109d39190614267565b611e99565b6040516109e591906142c2565b60405180910390f35b3480156109fa57600080fd5b50610a03611eb7565b604051610a109190614366565b60405180910390f35b348015610a2557600080fd5b50610a406004803603810190610a3b9190614435565b611ebd565b604051610a4d91906142c2565b60405180910390f35b348015610a6257600080fd5b50610a6b611edd565b604051610a7891906142c2565b60405180910390f35b348015610a8d57600080fd5b50610aa86004803603810190610aa39190614435565b611ef0565b005b348015610ab657600080fd5b50610ad16004803603810190610acc919061448e565b61202c565b005b348015610adf57600080fd5b50610ae8612151565b604051610af591906143e3565b60405180910390f35b348015610b0a57600080fd5b50610b256004803603810190610b2091906144ce565b612177565b005b348015610b3357600080fd5b50610b3c612240565b604051610b499190614366565b60405180910390f35b348015610b5e57600080fd5b50610b796004803603810190610b749190614435565b612246565b005b348015610b8757600080fd5b50610b90612382565b604051610b9d91906142c2565b60405180910390f35b348015610bb257600080fd5b50610bcd6004803603810190610bc89190614121565b612395565b604051610bda91906142c2565b60405180910390f35b348015610bef57600080fd5b50610bf86124ea565b604051610c0591906143e3565b60405180910390f35b348015610c1a57600080fd5b50610c23612510565b604051610c309190614366565b60405180910390f35b348015610c4557600080fd5b50610c606004803603810190610c5b9190614613565b612516565b604051610c6d9190614366565b60405180910390f35b348015610c8257600080fd5b50610c9d6004803603810190610c989190614435565b61259d565b604051610caa91906142c2565b60405180910390f35b348015610cbf57600080fd5b50610cc86125bd565b604051610cd59190614366565b60405180910390f35b348015610cea57600080fd5b50610d056004803603810190610d009190614435565b6125c3565b604051610d1291906142c2565b60405180910390f35b348015610d2757600080fd5b50610d306125e3565b604051610d3d91906142c2565b60405180910390f35b348015610d5257600080fd5b50610d5b612683565b604051610d689190614366565b60405180910390f35b348015610d7d57600080fd5b50610d86612689565b604051610d939190614366565b60405180910390f35b348015610da857600080fd5b50610dc36004803603810190610dbe9190614435565b61268f565b005b348015610dd157600080fd5b50610dda612787565b604051610de79190614366565b60405180910390f35b348015610dfc57600080fd5b50610e0561278d565b604051610e129190614366565b60405180910390f35b610e23612793565b73ffffffffffffffffffffffffffffffffffffffff16610e416119fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e9061469f565b60405180910390fd5b670de0b6b3a76400006103e86001610ead610ffe565b610eb791906146ee565b610ec19190614777565b610ecb9190614777565b811015610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f049061481a565b60405180910390fd5b670de0b6b3a764000081610f2191906146ee565b600a8190555050565b606060038054610f3990614869565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6590614869565b8015610fb25780601f10610f8757610100808354040283529160200191610fb2565b820191906000526020600020905b815481529060010190602001808311610f9557829003601f168201915b5050505050905090565b6000610fd0610fc9612793565b848461279b565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60185481565b601a5481565b61101c612793565b73ffffffffffffffffffffffffffffffffffffffff1661103a6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110879061469f565b60405180910390fd5b670de0b6b3a76400006103e860056110a6610ffe565b6110b091906146ee565b6110ba9190614777565b6110c49190614777565b811015611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd9061490d565b60405180910390fd5b670de0b6b3a76400008161111a91906146ee565b600c8190555050565b601c5481565b6000611136848484612966565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611181612793565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f89061499f565b60405180910390fd5b6112158561120d612793565b85840361279b565b60019150509392505050565b61dead81565b60006012905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112f8611263612793565b848460016000611271612793565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112f391906149bf565b61279b565b6001905092915050565b7f000000000000000000000000a0b1b4f76368ac3d3a47cb3f807879a87c1362b281565b600d60009054906101000a900460ff1681565b6000601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60165481565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113f8612793565b73ffffffffffffffffffffffffffffffffffffffff166114166119fe565b73ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114639061469f565b60405180910390fd5b611476600061368d565b565b6000611482612793565b73ffffffffffffffffffffffffffffffffffffffff166114a06119fe565b73ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061469f565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b611520612793565b73ffffffffffffffffffffffffffffffffffffffff1661153e6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b9061469f565b60405180910390fd5b80601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b611623612793565b73ffffffffffffffffffffffffffffffffffffffff166116416119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e9061469f565b60405180910390fd5b8260138190555081601481905550806015819055506015546014546013546116bf91906149bf565b6116c991906149bf565b601281905550600560125411156116df57600080fd5b505050565b6116ec612793565b73ffffffffffffffffffffffffffffffffffffffff1661170a6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117579061469f565b60405180910390fd5b60005b838390508110156118ed57600084848381811061178357611782614a15565b5b90506020020160208101906117989190614435565b90503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156118245750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561187c57507f000000000000000000000000a0b1b4f76368ac3d3a47cb3f807879a87c1362b273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156118d95782601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5080806118e590614a44565b915050611763565b50505050565b6118fb612793565b73ffffffffffffffffffffffffffffffffffffffff166119196119fe565b73ffffffffffffffffffffffffffffffffffffffff161461196f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119669061469f565b60405180910390fd5b600d60019054906101000a900460ff16156119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b690614ad9565b60405180910390fd5b6001600d60016101000a81548160ff021916908315150217905550436010819055506001600d60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b611a36612793565b73ffffffffffffffffffffffffffffffffffffffff16611a546119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061469f565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b611acf612793565b73ffffffffffffffffffffffffffffffffffffffff16611aed6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3a9061469f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f3e0ea4f8339b6050ff814971a9814aa39176c149fcf185975c219f33db2342db60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054611c1290614869565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3e90614869565b8015611c8b5780601f10611c6057610100808354040283529160200191611c8b565b820191906000526020600020905b815481529060010190602001808311611c6e57829003601f168201915b5050505050905090565b611c9d612793565b73ffffffffffffffffffffffffffffffffffffffff16611cbb6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d089061469f565b60405180910390fd5b7f000000000000000000000000a0b1b4f76368ac3d3a47cb3f807879a87c1362b273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790614b6b565b60405180910390fd5b611daa8282613753565b5050565b60008060016000611dbd612793565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190614bfd565b60405180910390fd5b611e8e611e85612793565b8585840361279b565b600191505092915050565b6000611ead611ea6612793565b8484612966565b6001905092915050565b60145481565b601f6020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b611ef8612793565b73ffffffffffffffffffffffffffffffffffffffff16611f166119fe565b73ffffffffffffffffffffffffffffffffffffffff1614611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f639061469f565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612034612793565b73ffffffffffffffffffffffffffffffffffffffff166120526119fe565b73ffffffffffffffffffffffffffffffffffffffff16146120a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209f9061469f565b60405180910390fd5b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161214591906142c2565b60405180910390a25050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61217f612793565b73ffffffffffffffffffffffffffffffffffffffff1661219d6119fe565b73ffffffffffffffffffffffffffffffffffffffff16146121f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ea9061469f565b60405180910390fd5b82601781905550816018819055508060198190555060195460185460175461221b91906149bf565b61222591906149bf565b6016819055506005601654111561223b57600080fd5b505050565b600a5481565b61224e612793565b73ffffffffffffffffffffffffffffffffffffffff1661226c6119fe565b73ffffffffffffffffffffffffffffffffffffffff16146122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b99061469f565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396560405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f60009054906101000a900460ff1681565b600061239f612793565b73ffffffffffffffffffffffffffffffffffffffff166123bd6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a9061469f565b60405180910390fd5b620186a06001612421610ffe565b61242b91906146ee565b6124359190614777565b821015612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e90614c8f565b60405180910390fd5b6103e86005612484610ffe565b61248e91906146ee565b6124989190614777565b8211156124da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d190614d21565b60405180910390fd5b81600b8190555060019050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601e6020528060005260406000206000915054906101000a900460ff1681565b600b5481565b60116020528060005260406000206000915054906101000a900460ff1681565b60006125ed612793565b73ffffffffffffffffffffffffffffffffffffffff1661260b6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614612661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126589061469f565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b601b5481565b60135481565b612697612793565b73ffffffffffffffffffffffffffffffffffffffff166126b56119fe565b73ffffffffffffffffffffffffffffffffffffffff161461270b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127029061469f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561277b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277290614db3565b60405180910390fd5b6127848161368d565b50565b60175481565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561280b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280290614e45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287290614ed7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129599190614366565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cd90614f69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90614ffb565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aca90615067565b60405180910390fd5b6000811415612aed57612ae8838360006137f4565b613688565b600d60009054906101000a900460ff16156131b057612b0a6119fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612b785750612b486119fe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bb15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612beb575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c045750600660149054906101000a900460ff16155b156131af57600d60019054906101000a900460ff16612cfe57601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cbe5750601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf4906150d3565b60405180910390fd5b5b600f60009054906101000a900460ff1615612ec657612d1b6119fe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612da257507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612dfa57507f000000000000000000000000a0b1b4f76368ac3d3a47cb3f807879a87c1362b273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ec55743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e779061518b565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f695750601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561301057600a54811115612fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612faa9061521d565b60405180910390fd5b600c54612fbf836113a8565b82612fca91906149bf565b111561300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300290615289565b60405180910390fd5b6131ae565b601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130b35750601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561310257600a548111156130fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f49061531b565b60405180910390fd5b6131ad565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166131ac57600c5461315f836113a8565b8261316a91906149bf565b11156131ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a290615289565b60405180910390fd5b5b5b5b5b5b60006131bb306113a8565b90506000600b5482101590508080156131e05750600d60029054906101000a900460ff165b80156131f95750600660149054906101000a900460ff16155b801561324f5750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132a55750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132fb5750601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561333f576001600660146101000a81548160ff021916908315150217905550613323613a75565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133f55750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156133ff57600090505b6000811561367857601f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561346257506000601654115b1561352f5761348f606461348160165488613d5c90919063ffffffff16565b613d7290919063ffffffff16565b9050601654601754826134a291906146ee565b6134ac9190614777565b601a60008282546134bd91906149bf565b92505081905550601654601854826134d591906146ee565b6134df9190614777565b601b60008282546134f091906149bf565b925050819055506016546019548261350891906146ee565b6135129190614777565b601c600082825461352391906149bf565b92505081905550613654565b601f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561358a57506000601254115b15613653576135b760646135a960125488613d5c90919063ffffffff16565b613d7290919063ffffffff16565b9050601254601354826135ca91906146ee565b6135d49190614777565b601a60008282546135e591906149bf565b92505081905550601254601454826135fd91906146ee565b6136079190614777565b601b600082825461361891906149bf565b925050819055506012546015548261363091906146ee565b61363a9190614777565b601c600082825461364b91906149bf565b925050819055505b5b6000811115613669576136688730836137f4565b5b8085613675919061533b565b94505b6136838787876137f4565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385b90614f69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156138d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138cb90614ffb565b60405180910390fd5b6138df838383613d88565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395c906153e1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546139f891906149bf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a5c9190614366565b60405180910390a3613a6f848484613d8d565b50505050565b6000613a80306113a8565b90506000601c54601b54601a54613a9791906149bf565b613aa191906149bf565b9050600080831480613ab35750600082145b15613ac057505050613d5a565b6014600b54613acf91906146ee565b831115613ae8576014600b54613ae591906146ee565b92505b6000600283601a5486613afb91906146ee565b613b059190614777565b613b0f9190614777565b90506000613b268286613d9290919063ffffffff16565b90506000479050613b3682613da8565b6000613b4b8247613d9290919063ffffffff16565b90506000613b7687613b68601b5485613d5c90919063ffffffff16565b613d7290919063ffffffff16565b90506000613ba188613b93601c5486613d5c90919063ffffffff16565b613d7290919063ffffffff16565b90506000818385613bb2919061533b565b613bbc919061533b565b90506000601a819055506000601b819055506000601c81905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051613c1c90615432565b60006040518083038185875af1925050503d8060008114613c59576040519150601f19603f3d011682016040523d82523d6000602084013e613c5e565b606091505b505080985050600087118015613c745750600081115b15613cc157613c838782613fe5565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618682601a54604051613cb893929190615447565b60405180910390a15b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613d0790615432565b60006040518083038185875af1925050503d8060008114613d44576040519150601f19603f3d011682016040523d82523d6000602084013e613d49565b606091505b505080985050505050505050505050505b565b60008183613d6a91906146ee565b905092915050565b60008183613d809190614777565b905092915050565b505050565b505050565b60008183613da0919061533b565b905092915050565b6000600267ffffffffffffffff811115613dc557613dc461547e565b5b604051908082528060200260200182016040528015613df35781602001602082028036833780820191505090505b5090503081600081518110613e0b57613e0a614a15565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613eb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ed491906154c2565b81600181518110613ee857613ee7614a15565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f4d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461279b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613faf9594939291906155e8565b600060405180830381600087803b158015613fc957600080fd5b505af1158015613fdd573d6000803e3d6000fd5b505050505050565b614010307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461279b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161409796959493929190615642565b60606040518083038185885af11580156140b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140da91906156b8565b5050505050565b600080fd5b600080fd5b6000819050919050565b6140fe816140eb565b811461410957600080fd5b50565b60008135905061411b816140f5565b92915050565b600060208284031215614137576141366140e1565b5b60006141458482850161410c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561418857808201518184015260208101905061416d565b83811115614197576000848401525b50505050565b6000601f19601f8301169050919050565b60006141b98261414e565b6141c38185614159565b93506141d381856020860161416a565b6141dc8161419d565b840191505092915050565b6000602082019050818103600083015261420181846141ae565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061423482614209565b9050919050565b61424481614229565b811461424f57600080fd5b50565b6000813590506142618161423b565b92915050565b6000806040838503121561427e5761427d6140e1565b5b600061428c85828601614252565b925050602061429d8582860161410c565b9150509250929050565b60008115159050919050565b6142bc816142a7565b82525050565b60006020820190506142d760008301846142b3565b92915050565b6000819050919050565b60006143026142fd6142f884614209565b6142dd565b614209565b9050919050565b6000614314826142e7565b9050919050565b600061432682614309565b9050919050565b6143368161431b565b82525050565b6000602082019050614351600083018461432d565b92915050565b614360816140eb565b82525050565b600060208201905061437b6000830184614357565b92915050565b60008060006060848603121561439a576143996140e1565b5b60006143a886828701614252565b93505060206143b986828701614252565b92505060406143ca8682870161410c565b9150509250925092565b6143dd81614229565b82525050565b60006020820190506143f860008301846143d4565b92915050565b600060ff82169050919050565b614414816143fe565b82525050565b600060208201905061442f600083018461440b565b92915050565b60006020828403121561444b5761444a6140e1565b5b600061445984828501614252565b91505092915050565b61446b816142a7565b811461447657600080fd5b50565b60008135905061448881614462565b92915050565b600080604083850312156144a5576144a46140e1565b5b60006144b385828601614252565b92505060206144c485828601614479565b9150509250929050565b6000806000606084860312156144e7576144e66140e1565b5b60006144f58682870161410c565b93505060206145068682870161410c565b92505060406145178682870161410c565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261454657614545614521565b5b8235905067ffffffffffffffff81111561456357614562614526565b5b60208301915083602082028301111561457f5761457e61452b565b5b9250929050565b60008060006040848603121561459f5761459e6140e1565b5b600084013567ffffffffffffffff8111156145bd576145bc6140e6565b5b6145c986828701614530565b935093505060206145dc86828701614479565b9150509250925092565b6000602082840312156145fc576145fb6140e1565b5b600061460a84828501614479565b91505092915050565b6000806040838503121561462a576146296140e1565b5b600061463885828601614252565b925050602061464985828601614252565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614689602083614159565b915061469482614653565b602082019050919050565b600060208201905081810360008301526146b88161467c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006146f9826140eb565b9150614704836140eb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561473d5761473c6146bf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614782826140eb565b915061478d836140eb565b92508261479d5761479c614748565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000614804602983614159565b915061480f826147a8565b604082019050919050565b60006020820190508181036000830152614833816147f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061488157607f821691505b602082108114156148955761489461483a565b5b50919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006148f7602483614159565b91506149028261489b565b604082019050919050565b60006020820190508181036000830152614926816148ea565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614989602883614159565b91506149948261492d565b604082019050919050565b600060208201905081810360008301526149b88161497c565b9050919050565b60006149ca826140eb565b91506149d5836140eb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a0a57614a096146bf565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614a4f826140eb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614a8257614a816146bf565b5b600182019050919050565b7f546f6b656e206c61756e63686564000000000000000000000000000000000000600082015250565b6000614ac3600e83614159565b9150614ace82614a8d565b602082019050919050565b60006020820190508181036000830152614af281614ab6565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614b55603983614159565b9150614b6082614af9565b604082019050919050565b60006020820190508181036000830152614b8481614b48565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614be7602583614159565b9150614bf282614b8b565b604082019050919050565b60006020820190508181036000830152614c1681614bda565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614c79603583614159565b9150614c8482614c1d565b604082019050919050565b60006020820190508181036000830152614ca881614c6c565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614d0b603483614159565b9150614d1682614caf565b604082019050919050565b60006020820190508181036000830152614d3a81614cfe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d9d602683614159565b9150614da882614d41565b604082019050919050565b60006020820190508181036000830152614dcc81614d90565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614e2f602483614159565b9150614e3a82614dd3565b604082019050919050565b60006020820190508181036000830152614e5e81614e22565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ec1602283614159565b9150614ecc82614e65565b604082019050919050565b60006020820190508181036000830152614ef081614eb4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f53602583614159565b9150614f5e82614ef7565b604082019050919050565b60006020820190508181036000830152614f8281614f46565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614fe5602383614159565b9150614ff082614f89565b604082019050919050565b6000602082019050818103600083015261501481614fd8565b9050919050565b7f536e6970657220626c6f636b6564000000000000000000000000000000000000600082015250565b6000615051600e83614159565b915061505c8261501b565b602082019050919050565b6000602082019050818103600083015261508081615044565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006150bd601683614159565b91506150c882615087565b602082019050919050565b600060208201905081810360008301526150ec816150b0565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000615175604983614159565b9150615180826150f3565b606082019050919050565b600060208201905081810360008301526151a481615168565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b6000615207602f83614159565b9150615212826151ab565b604082019050919050565b60006020820190508181036000830152615236816151fa565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000615273601383614159565b915061527e8261523d565b602082019050919050565b600060208201905081810360008301526152a281615266565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e2e00000000000000000000000000000000602082015250565b6000615305603083614159565b9150615310826152a9565b604082019050919050565b60006020820190508181036000830152615334816152f8565b9050919050565b6000615346826140eb565b9150615351836140eb565b925082821015615364576153636146bf565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006153cb602683614159565b91506153d68261536f565b604082019050919050565b600060208201905081810360008301526153fa816153be565b9050919050565b600081905092915050565b50565b600061541c600083615401565b91506154278261540c565b600082019050919050565b600061543d8261540f565b9150819050919050565b600060608201905061545c6000830186614357565b6154696020830185614357565b6154766040830184614357565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506154bc8161423b565b92915050565b6000602082840312156154d8576154d76140e1565b5b60006154e6848285016154ad565b91505092915050565b6000819050919050565b600061551461550f61550a846154ef565b6142dd565b6140eb565b9050919050565b615524816154f9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61555f81614229565b82525050565b60006155718383615556565b60208301905092915050565b6000602082019050919050565b60006155958261552a565b61559f8185615535565b93506155aa83615546565b8060005b838110156155db5781516155c28882615565565b97506155cd8361557d565b9250506001810190506155ae565b5085935050505092915050565b600060a0820190506155fd6000830188614357565b61560a602083018761551b565b818103604083015261561c818661558a565b905061562b60608301856143d4565b6156386080830184614357565b9695505050505050565b600060c08201905061565760008301896143d4565b6156646020830188614357565b615671604083018761551b565b61567e606083018661551b565b61568b60808301856143d4565b61569860a0830184614357565b979650505050505050565b6000815190506156b2816140f5565b92915050565b6000806000606084860312156156d1576156d06140e1565b5b60006156df868287016156a3565b93505060206156f0868287016156a3565b9250506040615701868287016156a3565b915050925092509256fea264697066735822122088c5c8d04c5df770be06a9bbe02141879cbad4ede10ec9290882e107c997353464736f6c634300080a0033
Verified Source Code Partial Match
Compiler: v0.8.10+commit.fc410830
EVM: london
Optimization: No
zook.sol 1041 lines
// SPDX-License-Identifier: MIT
// Zook Protocol links:
// Twitter - https://x.com/zookfi
// Telegram - https://telegram.me/zookfi
// Website - https://www.zook.fi/
// Discord - https://discord.gg/zookfi
// Medium - https://medium.com/@zookfi
pragma solidity =0.8.10 >=0.8.10 >=0.8.0 <0.9.0;
pragma experimental ABIEncoderV2;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
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);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB)
external
view
returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(address tokenA, address tokenB)
external
returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Mint(address indexed sender, uint256 amount0, uint256 amount1);
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
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 (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function mint(address to) external returns (uint256 liquidity);
function burn(address to)
external
returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract zook is ERC20, Ownable {
using SafeMath for uint256;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
address public constant deadAddress = address(0xdead);
address public uniV2router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
bool private swapping;
address public developmentWallet;
address public liquidityWallet;
address public marketingWallet;
uint256 public maxTransaction;
uint256 public swapTokensAtAmount;
uint256 public maxWallet;
bool public limitsInEffect = true;
bool public tradingActive = false;
bool public swapEnabled = false;
// Anti-bot and anti-whale mappings and variables
mapping(address => uint256) private _holderLastTransferTimestamp;
bool public transferDelayEnabled = true;
uint256 private launchBlock;
mapping(address => bool) public blocked;
uint256 public buyTotalFees;
uint256 public buyLiquidityFee;
uint256 public buyDevelopmentFee;
uint256 public buyMarketingFee;
uint256 public sellTotalFees;
uint256 public sellLiquidityFee;
uint256 public sellDevelopmentFee;
uint256 public sellMarketingFee;
uint256 public tokensForLiquidity;
uint256 public tokensForDevelopment;
uint256 public tokensForMarketing;
mapping(address => bool) private _isExcludedFromFees;
mapping(address => bool) public _isExcludedmaxTransaction;
mapping(address => bool) public automatedMarketMakerPairs;
event UpdateUniswapV2Router(
address indexed newAddress,
address indexed oldAddress
);
event ExcludeFromFees(address indexed account, bool isExcluded);
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
event developmentWalletUpdated(
address indexed newWallet,
address indexed oldWallet
);
event liquidityWalletUpdated(
address indexed newWallet,
address indexed oldWallet
);
event marketingWalletUpdated(
address indexed newWallet,
address indexed oldWallet
);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiquidity
);
constructor() ERC20("ZOOK PROTOCOL", "ZOOK") {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(uniV2router);
excludeFromMaxTransaction(address(_uniswapV2Router), true);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
excludeFromMaxTransaction(address(uniswapV2Pair), true);
_setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
// launch buy fees
uint256 _buyLiquidityFee = 10;
uint256 _buyDevelopmentFee = 10;
uint256 _buyMarketingFee = 10;
// launch sell fees
uint256 _sellLiquidityFee = 10;
uint256 _sellDevelopmentFee = 40;
uint256 _sellMarketingFee = 30;
uint256 totalSupply = 100_000_000 * 1e18;
maxTransaction = 1000_000 * 1e18; // 1% max transaction at launch
maxWallet = 1000_000 * 1e18; // 1% max wallet at launch
swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet
buyLiquidityFee = _buyLiquidityFee;
buyDevelopmentFee = _buyDevelopmentFee;
buyMarketingFee = _buyMarketingFee;
buyTotalFees = buyLiquidityFee + buyDevelopmentFee + buyMarketingFee ;
sellLiquidityFee = _sellLiquidityFee;
sellDevelopmentFee = _sellDevelopmentFee;
sellMarketingFee = _sellMarketingFee;
sellTotalFees = sellLiquidityFee + sellDevelopmentFee + sellMarketingFee ;
developmentWallet = address(0x4860da3d48EF5c82c269eE185Dc27Aa9DAfDC1d9);
liquidityWallet = address(0x897B2fFCeE9a9611BF465866fD293d9dD931a230);
marketingWallet = address(0x2Cec118b9749a659b851cecbe1b5a8c0C417773f);
// exclude from paying fees or having max transaction amount
excludeFromFees(owner(), true);
excludeFromFees(address(this), true);
excludeFromFees(address(0xdead), true);
excludeFromMaxTransaction(owner(), true);
excludeFromMaxTransaction(address(this), true);
excludeFromMaxTransaction(address(0xdead), true);
_mint(msg.sender, totalSupply);
}
receive() external payable {}
function enableTrading() external onlyOwner {
require(!tradingActive, "Token launched");
tradingActive = true;
launchBlock = block.number;
swapEnabled = true;
}
// remove limits after token is stable
function removeLimits() external onlyOwner returns (bool) {
limitsInEffect = false;
return true;
}
// disable Transfer delay - cannot be reenabled
function disableTransferDelay() external onlyOwner returns (bool) {
transferDelayEnabled = false;
return true;
}
// change the minimum amount of tokens to sell from fees
function updateSwapTokensAtAmount(uint256 newAmount)
external
onlyOwner
returns (bool)
{
require(
newAmount >= (totalSupply() * 1) / 100000,
"Swap amount cannot be lower than 0.001% total supply."
);
require(
newAmount <= (totalSupply() * 5) / 1000,
"Swap amount cannot be higher than 0.5% total supply."
);
swapTokensAtAmount = newAmount;
return true;
}
function updateMaxTransaction(uint256 newNum) external onlyOwner {
require(
newNum >= ((totalSupply() * 1) / 1000) / 1e18,
"Cannot set maxTransaction lower than 0.1%"
);
maxTransaction = newNum * (10**18);
}
function updateMaxWallet(uint256 newNum) external onlyOwner {
require(
newNum >= ((totalSupply() * 5) / 1000) / 1e18,
"Cannot set maxWallet lower than 0.5%"
);
maxWallet = newNum * (10**18);
}
function excludeFromMaxTransaction(address updAds, bool isEx)
public
onlyOwner
{
_isExcludedmaxTransaction[updAds] = isEx;
}
// only use to disable contract sales if absolutely necessary (emergency use only)
function updateSwapEnabled(bool enabled) external onlyOwner {
swapEnabled = enabled;
}
function updateBuyFees(
uint256 _liquidityFee,
uint256 _developmentFee,
uint256 _marketingFee
) external onlyOwner {
buyLiquidityFee = _liquidityFee;
buyDevelopmentFee = _developmentFee;
buyMarketingFee = _marketingFee;
buyTotalFees = buyLiquidityFee + buyDevelopmentFee + buyMarketingFee ;
require(buyTotalFees <= 5);
}
function updateSellFees(
uint256 _liquidityFee,
uint256 _developmentFee,
uint256 _marketingFee
) external onlyOwner {
sellLiquidityFee = _liquidityFee;
sellDevelopmentFee = _developmentFee;
sellMarketingFee = _marketingFee;
sellTotalFees = sellLiquidityFee + sellDevelopmentFee + sellMarketingFee ;
require(sellTotalFees <= 5);
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
emit ExcludeFromFees(account, excluded);
}
function setAutomatedMarketMakerPair(address pair, bool value)
public
onlyOwner
{
require(
pair != uniswapV2Pair,
"The pair cannot be removed from automatedMarketMakerPairs"
);
_setAutomatedMarketMakerPair(pair, value);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
automatedMarketMakerPairs[pair] = value;
emit SetAutomatedMarketMakerPair(pair, value);
}
function updatedevelopmentWallet(address newWallet) external onlyOwner {
emit developmentWalletUpdated(newWallet, developmentWallet);
developmentWallet = newWallet;
}
function updatemarketingWallet (address newWallet) external onlyOwner{
emit marketingWalletUpdated(newWallet,marketingWallet);
marketingWallet = newWallet;
}
function updateliquidityWallet(address newliquidityWallet) external onlyOwner {
emit liquidityWalletUpdated(newliquidityWallet, liquidityWallet);
liquidityWallet = newliquidityWallet;
}
function isExcludedFromFees(address account) public view returns (bool) {
return _isExcludedFromFees[account];
}
function _transfer(
address from,
address to,
uint256 amount
) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(!blocked[from], "Sniper blocked");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
if (limitsInEffect) {
if (
from != owner() &&
to != owner() &&
to != address(0) &&
to != address(0xdead) &&
!swapping
) {
if (!tradingActive) {
require(
_isExcludedFromFees[from] || _isExcludedFromFees[to],
"Trading is not active."
);
}
// at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
if (transferDelayEnabled) {
if (
to != owner() &&
to != address(uniswapV2Router) &&
to != address(uniswapV2Pair)
) {
require(
_holderLastTransferTimestamp[tx.origin] <
block.number,
"_transfer:: Transfer Delay enabled. Only one purchase per block allowed."
);
_holderLastTransferTimestamp[tx.origin] = block.number;
}
}
//when buy
if (
automatedMarketMakerPairs[from] &&
!_isExcludedmaxTransaction[to]
) {
require(
amount <= maxTransaction,
"Buy transfer amount exceeds the maxTransaction."
);
require(
amount + balanceOf(to) <= maxWallet,
"Max wallet exceeded"
);
}
//when sell
else if (
automatedMarketMakerPairs[to] &&
!_isExcludedmaxTransaction[from]
) {
require(
amount <= maxTransaction,
"Sell transfer amount exceeds the maxTransaction."
);
} else if (!_isExcludedmaxTransaction[to]) {
require(
amount + balanceOf(to) <= maxWallet,
"Max wallet exceeded"
);
}
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
if (
canSwap &&
swapEnabled &&
!swapping &&
!automatedMarketMakerPairs[from] &&
!_isExcludedFromFees[from] &&
!_isExcludedFromFees[to]
) {
swapping = true;
swapBack();
swapping = false;
}
bool takeFee = !swapping;
// if any account belongs to _isExcludedFromFee account then remove the fee
if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
takeFee = false;
}
uint256 fees = 0;
// only take fees on buys/sells, do not take on wallet transfers
if (takeFee) {
// on sell
if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
fees = amount.mul(sellTotalFees).div(100);
tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
tokensForDevelopment += (fees * sellDevelopmentFee) / sellTotalFees;
tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
}
// on buy
else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
fees = amount.mul(buyTotalFees).div(100);
tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
tokensForDevelopment += (fees * buyDevelopmentFee) / buyTotalFees;
tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
}
if (fees > 0) {
super._transfer(from, address(this), fees);
}
amount -= fees;
}
super._transfer(from, to, amount);
}
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] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
liquidityWallet,
block.timestamp
);
}
function updateBlockList(address[] calldata blockAddressess, bool shouldBlock) external onlyOwner {
for(uint256 i = 0;i<blockAddressess.length;i++){
address blockAddress = blockAddressess[i];
if(blockAddress != address(this) &&
blockAddress != uniV2router &&
blockAddress != address(uniswapV2Pair))
blocked[blockAddress] = shouldBlock;
}
}
function swapBack() private {
uint256 contractBalance = balanceOf(address(this));
uint256 totalTokensToSwap = tokensForLiquidity +
tokensForDevelopment +
tokensForMarketing;
bool success;
if (contractBalance == 0 || totalTokensToSwap == 0) {
return;
}
if (contractBalance > swapTokensAtAmount * 20) {
contractBalance = swapTokensAtAmount * 20;
}
// Halve the amount of liquidity tokens
uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;
uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
uint256 initialETHBalance = address(this).balance;
swapTokensForEth(amountToSwapForETH);
uint256 ethBalance = address(this).balance.sub(initialETHBalance);
uint256 ethForDevelopment = ethBalance.mul(tokensForDevelopment).div(totalTokensToSwap);
uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
uint256 ethForLiquidity = ethBalance - ethForDevelopment - ethForMarketing;
tokensForLiquidity = 0;
tokensForDevelopment = 0;
tokensForMarketing = 0;
(success, ) = address(developmentWallet).call{value: ethForDevelopment}("");
if (liquidityTokens > 0 && ethForLiquidity > 0) {
addLiquidity(liquidityTokens, ethForLiquidity);
emit SwapAndLiquify(
amountToSwapForETH,
ethForLiquidity,
tokensForLiquidity
);
}
(success, ) = address(marketingWallet).call{value: ethForMarketing}("");
}
}
Read Contract
_isExcludedmaxTransaction 0xe1bc3394 → bool
allowance 0xdd62ed3e → uint256
automatedMarketMakerPairs 0xb62496f5 → bool
balanceOf 0x70a08231 → uint256
blocked 0xe5962195 → bool
buyDevelopmentFee 0xb2041411 → uint256
buyLiquidityFee 0xf11a24d3 → uint256
buyMarketingFee 0x7bce5a04 → uint256
buyTotalFees 0xd85ba063 → uint256
deadAddress 0x27c8f835 → address
decimals 0x313ce567 → uint8
developmentWallet 0xc04a5414 → address
isExcludedFromFees 0x4fbee193 → bool
limitsInEffect 0x4a62bb65 → bool
liquidityWallet 0xd4698016 → address
marketingWallet 0x75f0a874 → address
maxTransaction 0xc3f70b52 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellDevelopmentFee 0x18a94cf1 → uint256
sellLiquidityFee 0xf6374342 → uint256
sellMarketingFee 0x92136913 → uint256
sellTotalFees 0x6a486a8e → uint256
swapEnabled 0x6ddd1713 → bool
swapTokensAtAmount 0xe2f45605 → uint256
symbol 0x95d89b41 → string
tokensForDevelopment 0xef8700e5 → uint256
tokensForLiquidity 0x1a8145bb → uint256
tokensForMarketing 0x1f3fed8f → uint256
totalSupply 0x18160ddd → uint256
tradingActive 0xbbc0c742 → bool
transferDelayEnabled 0xc876d0b9 → bool
uniV2router 0x377ad127 → address
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address
Write Contract 23 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
disableTransferDelay 0xe884f260
No parameters
returns: bool
enableTrading 0x8a8c523c
No parameters
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxTransaction 0x7571336a
address updAds
bool isEx
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
removeLimits 0x751039fc
No parameters
returns: bool
renounceOwnership 0x715018a6
No parameters
setAutomatedMarketMakerPair 0x9a7a23d6
address pair
bool value
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateBlockList 0x8a13a44b
address[] blockAddressess
bool shouldBlock
updateBuyFees 0x8095d564
uint256 _liquidityFee
uint256 _developmentFee
uint256 _marketingFee
updateMaxTransaction 0x0517d13d
uint256 newNum
updateMaxWallet 0x1c499ab0
uint256 newNum
updateSellFees 0xc17b5b8c
uint256 _liquidityFee
uint256 _developmentFee
uint256 _marketingFee
updateSwapEnabled 0x924de9b7
bool enabled
updateSwapTokensAtAmount 0xd257b34f
uint256 newAmount
returns: bool
updatedevelopmentWallet 0xc79c04fd
address newWallet
updateliquidityWallet 0x92aa3773
address newliquidityWallet
updatemarketingWallet 0xbff78169
address newWallet
Token Balances (1)
View Transfers →Recent Transactions
No transactions found for this address