Address Contract Partially Verified
Address
0x6a8307Ee4521241d421bFD7627bcf8C5Fa5C8CDC
Balance
0 ETH
Nonce
1
Code Size
16360 bytes
Creator
0x545F7255...473B at tx 0xdd5ae054...7c52a9
Indexed Transactions
0 (1 on-chain, 0.7% indexed)
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 →