Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xD591B0Bc0d937b9dF9b6EB4e62e908706300Dfc5
Balance 0 ETH
Nonce 1
Code Size 17573 bytes
Indexed Transactions 0 (1 on-chain, 0% indexed)
External Etherscan · Sourcify

Contract Bytecode

17573 bytes
0x6080604052600436106103035760003560e01c806375f0a87411610190578063c17b5b8c116100dc578063d726b22111610095578063f887ea401161006f578063f887ea4014610b75578063f88de0c314610ba0578063f8ae277d14610bb7578063ffb54a9914610be05761030a565b8063d726b22114610ae4578063dd62ed3e14610b0f578063f2fde38b14610b4c5761030a565b8063c17b5b8c146109d6578063c45a0155146109ff578063c821fcb814610a2a578063cd73ab0214610a67578063d073a01f14610a90578063d120c8cb14610abb5761030a565b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610908578063af06a3f614610945578063bf56b3711461096e578063bf8e28b9146109995761030a565b806395d89b4114610889578063a3a2e89e146108b4578063a8aa1b31146108dd5761030a565b806375f0a8741461078b5780638095d564146107b657806388c5440f146107df578063893d20e8146108085780638da5cb5b146108335780638ea5220f1461085e5761030a565b8063346cc7be1161024f578063571ac8b01161020857806366eb3785116101e257806366eb3785146106f557806370a082311461070c57806370db69d614610749578063715018a6146107745761030a565b8063571ac8b0146106645780635d098b38146106a1578063665a11ca146106ca5761030a565b8063346cc7be1461055657806334bfe0df1461057f5780633dab5269146105a85780633f4218e0146105d1578063417fd2d61461060e5780634a74bb02146106395761030a565b80630b006d60116102bc5780631f53ac02116102965780631f53ac021461049a57806323b872dd146104c35780632b112e4914610500578063313ce5671461052b5761030a565b80630b006d601461041d57806318160ddd146104465780631d5cd545146104715761030a565b8063018770201461030f57806302affaf5146103385780630445b6671461036157806306fdde031461038c578063095ea7b3146103b75780630a37ac95146103f45761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610336600480360381019061033191906132c0565b610c0b565b005b34801561034457600080fd5b5061035f600480360381019061035a9190613325565b610c57565b005b34801561036d57600080fd5b50610376610cba565b604051610383919061337e565b60405180910390f35b34801561039857600080fd5b506103a1610cc0565b6040516103ae9190613432565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190613480565b610cfd565b6040516103eb91906134cf565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190613325565b610def565b005b34801561042957600080fd5b50610444600480360381019061043f91906134ea565b610e52565b005b34801561045257600080fd5b5061045b610eb5565b604051610468919061337e565b60405180910390f35b34801561047d57600080fd5b50610498600480360381019061049391906134ea565b610ebf565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190613555565b610f22565b005b3480156104cf57600080fd5b506104ea60048036038101906104e59190613582565b610f6e565b6040516104f791906134cf565b60405180910390f35b34801561050c57600080fd5b50610515611130565b604051610522919061337e565b60405180910390f35b34801561053757600080fd5b506105406111a4565b60405161054d91906135f1565b60405180910390f35b34801561056257600080fd5b5061057d600480360381019061057891906132c0565b6111ad565b005b34801561058b57600080fd5b506105a660048036038101906105a191906136c7565b6112de565b005b3480156105b457600080fd5b506105cf60048036038101906105ca9190613748565b6113cd565b005b3480156105dd57600080fd5b506105f860048036038101906105f391906132c0565b6113fa565b60405161060591906134cf565b60405180910390f35b34801561061a57600080fd5b5061062361141a565b60405161063091906134cf565b60405180910390f35b34801561064557600080fd5b5061064e61142d565b60405161065b91906134cf565b60405180910390f35b34801561067057600080fd5b5061068b600480360381019061068691906132c0565b611440565b60405161069891906134cf565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c39190613555565b611473565b005b3480156106d657600080fd5b506106df6114bf565b6040516106ec9190613797565b60405180910390f35b34801561070157600080fd5b5061070a6114e5565b005b34801561071857600080fd5b50610733600480360381019061072e91906132c0565b6114f7565b604051610740919061337e565b60405180910390f35b34801561075557600080fd5b5061075e611540565b60405161076b919061337e565b60405180910390f35b34801561078057600080fd5b50610789611546565b005b34801561079757600080fd5b506107a061155a565b6040516107ad9190613797565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d891906137b2565b611580565b005b3480156107eb57600080fd5b5061080660048036038101906108019190613805565b6115fd565b005b34801561081457600080fd5b5061081d6116d2565b60405161082a9190613797565b60405180910390f35b34801561083f57600080fd5b506108486116e1565b6040516108559190613797565b60405180910390f35b34801561086a57600080fd5b5061087361170a565b6040516108809190613797565b60405180910390f35b34801561089557600080fd5b5061089e611730565b6040516108ab9190613432565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190613325565b61176d565b005b3480156108e957600080fd5b506108f26117d0565b6040516108ff9190613797565b60405180910390f35b34801561091457600080fd5b5061092f600480360381019061092a9190613480565b6117f6565b60405161093c91906134cf565b60405180910390f35b34801561095157600080fd5b5061096c60048036038101906109679190613865565b61180b565b005b34801561097a57600080fd5b50610983611830565b604051610990919061337e565b60405180910390f35b3480156109a557600080fd5b506109c060048036038101906109bb91906132c0565b611836565b6040516109cd91906134cf565b60405180910390f35b3480156109e257600080fd5b506109fd60048036038101906109f891906137b2565b611856565b005b348015610a0b57600080fd5b50610a146118d3565b604051610a219190613797565b60405180910390f35b348015610a3657600080fd5b50610a516004803603810190610a4c91906132c0565b6118f9565b604051610a5e91906134cf565b60405180910390f35b348015610a7357600080fd5b50610a8e6004803603810190610a8991906134ea565b611919565b005b348015610a9c57600080fd5b50610aa561197c565b604051610ab2919061337e565b60405180910390f35b348015610ac757600080fd5b50610ae26004803603810190610add91906134ea565b611986565b005b348015610af057600080fd5b50610af9611a03565b604051610b06919061337e565b60405180910390f35b348015610b1b57600080fd5b50610b366004803603810190610b319190613892565b611a0d565b604051610b43919061337e565b60405180910390f35b348015610b5857600080fd5b50610b736004803603810190610b6e91906132c0565b611a94565b005b348015610b8157600080fd5b50610b8a611b17565b604051610b979190613931565b60405180910390f35b348015610bac57600080fd5b50610bb5611b3d565b005b348015610bc357600080fd5b50610bde6004803603810190610bd99190613865565b611bc0565b005b348015610bec57600080fd5b50610bf5611be5565b604051610c0291906134cf565b60405180910390f35b610c13611bf8565b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c5f611bf8565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60055481565b60606040518060400160405280600781526020017f55584f5320414900000000000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ddd919061337e565b60405180910390a36001905092915050565b610df7611bf8565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e5a611bf8565b6032600254610e6991906139aa565b811015610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290613a27565b60405180910390fd5b8060038190555050565b6000600254905090565b610ec7611bf8565b60c8600254610ed691906139aa565b811015610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f90613a93565b60405180910390fd5b8060068190555050565b610f2a611bf8565b80602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461111c5781600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109b9190613ab3565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611127848484611c76565b90509392505050565b600061115d600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114f7565b611188600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114f7565b6002546111959190613ab3565b61119f9190613ab3565b905090565b60006009905090565b6111b5611bf8565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111f59190613797565b602060405180830381865afa158015611212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112369190613afc565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611295929190613b29565b6020604051808303816000875af11580156112b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d89190613b67565b50505050565b6112e6611bf8565b60005b848490508110156113c6573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86868481811061132357611322613b94565b5b905060200201602081019061133891906132c0565b85858581811061134b5761134a613b94565b5b905060200201356040518363ffffffff1660e01b815260040161136f929190613b29565b6020604051808303816000875af115801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b29190613b67565b5080806113be90613bc3565b9150506112e9565b5050505050565b6113d5611bf8565b81602060156101000a81548160ff021916908315150217905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900460ff1681565b602060159054906101000a900460ff1681565b600061146c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610cfd565b9050919050565b61147b611bf8565b80601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114ed611bf8565b6114f56125fc565b565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b61154e611bf8565b61155860006128c5565b565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611588611bf8565b6103e88183856115989190613c0b565b6115a29190613c0b565b11156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613cad565b60405180910390fd5b826014819055508160168190555080601881905550505050565b611605611bf8565b60005b838390508110156116cc573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85858481811061164257611641613b94565b5b905060200201602081019061165791906132c0565b846040518363ffffffff1660e01b8152600401611675929190613b29565b6020604051808303816000875af1158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b89190613b67565b5080806116c490613bc3565b915050611608565b50505050565b60006116dc6116e1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600481526020017f55584f5300000000000000000000000000000000000000000000000000000000815250905090565b611775611bf8565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611803338484611c76565b905092915050565b611813611bf8565b80602060166101000a81548160ff02191690831515021790555050565b60125481565b600c6020528060005260406000206000915054906101000a900460ff1681565b61185e611bf8565b6103e881838561186e9190613c0b565b6118789190613c0b565b11156118b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b090613cad565b60405180910390fd5b826015819055508160178190555080601981905550505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b611921611bf8565b606460025461193091906139aa565b811015611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990613d19565b60405180910390fd5b8060048190555050565b6000601b54905090565b61198e611bf8565b6000601254146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca90613d85565b60405180910390fd5b80436119df9190613c0b565b6012819055506001602060166101000a81548160ff02191690831515021790555050565b6000601a54905090565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9c611bf8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0290613e17565b60405180910390fd5b611b14816128c5565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b45611bf8565b60004790506000811115611bbd57601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bbb573d6000803e3d6000fd5b505b50565b611bc8611bf8565b80600760006101000a81548160ff02191690831515021790555050565b602060169054906101000a900460ff1681565b611c00612989565b73ffffffffffffffffffffffffffffffffffffffff16611c1e6116e1565b73ffffffffffffffffffffffffffffffffffffffff1614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b90613e83565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90613f15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c90613fa7565b60405180910390fd5b60008211611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f90614039565b60405180910390fd5b600454821080611df15750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906140a5565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f38576000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506003548382611ed89190613c0b565b1080611f2d5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f3657600080fd5b505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fa15750600760009054906101000a900460ff165b1561204057600654821115806120005750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61203f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203690614111565b60405180910390fd5b5b6120486116e1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120b657506120866116e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561215f57602060169054906101000a900460ff168061211f5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61215e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121559061417d565b60405180910390fd5b5b602060149054906101000a900460ff16156121865761217f848484612991565b90506125f5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122325750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561224957612242848484612991565b90506125f5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156122b45750602060149054906101000a900460ff16155b80156122cc5750602060159054906101000a900460ff165b80156123195750600554600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612327576123266125fc565b5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612385575060125443105b156123b057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692505b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fb9190613ab3565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124e45750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6124ee57826124fa565b6124f9858585612b1f565b5b905080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125479190613c0b565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125e7919061337e565b60405180910390a360019150505b9392505050565b6001602060146101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600f60026003811061267257612671613b94565b5b0154600f60016003811061268957612688613b94565b5b0154600f6000600381106126a05761269f613b94565b5b01546126ac9190613c0b565b6126b69190613c0b565b90506000600f6000600381106126cf576126ce613b94565b5b015490506000600f6001600381106126ea576126e9613b94565b5b015490506000600f60026003811061270557612704613b94565b5b01549050600060028361271891906139aa565b9050600081876127289190613ab3565b905061273381612ec3565b60004790506000878783612747919061419d565b61275191906139aa565b905060006002898885612764919061419d565b61276e91906139aa565b61277891906139aa565b90506000898785612789919061419d565b61279391906139aa565b9050600084111561280857601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612806573d6000803e3d6000fd5b505b600086111561281c5761281b86836130e4565b5b600081111561288f57602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561288d573d6000803e3d6000fd5b505b600f600061289d9190613243565b50505050505050505050506000602060146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129de9190613ab3565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6c9190613c0b565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b0c919061337e565b60405180910390a3600190509392505050565b60008061271060145484612b33919061419d565b612b3d91906139aa565b9050600061271060155485612b52919061419d565b612b5c91906139aa565b9050600061271060165486612b71919061419d565b612b7b91906139aa565b9050600061271060175487612b90919061419d565b612b9a91906139aa565b9050600061271060185488612baf919061419d565b612bb991906139aa565b9050600061271060195489612bce919061419d565b612bd891906139aa565b90506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff16148015612c875750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b8015612cdd5750600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d0757828588612cef9190613c0b565b612cf99190613c0b565b9050612d068786856131b7565b5b602060149054906101000a900460ff16158015612d725750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614155b8015612d8a5750602060169054906101000a900460ff165b15612db457818487612d9c9190613c0b565b612da69190613c0b565b9050612db38685846131b7565b5b80600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dff9190613c0b565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e9f919061337e565b60405180910390a38089612eb39190613ab3565b9750505050505050509392505050565b6000600267ffffffffffffffff811115612ee057612edf6141f7565b5b604051908082528060200260200182016040528015612f0e5781602001602082028036833780820191505090505b5090503081600081518110612f2657612f25613b94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff1919061423b565b8160018151811061300557613004613b94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130493083610cfd565b50601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130ae959493929190614361565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b505050505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161316d969594939291906143bb565b60606040518083038185885af115801561318b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131b0919061441c565b5050505050565b82600f6000600381106131cd576131cc613b94565b5b0160008282546131dd9190613c0b565b9250508190555081600f6001600381106131fa576131f9613b94565b5b01600082825461320a9190613c0b565b9250508190555080600f60026003811061322757613226613b94565b5b0160008282546132379190613c0b565b92505081905550505050565b50600081556001016000815560010160009055565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061328d82613262565b9050919050565b61329d81613282565b81146132a857600080fd5b50565b6000813590506132ba81613294565b92915050565b6000602082840312156132d6576132d5613258565b5b60006132e4848285016132ab565b91505092915050565b60008115159050919050565b613302816132ed565b811461330d57600080fd5b50565b60008135905061331f816132f9565b92915050565b6000806040838503121561333c5761333b613258565b5b600061334a858286016132ab565b925050602061335b85828601613310565b9150509250929050565b6000819050919050565b61337881613365565b82525050565b6000602082019050613393600083018461336f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d35780820151818401526020810190506133b8565b838111156133e2576000848401525b50505050565b6000601f19601f8301169050919050565b600061340482613399565b61340e81856133a4565b935061341e8185602086016133b5565b613427816133e8565b840191505092915050565b6000602082019050818103600083015261344c81846133f9565b905092915050565b61345d81613365565b811461346857600080fd5b50565b60008135905061347a81613454565b92915050565b6000806040838503121561349757613496613258565b5b60006134a5858286016132ab565b92505060206134b68582860161346b565b9150509250929050565b6134c9816132ed565b82525050565b60006020820190506134e460008301846134c0565b92915050565b600060208284031215613500576134ff613258565b5b600061350e8482850161346b565b91505092915050565b600061352282613262565b9050919050565b61353281613517565b811461353d57600080fd5b50565b60008135905061354f81613529565b92915050565b60006020828403121561356b5761356a613258565b5b600061357984828501613540565b91505092915050565b60008060006060848603121561359b5761359a613258565b5b60006135a9868287016132ab565b93505060206135ba868287016132ab565b92505060406135cb8682870161346b565b9150509250925092565b600060ff82169050919050565b6135eb816135d5565b82525050565b600060208201905061360660008301846135e2565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136315761363061360c565b5b8235905067ffffffffffffffff81111561364e5761364d613611565b5b60208301915083602082028301111561366a57613669613616565b5b9250929050565b60008083601f8401126136875761368661360c565b5b8235905067ffffffffffffffff8111156136a4576136a3613611565b5b6020830191508360208202830111156136c0576136bf613616565b5b9250929050565b600080600080604085870312156136e1576136e0613258565b5b600085013567ffffffffffffffff8111156136ff576136fe61325d565b5b61370b8782880161361b565b9450945050602085013567ffffffffffffffff81111561372e5761372d61325d565b5b61373a87828801613671565b925092505092959194509250565b6000806040838503121561375f5761375e613258565b5b600061376d85828601613310565b925050602061377e8582860161346b565b9150509250929050565b61379181613282565b82525050565b60006020820190506137ac6000830184613788565b92915050565b6000806000606084860312156137cb576137ca613258565b5b60006137d98682870161346b565b93505060206137ea8682870161346b565b92505060406137fb8682870161346b565b9150509250925092565b60008060006040848603121561381e5761381d613258565b5b600084013567ffffffffffffffff81111561383c5761383b61325d565b5b6138488682870161361b565b9350935050602061385b8682870161346b565b9150509250925092565b60006020828403121561387b5761387a613258565b5b600061388984828501613310565b91505092915050565b600080604083850312156138a9576138a8613258565b5b60006138b7858286016132ab565b92505060206138c8858286016132ab565b9150509250929050565b6000819050919050565b60006138f76138f26138ed84613262565b6138d2565b613262565b9050919050565b6000613909826138dc565b9050919050565b600061391b826138fe565b9050919050565b61392b81613910565b82525050565b60006020820190506139466000830184613922565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139b582613365565b91506139c083613365565b9250826139d0576139cf61394c565b5b828204905092915050565b7f4d757374206265206174206c6561737420322500000000000000000000000000600082015250565b6000613a116013836133a4565b9150613a1c826139db565b602082019050919050565b60006020820190508181036000830152613a4081613a04565b9050919050565b7f4d757374206265206174206c6561737420302e35250000000000000000000000600082015250565b6000613a7d6015836133a4565b9150613a8882613a47565b602082019050919050565b60006020820190508181036000830152613aac81613a70565b9050919050565b6000613abe82613365565b9150613ac983613365565b925082821015613adc57613adb61397b565b5b828203905092915050565b600081519050613af681613454565b92915050565b600060208284031215613b1257613b11613258565b5b6000613b2084828501613ae7565b91505092915050565b6000604082019050613b3e6000830185613788565b613b4b602083018461336f565b9392505050565b600081519050613b61816132f9565b92915050565b600060208284031215613b7d57613b7c613258565b5b6000613b8b84828501613b52565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613bce82613365565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c0057613bff61397b565b5b600182019050919050565b6000613c1682613365565b9150613c2183613365565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c5657613c5561397b565b5b828201905092915050565b7f4665657320546f6f204869676800000000000000000000000000000000000000600082015250565b6000613c97600d836133a4565b9150613ca282613c61565b602082019050919050565b60006020820190508181036000830152613cc681613c8a565b9050919050565b7f4d757374206265206174206c6561737420312500000000000000000000000000600082015250565b6000613d036013836133a4565b9150613d0e82613ccd565b602082019050919050565b60006020820190508181036000830152613d3281613cf6565b9050919050565b7f416c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b6000613d6f6010836133a4565b9150613d7a82613d39565b602082019050919050565b60006020820190508181036000830152613d9e81613d62565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e016026836133a4565b9150613e0c82613da5565b604082019050919050565b60006020820190508181036000830152613e3081613df4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e6d6020836133a4565b9150613e7882613e37565b602082019050919050565b60006020820190508181036000830152613e9c81613e60565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eff6025836133a4565b9150613f0a82613ea3565b604082019050919050565b60006020820190508181036000830152613f2e81613ef2565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f916023836133a4565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140236029836133a4565b915061402e82613fc7565b604082019050919050565b6000602082019050818103600083015261405281614016565b9050919050565b7f45786365656473205472616e73616374696f6e204c696d697400000000000000600082015250565b600061408f6019836133a4565b915061409a82614059565b602082019050919050565b600060208201905081810360008301526140be81614082565b9050919050565b7f45786365656473204d6178204275790000000000000000000000000000000000600082015250565b60006140fb600f836133a4565b9150614106826140c5565b602082019050919050565b6000602082019050818103600083015261412a816140ee565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b60006141676012836133a4565b915061417282614131565b602082019050919050565b600060208201905081810360008301526141968161415a565b9050919050565b60006141a882613365565b91506141b383613365565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141ec576141eb61397b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061423581613294565b92915050565b60006020828403121561425157614250613258565b5b600061425f84828501614226565b91505092915050565b6000819050919050565b600061428d61428861428384614268565b6138d2565b613365565b9050919050565b61429d81614272565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d881613282565b82525050565b60006142ea83836142cf565b60208301905092915050565b6000602082019050919050565b600061430e826142a3565b61431881856142ae565b9350614323836142bf565b8060005b8381101561435457815161433b88826142de565b9750614346836142f6565b925050600181019050614327565b5085935050505092915050565b600060a082019050614376600083018861336f565b6143836020830187614294565b81810360408301526143958186614303565b90506143a46060830185613788565b6143b1608083018461336f565b9695505050505050565b600060c0820190506143d06000830189613788565b6143dd602083018861336f565b6143ea6040830187614294565b6143f76060830186614294565b6144046080830185613788565b61441160a083018461336f565b979650505050505050565b60008060006060848603121561443557614434613258565b5b600061444386828701613ae7565b935050602061445486828701613ae7565b925050604061446586828701613ae7565b915050925092509256fea26469706673582212202f0b2224d5303546970178180d2ec5c6400b4c22b094d2f0d6f8e12eea37129864736f6c634300080d0033

Verified Source Code Partial Match

Compiler: v0.8.13+commit.abaa5c0e EVM: london Optimization: No
UXOS.sol 495 lines
// SPDX-License-Identifier: MIT

//  ____ _______  ___________    _________              _____  .___ 
// |    |   \   \/  /\_      \  /   _____/             /  _  \ |   |
// |    |   /\     /  /   |   \ \_____  \    ______   /  /_\  \|   |
// |    |  / /     \ /    |    \/        \  /_____/  /    |    \   |
// |______/ /___/\  \\_______  /_______  /           \____|__  /___|
//                \_/        \/        \/                    \/     
// 
// 
// $UXOS is a multi-tier ecosystem driven token that is heavily utility based.
// It's utilities comprise of cutting edge AI integrated marketing bots.
// Our AI accounts are based across multiple social media platforms.
// These AI accounts are capable of targeting a specific demographic of investor, to
// yield the best results for the project and build a solid, organic community without
// lifting a finger. All whilst acting like a human. 
// We are creating an unstopable force.. influencial beyond anything ever seen before..
//
// Think of the worlds biggest shilling army. All automated. Never sleeping, never taking
// a break.. Never stopping.. We're building it. (and it works).
//
// www.uxos-ai.com
//
// t.me/UXOStoken
//
// The future is now.

pragma solidity 0.8.13;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 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());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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


interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}


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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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


contract UXOS is IERC20, Ownable {

    address private WETH;

    string private constant _name = "UXOS AI";
    string private constant _symbol = "UXOS";
    uint8 private constant _decimals = 9;
    
    uint256 _totalSupply = 1 * 10**9 * (10 ** _decimals);
    uint256 maxWallet = _totalSupply / 50; // 2%
    uint256 maxTransaction = _totalSupply / 100; // 1%
    uint256 public swapThreshold = _totalSupply / 1000; // Starting at 0.1%

    uint256 public maxBuy = _totalSupply / 200; // 0.5%
    bool public maxBuyEnabled = true;

    mapping (address => uint256) private _balances;
    mapping (address => mapping(address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWalletExempt;
    mapping (address => bool) public isTxExempt;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    uint[3] taxesCollected = [0, 0, 0];

    uint256 public launchedAt;
    address public liquidityPool = DEAD;

    // All fees are in basis points (100 = 1%)
    uint256 private buyMkt = 200;
    uint256 private sellMkt = 200;
    uint256 private buyLP = 200;
    uint256 private sellLP = 200;
    uint256 private buyDev = 100;
    uint256 private sellDev = 100;

    uint256 _baseBuyFee = buyMkt + buyLP + buyDev;
    uint256 _baseSellFee = sellMkt + sellLP + sellDev;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address public marketingWallet = payable(0x01859e5D0541Ca170E0Ff80EF8EdaE633528BA9f);
    address public devWallet = payable(0xDc0bd2dA5CACBd2d8622378bA4fAe1ACC210E290);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;

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

    constructor() {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[owner()] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[address(this)] = true;
        isWalletExempt[owner()] = true;
        isWalletExempt[marketingWallet] = true;
        isWalletExempt[DEAD] = true;
        isTxExempt[owner()] = true;
        isTxExempt[marketingWallet] = true;
        isTxExempt[DEAD] = true;

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

    receive() external payable { }

    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function changeIsWalletExempt(address holder, bool exempt) external onlyOwner {
        isWalletExempt[holder] = exempt;
    }

    function changeIsTxExempt(address holder, bool exempt) external onlyOwner {
        isTxExempt[holder] = exempt;
    }

    function launchSequence(uint hold) external onlyOwner {
	    require(launchedAt == 0, "Already launched");
        launchedAt = block.number + hold;
        tradingOpen = true;
    }

    function toggleTrade(bool _switch) external onlyOwner {
	    tradingOpen = _switch;
    }

    function toggleMaxBuy(bool _switch) external onlyOwner {
	    maxBuyEnabled = _switch;
    }

    function changeMaxBuyAmount(uint _amt) external onlyOwner {
	    require(_amt >= (_totalSupply / 200), "Must be at least 0.5%");
	    maxBuy = _amt;
    }

    function changeMaxWallet(uint _amt) external onlyOwner {
        require(_amt >= (_totalSupply / 50), "Must be at least 2%");
        maxWallet = _amt;
    }

    function changeMaxTransaction(uint _amt) external onlyOwner {
        require(_amt >= (_totalSupply / 100), "Must be at least 1%");
        maxTransaction = _amt;
    }

    function setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
        marketingWallet = payable(newMarketingWallet);
    }

    function setDevWallet(address payable newDevWallet) external onlyOwner {
	    devWallet = payable(newDevWallet);
    }

    function setLiquidityPool(address newLiquidityPool) external onlyOwner {
        liquidityPool = newLiquidityPool;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function baseBuyFee() external view returns (uint256) {return _baseBuyFee; }
    function baseSellFee() external view returns (uint256) {return _baseSellFee; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function addTaxCollected(uint mkt, uint lp, uint dev) internal {
        taxesCollected[0] += mkt;
        taxesCollected[1] += lp;
	    taxesCollected[2] += dev;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount < maxTransaction || isTxExempt[sender], "Exceeds Transaction Limit");

        if(recipient != pair) {
            uint256 recipientBalance = _balances[recipient];
            require(recipientBalance + amount < maxWallet || isWalletExempt[recipient]);
        }

	    if(sender == pair && maxBuyEnabled) { require(amount <= maxBuy || isTxExempt[recipient], "Exceeds Max Buy"); }
        if(sender != owner() && recipient != owner()) { require(tradingOpen || isFeeExempt[sender], "Trading not active"); }
        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
    	if(sender != pair && recipient != pair) { return _basicTransfer(sender, recipient, amount); }
        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
    	if(sender == pair && block.number < launchedAt) { recipient = DEAD; }

        _balances[sender] = _balances[sender] - amount;
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;

        _balances[recipient] = _balances[recipient] + finalAmount;

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 mktTaxB = amount * buyMkt / 10000;
	    uint256 mktTaxS = amount * sellMkt / 10000;
        uint256 lpTaxB = amount * buyLP / 10000;
	    uint256 lpTaxS = amount * sellLP / 10000;
	    uint256 devB = amount * buyDev / 10000;
	    uint256 devS = amount * sellDev / 10000;
        uint256 taxToGet;

	    if(sender == pair && recipient != address(pair) && !isFeeExempt[recipient]) {
            taxToGet = mktTaxB + lpTaxB + devB;
	        addTaxCollected(mktTaxB, lpTaxB, devB);
	    }

	    if(!inSwapAndLiquify && sender != pair && tradingOpen) {
	        taxToGet = mktTaxS + lpTaxS + devS;
	        addTaxCollected(mktTaxS, lpTaxS, devS);
	    }

        _balances[address(this)] = _balances[address(this)] + taxToGet;
        emit Transfer(sender, address(this), taxToGet);

        return amount - taxToGet;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }  

    function updateBuyFees(uint256 newBuyMktFee, uint256 newBuyLpFee, uint256 newBuyDev) public onlyOwner {
	    require(newBuyMktFee + newBuyLpFee + newBuyDev <= 1000, "Fees Too High");
	    buyMkt = newBuyMktFee;
	    buyLP = newBuyLpFee;
        buyDev = newBuyDev;
    }
    
    function updateSellFees(uint256 newSellMktFee,uint256 newSellLpFee, uint256 newSellDev) public onlyOwner {
	    require(newSellMktFee + newSellLpFee + newSellDev <= 1000, "Fees Too High");
	    sellMkt = newSellMktFee;
	    sellLP = newSellLpFee;
	    sellDev = newSellDev;
    }

    function swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityPool,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)];
        uint256 _totalCollected = taxesCollected[0] + taxesCollected[1] + taxesCollected[2];
        uint256 mktShare = taxesCollected[0];
        uint256 lpShare = taxesCollected[1];
	    uint256 devShare = taxesCollected[2];
        uint256 tokensForLiquidity = lpShare / 2;  
        uint256 amountToSwap = tokenBalance - tokensForLiquidity;

        swapTokensForETH(amountToSwap);

        uint256 totalETHBalance = address(this).balance;
        uint256 ETHForMkt = totalETHBalance * mktShare / _totalCollected;
        uint256 ETHForLiquidity = totalETHBalance * lpShare / _totalCollected / 2;
	    uint256 ETHForDev = totalETHBalance * devShare/ _totalCollected;
      
        if (totalETHBalance > 0) {
            payable(marketingWallet).transfer(ETHForMkt);
        }
  
        if (tokensForLiquidity > 0) {
            addLiquidity(tokensForLiquidity, ETHForLiquidity);
        }
	
	    if (ETHForDev > 0) {
	        payable(devWallet).transfer(ETHForDev);
        }

	    delete taxesCollected;
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) { 
            payable(marketingWallet).transfer(contractETHBalance);
    	}
    }

    function clearStuckTokens(address contractAddress) external onlyOwner {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(marketingWallet, balance);
    }

    function massDistributeTokens(address[] calldata _airdropAddresses, uint amtPerAddress) external onlyOwner {
	    for (uint i = 0; i < _airdropAddresses.length; i++) {
	        IERC20(address(this)).transfer(_airdropAddresses[i], amtPerAddress);
        }
    }

    function distributeTokensByAmount(address[] calldata _airdropAddresses, uint[] calldata _airdropAmounts) external onlyOwner {
	    for (uint i = 0; i < _airdropAddresses.length; i++) {
	        IERC20(address(this)).transfer(_airdropAddresses[i], _airdropAmounts[i]);
        }
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
baseBuyFee 0xd726b221 → uint256
baseSellFee 0xd073a01f → uint256
decimals 0x313ce567 → uint8
devWallet 0x8ea5220f → address
factory 0xc45a0155 → address
getCirculatingSupply 0x2b112e49 → uint256
getOwner 0x893d20e8 → address
isFeeExempt 0x3f4218e0 → bool
isTxExempt 0xbf8e28b9 → bool
isWalletExempt 0xc821fcb8 → bool
launchedAt 0xbf56b371 → uint256
liquidityPool 0x665a11ca → address
marketingWallet 0x75f0a874 → address
maxBuy 0x70db69d6 → uint256
maxBuyEnabled 0x417fd2d6 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
swapAndLiquifyEnabled 0x4a74bb02 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingOpen 0xffb54a99 → bool

Write Contract 26 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
changeIsFeeExempt 0xa3a2e89e
address holder
bool exempt
changeIsTxExempt 0x0a37ac95
address holder
bool exempt
changeIsWalletExempt 0x02affaf5
address holder
bool exempt
changeMaxBuyAmount 0x1d5cd545
uint256 _amt
changeMaxTransaction 0xcd73ab02
uint256 _amt
changeMaxWallet 0x0b006d60
uint256 _amt
changeSwapBackSettings 0x3dab5269
bool enableSwapBack
uint256 newSwapBackLimit
clearStuckETH 0xf88de0c3
No parameters
clearStuckTokens 0x346cc7be
address contractAddress
distributeTokensByAmount 0x34bfe0df
address[] _airdropAddresses
uint256[] _airdropAmounts
launchSequence 0xd120c8cb
uint256 hold
manualSwapBack 0x66eb3785
No parameters
massDistributeTokens 0x88c5440f
address[] _airdropAddresses
uint256 amtPerAddress
renounceOwnership 0x715018a6
No parameters
setDevWallet 0x1f53ac02
address newDevWallet
setLiquidityPool 0x01877020
address newLiquidityPool
setMarketingWallet 0x5d098b38
address newMarketingWallet
toggleMaxBuy 0xf8ae277d
bool _switch
toggleTrade 0xaf06a3f6
bool _switch
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateBuyFees 0x8095d564
uint256 newBuyMktFee
uint256 newBuyLpFee
uint256 newBuyDev
updateSellFees 0xc17b5b8c
uint256 newSellMktFee
uint256 newSellLpFee
uint256 newSellDev

Recent Transactions

This address has 1 on-chain transactions, but only 0% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →