Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xb9F443DDefbA7e9c31BfC2b2DB5972aD44dEB66d
Balance 0 ETH
Nonce 1
Code Size 16279 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

16279 bytes
0x60806040526004361061028b575f3560e01c80638da5cb5b11610159578063b0bc2a2d116100c0578063f097ea1a11610079578063f097ea1a146109d6578063f14210a6146109fe578063f242ab4114610a26578063f2fde38b14610a50578063f4b3dbc314610a78578063fe6f1b0514610ab457610292565b8063b0bc2a2d146108ba578063bf56b371146108e2578063dd62ed3e1461090c578063ea5b9e8514610948578063ec44acf214610970578063ed4214291461099a57610292565b80639e281a98116101125780639e281a98146107a2578063a2b8a947146107ca578063a457c2d7146107f2578063a643c1a01461082e578063a7c29b4014610856578063a9059cbb1461087e57610292565b80638da5cb5b14610698578063950eb5d5146106c257806395d89b41146106ea57806399b102b5146107145780639a36dfa1146107505780639b6a27501461077a57610292565b8063679a3c59116101fd5780637c6a9a9c116101b65780637c6a9a9c146105a0578063844af78e146105ca57806384ea21bc146105f45780638756aabd14610630578063879dd3c5146106585780638a8c523c1461068257610292565b8063679a3c59146104a8578063681aa362146104d057806370a08231146104fa578063715018a61461053657806375f0a8741461054c57806379777b4e1461057657610292565b80631884f1e61161024f5780631884f1e61461037857806323b872dd146103a25780632d129390146103de578063313ce5671461040657806339509351146104305780635342acb41461046c57610292565b806306fdde03146102965780630758d924146102c0578063095ea7b3146102ea5780630a2d140c1461032657806318160ddd1461034e57610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610ade565b6040516102b7919061323d565b60405180910390f35b3480156102cb575f80fd5b506102d4610b6e565b6040516102e191906132d7565b60405180910390f35b3480156102f5575f80fd5b50610310600480360381019061030b9190613362565b610b94565b60405161031d91906133ba565b60405180910390f35b348015610331575f80fd5b5061034c600480360381019061034791906133fd565b610bb1565b005b348015610359575f80fd5b50610362610c61565b60405161036f9190613437565b60405180910390f35b348015610383575f80fd5b5061038c610c6a565b6040516103999190613437565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c39190613450565b610c70565b6040516103d591906133ba565b60405180910390f35b3480156103e9575f80fd5b5061040460048036038101906103ff91906134a0565b610d23565b005b348015610411575f80fd5b5061041a610e0f565b60405161042791906134f9565b60405180910390f35b34801561043b575f80fd5b5061045660048036038101906104519190613362565b610e24565b60405161046391906133ba565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d9190613512565b610ecb565b60405161049f91906133ba565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190613512565b610ee8565b005b3480156104db575f80fd5b506104e4610fc3565b6040516104f19190613437565b60405180910390f35b348015610505575f80fd5b50610520600480360381019061051b9190613512565b610fc9565b60405161052d9190613437565b60405180910390f35b348015610541575f80fd5b5061054a61100f565b005b348015610557575f80fd5b5061056061115d565b60405161056d919061354c565b60405180910390f35b348015610581575f80fd5b5061058a611182565b60405161059791906133ba565b60405180910390f35b3480156105ab575f80fd5b506105b4611194565b6040516105c19190613437565b60405180910390f35b3480156105d5575f80fd5b506105de61119a565b6040516105eb9190613437565b60405180910390f35b3480156105ff575f80fd5b5061061a60048036038101906106159190613512565b6111a0565b60405161062791906133ba565b60405180910390f35b34801561063b575f80fd5b5061065660048036038101906106519190613565565b6111bd565b005b348015610663575f80fd5b5061066c61126e565b60405161067991906133ba565b60405180910390f35b34801561068d575f80fd5b50610696611281565b005b3480156106a3575f80fd5b506106ac6113be565b6040516106b9919061354c565b60405180910390f35b3480156106cd575f80fd5b506106e860048036038101906106e39190613565565b6113e5565b005b3480156106f5575f80fd5b506106fe611483565b60405161070b919061323d565b60405180910390f35b34801561071f575f80fd5b5061073a60048036038101906107359190613512565b611513565b60405161074791906133ba565b60405180910390f35b34801561075b575f80fd5b50610764611530565b6040516107719190613437565b60405180910390f35b348015610785575f80fd5b506107a0600480360381019061079b9190613565565b611536565b005b3480156107ad575f80fd5b506107c860048036038101906107c391906135cb565b6115e7565b005b3480156107d5575f80fd5b506107f060048036038101906107eb9190613565565b6117b5565b005b3480156107fd575f80fd5b5061081860048036038101906108139190613362565b611853565b60405161082591906133ba565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190613512565b6118fa565b005b348015610861575f80fd5b5061087c600480360381019061087791906134a0565b6119d1565b005b348015610889575f80fd5b506108a4600480360381019061089f9190613362565b611abd565b6040516108b191906133ba565b60405180910390f35b3480156108c5575f80fd5b506108e060048036038101906108db91906133fd565b611ada565b005b3480156108ed575f80fd5b506108f6611b8b565b6040516109039190613437565b60405180910390f35b348015610917575f80fd5b50610932600480360381019061092d9190613609565b611b91565b60405161093f9190613437565b60405180910390f35b348015610953575f80fd5b5061096e600480360381019061096991906134a0565b611c13565b005b34801561097b575f80fd5b50610984611cff565b60405161099191906133ba565b60405180910390f35b3480156109a5575f80fd5b506109c060048036038101906109bb9190613565565b611d12565b6040516109cd9190613437565b60405180910390f35b3480156109e1575f80fd5b506109fc60048036038101906109f79190613565565b611d3a565b005b348015610a09575f80fd5b50610a246004803603810190610a1f9190613565565b611deb565b005b348015610a31575f80fd5b50610a3a611f09565b604051610a47919061354c565b60405180910390f35b348015610a5b575f80fd5b50610a766004803603810190610a719190613512565b611f2e565b005b348015610a83575f80fd5b50610a9e6004803603810190610a999190613565565b6120eb565b604051610aab9190613437565b60405180910390f35b348015610abf575f80fd5b50610ac8612113565b604051610ad59190613437565b60405180910390f35b606060018054610aed90613674565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1990613674565b8015610b645780601f10610b3b57610100808354040283529160200191610b64565b820191905f5260205f20905b815481529060010190602001808311610b4757829003601f168201915b5050505050905090565b600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ba7610ba0612119565b8484612120565b6001905092915050565b610bb9612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c906136ee565b60405180910390fd5b80600f5f6101000a81548160ff02191690831515021790555050565b5f600454905090565b600a5481565b5f610c7c8484846122e3565b610d1884610c88612119565b8460065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ccf612119565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d139190613739565b612120565b600190509392505050565b610d2b612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae906136ee565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60035f9054906101000a900460ff16905090565b5f610ec1610e30612119565b848460065f610e3d612119565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ebc919061376c565b612120565b6001905092915050565b6007602052805f5260405f205f915054906101000a900460ff1681565b610ef0612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f73906136ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fbf573d5f803e3d5ffd5b5050565b600c5481565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611017612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a906136ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5f9054906101000a900460ff1681565b60125481565b60135481565b6009602052805f5260405f205f915054906101000a900460ff1681565b6111c5612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906136ee565b60405180910390fd5b670de0b6b3a764000081611265919061379f565b600b8190555050565b600f60019054906101000a900460ff1681565b611289612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c906136ee565b60405180910390fd5b600f60029054906101000a900460ff1615611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c9061382a565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff02191690831515021790555042600e81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113ed612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611470906136ee565b60405180910390fd5b8060128190555050565b60606002805461149290613674565b80601f01602080910402602001604051908101604052809291908181526020018280546114be90613674565b80156115095780601f106114e057610100808354040283529160200191611509565b820191905f5260205f20905b8154815290600101906020018083116114ec57829003601f168201915b5050505050905090565b6008602052805f5260405f205f915054906101000a900460ff1681565b600b5481565b61153e612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c1906136ee565b60405180910390fd5b670de0b6b3a7640000816115de919061379f565b600c8190555050565b6115ef612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906136ee565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116b5919061354c565b602060405180830381865afa1580156116d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f4919061385c565b1015611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c906138d1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117709291906138ef565b6020604051808303815f875af115801561178c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b0919061392a565b505050565b6117bd612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906136ee565b60405180910390fd5b8060138190555050565b5f6118f061185f612119565b848460065f61186c612119565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118eb9190613739565b612120565b6001905092915050565b611902612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461198e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611985906136ee565b60405180910390fd5b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119d9612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c906136ee565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611ad0611ac9612119565b84846122e3565b6001905092915050565b611ae2612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b65906136ee565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c1b612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e906136ee565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600f60029054906101000a900460ff1681565b5f80600d5460125484611d25919061379f565b611d2f9190613982565b905080915050919050565b611d42612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc5906136ee565b60405180910390fd5b670de0b6b3a764000081611de2919061379f565b600a8190555050565b611df3612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906136ee565b60405180910390fd5b80471015611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb9906138d1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f05573d5f803e3d5ffd5b5050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f36612119565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb9906136ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202790613a22565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f80600d54601354846120fe919061379f565b6121089190613982565b905080915050919050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218590613a8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613af2565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122d69190613437565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234890613b5a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b690613bc2565b60405180910390fd5b5f8111612401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f890613c2a565b60405180910390fd5b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561249f575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125e857600c548111156124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090613c92565b60405180910390fd5b600f60029054906101000a900460ff166125e7578273ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156125a757508173ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6125e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dd90613cfa565b60405180910390fd5b5b5b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661268f57600b548161264384610fc9565b61264d919061376c565b111561268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268590613d62565b60405180910390fd5b5b612699838361276c565b5f6001905060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612739575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806127515750600f60019054906101000a900460ff16155b1561275a575f90505b6127668484848461295e565b50505050565b5f61277630610fc9565b90505f600a5482101590508080156127db575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127f25750600f5f9054906101000a900460ff165b801561288257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612880575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612958576128b630600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612120565b6128e4600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612ee5565b5f4790505f8111156129565760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612954573d5f803e3d5ffd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156129b75750805b15612b61575f806129c784611d12565b915081846129d59190613739565b90508360055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a209190613739565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612aaa919061376c565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b489190613437565b60405180910390a3612b5a86836130c0565b5050612edf565b8273ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612bba5750805b15612d64575f612bc9836120eb565b90505f8184612bd89190613739565b90508360055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612c239190613739565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612cad919061376c565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d4b9190613437565b60405180910390a3612d5d86836130c0565b5050612ede565b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612dad9190613739565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e37919061376c565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ed59190613437565b60405180910390a35b5b50505050565b5f8290505f600267ffffffffffffffff811115612f0557612f04613d80565b5b604051908082528060200260200182016040528015612f335781602001602082028036833780820191505090505b50905030815f81518110612f4a57612f49613dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ff19190613dee565b8160018151811061300557613004613dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947845f843061012c4261306d919061376c565b6040518663ffffffff1660e01b815260040161308d959493929190613f09565b5f604051808303815f87803b1580156130a4575f80fd5b505af11580156130b6573d5f803e3d5ffd5b5050505050505050565b8060055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613109919061376c565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131a79190613437565b60405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131ea5780820151818401526020810190506131cf565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61320f826131b3565b61321981856131bd565b93506132298185602086016131cd565b613232816131f5565b840191505092915050565b5f6020820190508181035f8301526132558184613205565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61329f61329a6132958461325d565b61327c565b61325d565b9050919050565b5f6132b082613285565b9050919050565b5f6132c1826132a6565b9050919050565b6132d1816132b7565b82525050565b5f6020820190506132ea5f8301846132c8565b92915050565b5f80fd5b5f6132fe8261325d565b9050919050565b61330e816132f4565b8114613318575f80fd5b50565b5f8135905061332981613305565b92915050565b5f819050919050565b6133418161332f565b811461334b575f80fd5b50565b5f8135905061335c81613338565b92915050565b5f8060408385031215613378576133776132f0565b5b5f6133858582860161331b565b92505060206133968582860161334e565b9150509250929050565b5f8115159050919050565b6133b4816133a0565b82525050565b5f6020820190506133cd5f8301846133ab565b92915050565b6133dc816133a0565b81146133e6575f80fd5b50565b5f813590506133f7816133d3565b92915050565b5f60208284031215613412576134116132f0565b5b5f61341f848285016133e9565b91505092915050565b6134318161332f565b82525050565b5f60208201905061344a5f830184613428565b92915050565b5f805f60608486031215613467576134666132f0565b5b5f6134748682870161331b565b93505060206134858682870161331b565b92505060406134968682870161334e565b9150509250925092565b5f80604083850312156134b6576134b56132f0565b5b5f6134c38582860161331b565b92505060206134d4858286016133e9565b9150509250929050565b5f60ff82169050919050565b6134f3816134de565b82525050565b5f60208201905061350c5f8301846134ea565b92915050565b5f60208284031215613527576135266132f0565b5b5f6135348482850161331b565b91505092915050565b613546816132f4565b82525050565b5f60208201905061355f5f83018461353d565b92915050565b5f6020828403121561357a576135796132f0565b5b5f6135878482850161334e565b91505092915050565b5f61359a826132f4565b9050919050565b6135aa81613590565b81146135b4575f80fd5b50565b5f813590506135c5816135a1565b92915050565b5f80604083850312156135e1576135e06132f0565b5b5f6135ee858286016135b7565b92505060206135ff8582860161334e565b9150509250929050565b5f806040838503121561361f5761361e6132f0565b5b5f61362c8582860161331b565b925050602061363d8582860161331b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061368b57607f821691505b60208210810361369e5761369d613647565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136d86020836131bd565b91506136e3826136a4565b602082019050919050565b5f6020820190508181035f830152613705816136cc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137438261332f565b915061374e8361332f565b92508282039050818111156137665761376561370c565b5b92915050565b5f6137768261332f565b91506137818361332f565b92508282019050808211156137995761379861370c565b5b92915050565b5f6137a98261332f565b91506137b48361332f565b92508282026137c28161332f565b915082820484148315176137d9576137d861370c565b5b5092915050565b7f3a20616c726561647920656e61626c65640000000000000000000000000000005f82015250565b5f6138146011836131bd565b915061381f826137e0565b602082019050919050565b5f6020820190508181035f83015261384181613808565b9050919050565b5f8151905061385681613338565b92915050565b5f60208284031215613871576138706132f0565b5b5f61387e84828501613848565b91505092915050565b7f496e76616c696420416d6f756e740000000000000000000000000000000000005f82015250565b5f6138bb600e836131bd565b91506138c682613887565b602082019050919050565b5f6020820190508181035f8301526138e8816138af565b9050919050565b5f6040820190506139025f83018561353d565b61390f6020830184613428565b9392505050565b5f81519050613924816133d3565b92915050565b5f6020828403121561393f5761393e6132f0565b5b5f61394c84828501613916565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61398c8261332f565b91506139978361332f565b9250826139a7576139a6613955565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a0c6026836131bd565b9150613a17826139b2565b604082019050919050565b5f6020820190508181035f830152613a3981613a00565b9050919050565b7f20617070726f76652066726f6d20746865207a65726f206164647265737300005f82015250565b5f613a74601e836131bd565b9150613a7f82613a40565b602082019050919050565b5f6020820190508181035f830152613aa181613a68565b9050919050565b7f617070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f613adc601b836131bd565b9150613ae782613aa8565b602082019050919050565b5f6020820190508181035f830152613b0981613ad0565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f613b44601e836131bd565b9150613b4f82613b10565b602082019050919050565b5f6020820190508181035f830152613b7181613b38565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f613bac601c836131bd565b9150613bb782613b78565b602082019050919050565b5f6020820190508181035f830152613bd981613ba0565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f613c146020836131bd565b9150613c1f82613be0565b602082019050919050565b5f6020820190508181035f830152613c4181613c08565b9050919050565b7f206d61782074786e206c696d69742065786365656473000000000000000000005f82015250565b5f613c7c6016836131bd565b9150613c8782613c48565b602082019050919050565b5f6020820190508181035f830152613ca981613c70565b9050919050565b7f3a2074726164696e672069732064697361626c650000000000000000000000005f82015250565b5f613ce46014836131bd565b9150613cef82613cb0565b602082019050919050565b5f6020820190508181035f830152613d1181613cd8565b9050919050565b7f3a206d617820686f6c64206c696d6974206578636565647300000000000000005f82015250565b5f613d4c6018836131bd565b9150613d5782613d18565b602082019050919050565b5f6020820190508181035f830152613d7981613d40565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613de881613305565b92915050565b5f60208284031215613e0357613e026132f0565b5b5f613e1084828501613dda565b91505092915050565b5f819050919050565b5f613e3c613e37613e3284613e19565b61327c565b61332f565b9050919050565b613e4c81613e22565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e84816132f4565b82525050565b5f613e958383613e7b565b60208301905092915050565b5f602082019050919050565b5f613eb782613e52565b613ec18185613e5c565b9350613ecc83613e6c565b805f5b83811015613efc578151613ee38882613e8a565b9750613eee83613ea1565b925050600181019050613ecf565b5085935050505092915050565b5f60a082019050613f1c5f830188613428565b613f296020830187613e43565b8181036040830152613f3b8186613ead565b9050613f4a606083018561353d565b613f576080830184613428565b969550505050505056fea264697066735822122015cdd74c461d7f940d32cbc03b37d252bd969da5ef3a7287d179248652c9176264736f6c63430008150033

Verified Source Code Partial Match

Compiler: v0.8.21+commit.d9974bed EVM: shanghai Optimization: No
fknfts.sol 525 lines
/**
Well, believe me, it's crystal clear: NFT's are racist...

.

$FKNFTS

WEBSITE: fknfts.finance
TELEGRAM: https://t.me/FkNfts
TWITTER: https://twitter.com/FKNFTSERC
*/

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.18;

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
    );
}

// Dex Factory contract interface
interface IDexFactory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = payable(address(0));
    }

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

contract fknfts is Context, IERC20, Ownable {
    string private _name = unicode"Well, believe me, it's crystal clear: NFT's are racist. You don't believe this, huh? Well, I'm going to explain it to you. First off, the name. The The Bored Ape Yacht Club wants you to believe that ´´NFT´´ stands for Non-fungible token. This name might be an accurate name for the images of apes that are sold, but it also stands for ´´n****r(s) for trade´´ This is absolutely not okay. NFT's have been fully covered on national news and they usual tell you that images of apes are being traded. What they don't tell you, is that those apes usually have big lips, golden chains and rings and contains an awful lot of stereotypes. NFT's use apes as a methaphor for the stereotypical black communty. This can be explained: NFT's were invented on 4chan. 4chan is the breedplace of 99% of evil on the internet. The /pol/ communty, already infamous for it's racism and anti-semitism. created NFT's because they want to insult black people. Using complex trading methods on specific websites on the internet and needing a fast connection to the world wide web they try to exclude as many black people (mainly the African continent). It even goes beyond that. Neo-Nazi artists, like Ben Garisson and StoneToss have recently used this way of trading to sell their art full of hate. They can do this because NFT's are completely anonymous. Republicans and right-wingers say they screenshot NFT's. This is not an harmless joke, they try to demonstrate how 'worthless' NFT's (abbreviation for: N****r(s) for Trade) are. Stop NFT's. Make a hashtag and cancel 'em. Cut off people that trade NFT's. Stop racism.";
    string private _symbol = unicode"FKNFTS";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 42_690_000 * 1e18;

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;

    uint256 public minTokenToSwap = (_totalSupply * 5) / (10000); 
    uint256 public maxHoldLimit = (_totalSupply * 1) / (100); 
    uint256 public maxTxnLimit = (_totalSupply * 1) / (100); 
    uint256 public percentDivider = 100;
    uint256 public launchedAt;

    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards

    IDexRouter public dexRouter; // router declaration

    address public dexPair; // pair address declaration
    address public marketingWallet; // marketing address declaration
    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);

    uint256 public marketingFeeOnBuying = 30;

    uint256 public marketingFeeOnSelling = 30;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = address(0x436Bd0ec8727E9cCc4e0DA911ebd2B6b07a5B5A0);

        dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isExcludedFromFee[address(dexRouter)] = true;
        isExcludedFromMaxTxn[address(dexRouter)] = true;
        isExcludedFromMaxHolding[address(dexRouter)] = true;

        dexPair = IDexFactory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );
        isExcludedFromMaxHolding[dexPair] = true;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - 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) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] - subtractedValue
        );
        return true;
    }

    function includeOrExcludeFromFee(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        minTokenToSwap = _amount * 1e18;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        maxHoldLimit = _amount * 1e18;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        maxTxnLimit = _amount * 1e18;
    }

    function setBuyFeePercent(uint256 _marketingFee) external onlyOwner {
        marketingFeeOnBuying = _marketingFee;
    }

    function setSellFeePercent(uint256 _marketingFee) external onlyOwner {
        marketingFeeOnSelling = _marketingFee;
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function enableTrading() external onlyOwner {
        require(!trading, ": already enabled");

        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * marketingFeeOnBuying) / (percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * marketingFeeOnSelling) / (percentDivider);
        return fee;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "transfer from the zero address");
        require(to != address(0), "transfer to the zero address");
        require(amount > 0, "Amount must be greater than zero");
        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, " max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    ": trading is disable"
                );
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                (balanceOf(to) + amount) <= maxHoldLimit,
                ": max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fees, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            allFee = totalBuyFeePerTx(amount);
            tTransferAmount = amount - allFee;

            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount - allFee;
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else {
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + (amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)] + (amount);

        emit Transfer(sender, address(this), amount);
    }

    // to withdarw ETH from contract
    function withdrawETH(uint256 _amount) external onlyOwner {
        require(address(this).balance >= _amount, "Invalid Amount");
        payable(msg.sender).transfer(_amount);
    }

    // to withdraw ERC20 tokens from contract
    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
        require(_token.balanceOf(address(this)) >= _amount, "Invalid Amount");
        _token.transfer(msg.sender, _amount);
    }

    function distributeAndLiquify(address from, address to) private {
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), minTokenToSwap);

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), minTokenToSwap);
            uint256 ethForMarketing = address(this).balance;

            // sending Eth to Marketing wallet
            if (ethForMarketing > 0)
                payable(marketingWallet).transfer(ethForMarketing);
        }
    }
}

// Library for swapping on Dex
library Utils {
    function swapTokensForEth(
        address routerAddress,
        uint256 tokenAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp + 300
        );
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
dexPair 0xf242ab41 → address
dexRouter 0x0758d924 → address
distributeAndLiquifyStatus 0x79777b4e → bool
feesStatus 0x879dd3c5 → bool
isExcludedFromFee 0x5342acb4 → bool
isExcludedFromMaxHolding 0x84ea21bc → bool
isExcludedFromMaxTxn 0x99b102b5 → bool
launchedAt 0xbf56b371 → uint256
marketingFeeOnBuying 0x7c6a9a9c → uint256
marketingFeeOnSelling 0x844af78e → uint256
marketingWallet 0x75f0a874 → address
maxHoldLimit 0x9a36dfa1 → uint256
maxTxnLimit 0x681aa362 → uint256
minTokenToSwap 0x1884f1e6 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
percentDivider 0xfe6f1b05 → uint256
symbol 0x95d89b41 → string
totalBuyFeePerTx 0xed421429 → uint256
totalSellFeePerTx 0xf4b3dbc3 → uint256
totalSupply 0x18160ddd → uint256
trading 0xec44acf2 → bool

Write Contract 22 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
enableOrDisableFees 0xb0bc2a2d
bool _value
enableTrading 0x8a8c523c
No parameters
includeOrExcludeFromFee 0xea5b9e85
address account
bool value
includeOrExcludeFromMaxHolding 0x2d129390
address account
bool value
includeOrExcludeFromMaxTxn 0xa7c29b40
address account
bool value
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
removeStuckEth 0x679a3c59
address _receiver
renounceOwnership 0x715018a6
No parameters
setBuyFeePercent 0x950eb5d5
uint256 _marketingFee
setDistributionStatus 0x0a2d140c
bool _value
setMaxHoldLimit 0x8756aabd
uint256 _amount
setMaxTxnLimit 0x9b6a2750
uint256 _amount
setMinTokenToSwap 0xf097ea1a
uint256 _amount
setSellFeePercent 0xa2b8a947
uint256 _marketingFee
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateAddresses 0xa643c1a0
address _marketingWallet
withdrawETH 0xf14210a6
uint256 _amount
withdrawToken 0x9e281a98
address _token
uint256 _amount

Recent Transactions

No transactions found for this address