Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xECE6f0eDD246d43C1920F0F9E951292986ACE544
Balance 0 ETH
Nonce 1
Code Size 17128 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

17128 bytes
0x6080604052600436106102b1575f3560e01c80637d1db4a511610174578063c16dd4a4116100db578063e6b2603b11610094578063f242ab411161006e578063f242ab4114610a7e578063f2fde38b14610aa8578063f872858a14610ad0578063fb0ecfa414610afa576102b8565b8063e6b2603b14610a16578063e9fd339414610a2c578063ee828db314610a56576102b8565b8063c16dd4a4146108fc578063c867d60b14610924578063cc1776d314610960578063cea9d26f1461098a578063dd62ed3e146109b2578063df8408fe146109ee576102b8565b8063a457c2d71161012d578063a457c2d7146107e0578063a9059cbb1461081c578063ae85ade614610858578063b94b0aef14610880578063bf56b371146108a8578063c04a5414146108d2576102b8565b80637d1db4a5146106e6578063807c2d9c146107105780638a8c523c1461073a5780638b42507f146107505780638da5cb5b1461078c57806395d89b41146107b6576102b8565b80634974d88f116102185780636ddd1713116101d15780636ddd17131461060457806370a082311461062e578063715018a61461066a578063728d41c91461068057806372ac2486146106a8578063751039fc146106d0576102b8565b80634974d88f146104fc5780634f7041a5146105245780635342acb41461054e5780635c85974f1461058a5780635e42358c146105b2578063651a8987146105dc576102b8565b806318160ddd1161026a57806318160ddd146103ca57806323b872dd146103f457806327c8f83514610430578063313ce5671461045a57806339509351146104845780633ecad271146104c0576102b8565b80630445b667146102bc57806306fdde03146102e65780630758d924146103105780630930907b1461033a578063095ea7b3146103645780631693e8d4146103a0576102b8565b366102b857005b5f80fd5b3480156102c7575f80fd5b506102d0610b22565b6040516102dd91906133c7565b60405180910390f35b3480156102f1575f80fd5b506102fa610b28565b604051610307919061346a565b60405180910390f35b34801561031b575f80fd5b50610324610bb8565b6040516103319190613504565b60405180910390f35b348015610345575f80fd5b5061034e610bdd565b60405161035b919061353d565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906135ae565b610c01565b6040516103979190613606565b60405180910390f35b3480156103ab575f80fd5b506103b4610c1e565b6040516103c19190613606565b60405180910390f35b3480156103d5575f80fd5b506103de610c2f565b6040516103eb91906133c7565b60405180910390f35b3480156103ff575f80fd5b5061041a6004803603810190610415919061361f565b610c38565b6040516104279190613606565b60405180910390f35b34801561043b575f80fd5b50610444610d2a565b604051610451919061353d565b60405180910390f35b348015610465575f80fd5b5061046e610d4e565b60405161047b919061368a565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a591906135ae565b610d63565b6040516104b79190613606565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e191906136a3565b610e11565b6040516104f39190613606565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906136f8565b610e2e565b005b34801561052f575f80fd5b50610538610ec7565b60405161054591906133c7565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f91906136a3565b610ecd565b6040516105819190613606565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190613723565b610eea565b005b3480156105bd575f80fd5b506105c6610f70565b6040516105d39190613606565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd919061374e565b610f83565b005b34801561060f575f80fd5b50610618611057565b6040516106259190613606565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906136a3565b611069565b60405161066191906133c7565b60405180910390f35b348015610675575f80fd5b5061067e6110af565b005b34801561068b575f80fd5b506106a660048036038101906106a19190613723565b611136565b005b3480156106b3575f80fd5b506106ce60048036038101906106c991906136a3565b6111bc565b005b3480156106db575f80fd5b506106e461127b565b005b3480156106f1575f80fd5b506106fa611340565b60405161070791906133c7565b60405180910390f35b34801561071b575f80fd5b50610724611346565b60405161073191906133c7565b60405180910390f35b348015610745575f80fd5b5061074e61134c565b005b34801561075b575f80fd5b50610776600480360381019061077191906136a3565b611439565b6040516107839190613606565b60405180910390f35b348015610797575f80fd5b506107a0611456565b6040516107ad919061353d565b60405180910390f35b3480156107c1575f80fd5b506107ca61147d565b6040516107d7919061346a565b60405180910390f35b3480156107eb575f80fd5b50610806600480360381019061080191906135ae565b61150d565b6040516108139190613606565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906135ae565b6115d5565b60405161084f9190613606565b60405180910390f35b348015610863575f80fd5b5061087e6004803603810190610879919061374e565b6115f3565b005b34801561088b575f80fd5b506108a660048036038101906108a1919061378c565b6116c7565b005b3480156108b3575f80fd5b506108bc611795565b6040516108c991906133c7565b60405180910390f35b3480156108dd575f80fd5b506108e661179b565b6040516108f3919061353d565b60405180910390f35b348015610907575f80fd5b50610922600480360381019061091d919061374e565b6117c0565b005b34801561092f575f80fd5b5061094a600480360381019061094591906136a3565b6118ef565b6040516109579190613606565b60405180910390f35b34801561096b575f80fd5b5061097461190c565b60405161098191906133c7565b60405180910390f35b348015610995575f80fd5b506109b060048036038101906109ab919061361f565b611912565b005b3480156109bd575f80fd5b506109d860048036038101906109d391906137dc565b611ade565b6040516109e591906133c7565b60405180910390f35b3480156109f9575f80fd5b50610a146004803603810190610a0f919061374e565b611b60565b005b348015610a21575f80fd5b50610a2a611c34565b005b348015610a37575f80fd5b50610a40611d6e565b604051610a4d9190613606565b60405180910390f35b348015610a61575f80fd5b50610a7c6004803603810190610a7791906136f8565b611d81565b005b348015610a89575f80fd5b50610a92611e1a565b604051610a9f919061353d565b60405180910390f35b348015610ab3575f80fd5b50610ace6004803603810190610ac991906136a3565b611e3f565b005b348015610adb575f80fd5b50610ae4611f35565b604051610af19190613606565b60405180910390f35b348015610b05575f80fd5b50610b206004803603810190610b1b919061381a565b611f48565b005b600f5481565b606060028054610b3790613885565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6390613885565b8015610bae5780601f10610b8557610100808354040283529160200191610bae565b820191905f5260205f20905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c14610c0d611fd6565b8484611fdd565b6001905092915050565b60148054906101000a900460ff1681565b5f600554905090565b5f610c448484846121a0565b50610d1f84610c51611fd6565b610d1a856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cd1611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f60045f9054906101000a900460ff16905090565b5f610e07610d6f611fd6565b84610e0285600a5f610d7f611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b611fdd565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b610e36611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610e54611456565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea1906138ff565b60405180910390fd5b80601060036101000a81548160ff02191690831515021790555050565b60115481565b600b602052805f5260405f205f915054906101000a900460ff1681565b610ef2611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610f10611456565b73ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906138ff565b60405180910390fd5b8060068190555050565b601060029054906101000a900460ff1681565b610f8b611fd6565b73ffffffffffffffffffffffffffffffffffffffff16610fa9611456565b73ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff6906138ff565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110b7611fd6565b73ffffffffffffffffffffffffffffffffffffffff166110d5611456565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611122906138ff565b60405180910390fd5b6111345f6128f2565b565b61113e611fd6565b73ffffffffffffffffffffffffffffffffffffffff1661115c611456565b73ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906138ff565b60405180910390fd5b8060078190555050565b6111c4611fd6565b73ffffffffffffffffffffffffffffffffffffffff166111e2611456565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906138ff565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190613967565b60405180910390fd5b5f601060026101000a81548160ff0219169083151502179055505f601060036101000a81548160ff021916908315150217905550565b60065481565b60075481565b611354611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611372611456565b73ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906138ff565b60405180910390fd5b60148054906101000a900460ff1615611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d906139cf565b60405180910390fd5b60016014806101000a81548160ff02191690831515021790555042601581905550565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461148c90613885565b80601f01602080910402602001604051908101604052809291908181526020018280546114b890613885565b80156115035780601f106114da57610100808354040283529160200191611503565b820191905f5260205f20905b8154815290600101906020018083116114e657829003601f168201915b5050505050905090565b5f6115cb611519611fd6565b846115c68560405180606001604052806025815260200161428e60259139600a5f611542611fd6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b611fdd565b6001905092915050565b5f6115e86115e1611fd6565b84846121a0565b506001905092915050565b6115fb611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611619611456565b73ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906138ff565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174d90613967565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff02191690831515021790555082600f81905550505050565b60155481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c8611fd6565b73ffffffffffffffffffffffffffffffffffffffff166117e6611456565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906138ff565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156118eb5780600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60125481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613967565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119cc9291906139ed565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a569190613a58565b5f604051808303815f865af19150503d805f8114611a8f576040519150601f19603f3d011682016040523d82523d5f602084013e611a94565b606091505b5050905080611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613ab8565b60405180910390fd5b50505050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b68611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611b86611456565b73ffffffffffffffffffffffffffffffffffffffff1614611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd3906138ff565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba90613967565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611ce890613af9565b5f6040518083038185875af1925050503d805f8114611d22576040519150601f19603f3d011682016040523d82523d5f602084013e611d27565b606091505b5050905080611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6290613b57565b60405180910390fd5b50565b601060019054906101000a900460ff1681565b611d89611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611da7611456565b73ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906138ff565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e47611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611e65611456565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906138ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2090613be5565b60405180910390fd5b611f32816128f2565b50565b601060039054906101000a900460ff1681565b611f50611fd6565b73ffffffffffffffffffffffffffffffffffffffff16611f6e611456565b73ffffffffffffffffffffffffffffffffffffffff1614611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb906138ff565b60405180910390fd5b81601181905550806012819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613c73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613d01565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161219391906133c7565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121d8575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361220f575f80fd5b5f821161221a575f80fd5b60165f9054906101000a900460ff1615612240576122398484846129b3565b905061282c565b60148054906101000a900460ff1661232d57600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122ed5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61232c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232390613d69565b60405180910390fd5b5b5f61233730611069565b90505f600f54821015905080801561235b575060165f9054906101000a900460ff16155b80156123ae5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123c5575060105f9054906101000a900460ff165b80156124185750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561246b5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561247a5761247982612b7d565b5b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125185750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125305750601060029054906101000a900460ff165b1561257b5760065484111561257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257190613dd1565b60405180910390fd5b5b612602846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61264e8787612c61565b6126625761265d878787612dbd565b612664565b845b9050601060039054906101000a900460ff1680156126c95750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561272e576007546126ec826126de89611069565b61289590919063ffffffff16565b111561272d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272490613e39565b60405180910390fd5b5b61277e8160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161281c91906133c7565b60405180910390a3600193505050505b9392505050565b5f83831115829061287a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612871919061346a565b60405180910390fd5b505f83856128889190613e84565b9050809150509392505050565b5f8082846128a39190613eb7565b9050838110156128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90613f34565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612a3b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128339092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612acc8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b6a91906133c7565b60405180910390a3600190509392505050565b600160165f6101000a81548160ff021916908315150217905550601060019054906101000a900460ff1615612bb257600f5490505b5f479050612bbf82612fd6565b5f612bd3824761324590919063ffffffff16565b90505f811115612c435760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612c41573d5f803e3d5ffd5b505b50505f60165f6101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612cfd5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d0b5760019050612db7565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612da65750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612db3575f9050612db7565b5f90505b92915050565b5f80600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e3e57612e37600854612e296011548661328e90919063ffffffff16565b61330590919063ffffffff16565b9050612eba565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612eb957612eb6600854612ea86012548661328e90919063ffffffff16565b61330590919063ffffffff16565b90505b5b5f811115612fb957612f128160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289590919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fb091906133c7565b60405180910390a35b612fcc818461324590919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ff257612ff1613f52565b5b6040519080825280602002602001820160405280156130205781602001602082028036833780820191505090505b50905030815f8151811061303757613036613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ff9190613fc0565b8160018151811061311357613112613f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131793060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fdd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131db9594939291906140db565b5f604051808303815f87803b1580156131f2575f80fd5b505af1158015613204573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613239929190614133565b60405180910390a15050565b5f61328683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612833565b905092915050565b5f80830361329e575f90506132ff565b5f82846132ab9190614161565b90508284826132ba91906141cf565b146132fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f19061426f565b60405180910390fd5b809150505b92915050565b5f61334683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061334e565b905092915050565b5f8083118290613394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338b919061346a565b60405180910390fd5b505f83856133a291906141cf565b9050809150509392505050565b5f819050919050565b6133c1816133af565b82525050565b5f6020820190506133da5f8301846133b8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134175780820151818401526020810190506133fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61343c826133e0565b61344681856133ea565b93506134568185602086016133fa565b61345f81613422565b840191505092915050565b5f6020820190508181035f8301526134828184613432565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6134cc6134c76134c28461348a565b6134a9565b61348a565b9050919050565b5f6134dd826134b2565b9050919050565b5f6134ee826134d3565b9050919050565b6134fe816134e4565b82525050565b5f6020820190506135175f8301846134f5565b92915050565b5f6135278261348a565b9050919050565b6135378161351d565b82525050565b5f6020820190506135505f83018461352e565b92915050565b5f80fd5b6135638161351d565b811461356d575f80fd5b50565b5f8135905061357e8161355a565b92915050565b61358d816133af565b8114613597575f80fd5b50565b5f813590506135a881613584565b92915050565b5f80604083850312156135c4576135c3613556565b5b5f6135d185828601613570565b92505060206135e28582860161359a565b9150509250929050565b5f8115159050919050565b613600816135ec565b82525050565b5f6020820190506136195f8301846135f7565b92915050565b5f805f6060848603121561363657613635613556565b5b5f61364386828701613570565b935050602061365486828701613570565b92505060406136658682870161359a565b9150509250925092565b5f60ff82169050919050565b6136848161366f565b82525050565b5f60208201905061369d5f83018461367b565b92915050565b5f602082840312156136b8576136b7613556565b5b5f6136c584828501613570565b91505092915050565b6136d7816135ec565b81146136e1575f80fd5b50565b5f813590506136f2816136ce565b92915050565b5f6020828403121561370d5761370c613556565b5b5f61371a848285016136e4565b91505092915050565b5f6020828403121561373857613737613556565b5b5f6137458482850161359a565b91505092915050565b5f806040838503121561376457613763613556565b5b5f61377185828601613570565b9250506020613782858286016136e4565b9150509250929050565b5f805f606084860312156137a3576137a2613556565b5b5f6137b08682870161359a565b93505060206137c1868287016136e4565b92505060406137d2868287016136e4565b9150509250925092565b5f80604083850312156137f2576137f1613556565b5b5f6137ff85828601613570565b925050602061381085828601613570565b9150509250929050565b5f80604083850312156138305761382f613556565b5b5f61383d8582860161359a565b925050602061384e8582860161359a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061389c57607f821691505b6020821081036138af576138ae613858565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138e96020836133ea565b91506138f4826138b5565b602082019050919050565b5f6020820190508181035f830152613916816138dd565b9050919050565b7f496e76616c69642043616c6c65720000000000000000000000000000000000005f82015250565b5f613951600e836133ea565b915061395c8261391d565b602082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f6139b9600e836133ea565b91506139c482613985565b602082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b5f604082019050613a005f83018561352e565b613a0d60208301846133b8565b9392505050565b5f81519050919050565b5f81905092915050565b5f613a3282613a14565b613a3c8185613a1e565b9350613a4c8185602086016133fa565b80840191505092915050565b5f613a638284613a28565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613aa26014836133ea565b9150613aad82613a6e565b602082019050919050565b5f6020820190508181035f830152613acf81613a96565b9050919050565b50565b5f613ae45f83613a1e565b9150613aef82613ad6565b5f82019050919050565b5f613b0382613ad9565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b416014836133ea565b9150613b4c82613b0d565b602082019050919050565b5f6020820190508181035f830152613b6e81613b35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bcf6026836133ea565b9150613bda82613b75565b604082019050919050565b5f6020820190508181035f830152613bfc81613bc3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c5d6024836133ea565b9150613c6882613c03565b604082019050919050565b5f6020820190508181035f830152613c8a81613c51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ceb6022836133ea565b9150613cf682613c91565b604082019050919050565b5f6020820190508181035f830152613d1881613cdf565b9050919050565b7f54726164696e67205061757365640000000000000000000000000000000000005f82015250565b5f613d53600e836133ea565b9150613d5e82613d1f565b602082019050919050565b5f6020820190508181035f830152613d8081613d47565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613dbb6013836133ea565b9150613dc682613d87565b602082019050919050565b5f6020820190508181035f830152613de881613daf565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613e23600e836133ea565b9150613e2e82613def565b602082019050919050565b5f6020820190508181035f830152613e5081613e17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e8e826133af565b9150613e99836133af565b9250828203905081811115613eb157613eb0613e57565b5b92915050565b5f613ec1826133af565b9150613ecc836133af565b9250828201905080821115613ee457613ee3613e57565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f1e601b836133ea565b9150613f2982613eea565b602082019050919050565b5f6020820190508181035f830152613f4b81613f12565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613fba8161355a565b92915050565b5f60208284031215613fd557613fd4613556565b5b5f613fe284828501613fac565b91505092915050565b5f819050919050565b5f61400e61400961400484613feb565b6134a9565b6133af565b9050919050565b61401e81613ff4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140568161351d565b82525050565b5f614067838361404d565b60208301905092915050565b5f602082019050919050565b5f61408982614024565b614093818561402e565b935061409e8361403e565b805f5b838110156140ce5781516140b5888261405c565b97506140c083614073565b9250506001810190506140a1565b5085935050505092915050565b5f60a0820190506140ee5f8301886133b8565b6140fb6020830187614015565b818103604083015261410d818661407f565b905061411c606083018561352e565b61412960808301846133b8565b9695505050505050565b5f6040820190506141465f8301856133b8565b8181036020830152614158818461407f565b90509392505050565b5f61416b826133af565b9150614176836133af565b9250828202614184816133af565b9150828204841483151761419b5761419a613e57565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141d9826133af565b91506141e4836133af565b9250826141f4576141f36141a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142596021836133ea565b9150614264826141ff565b604082019050919050565b5f6020820190508181035f8301526142868161424d565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d111076e51f92ec7986fa8cc11f913739fe7bc469cb50859ad20870c0adb8fba64736f6c63430008150033

Verified Source Code Partial Match

Compiler: v0.8.21+commit.d9974bed EVM: shanghai Optimization: No
Libra.sol 600 lines
/*
      
                   ██████                                        
   ██          ████  ██  ████          ██                        
     ██████████      ██      ██████████                          
       ██            ██            ██                            
     ██  ██          ██          ██  ██                          
   ██      ██        ██        ██      ██                        
 ██████████████      ██      ██████████████                      
   ██████████      ██████      ██████████                        
     ██████      ██████████      ██████                          
               ██████████████                                    
  
          __   _______  ___  ___ 
         / /  /  _/ _ )/ _ \/ _ |
        / /___/ // _  / , _/ __ |
       /____/___/____/_/|_/_/ |_|
                                 
TELEGRAM : https://t.me/librainu                                                                                                                      

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address _account) external view returns (uint256);
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract Libra is Context, IERC20, Ownable {

    using SafeMath for uint256;

    address public developmentWallet;
    
    string private _name = "Libra Inu";
    string private _symbol = unicode"⚖️";
    uint8 private _decimals = 18; 
    uint256 private _totalSupply = 1000_000_000 * 10**_decimals;
    uint256 public _maxTxAmount =  _totalSupply.mul(2).div(100);     // 2%
    uint256 public _walletMax = _totalSupply.mul(2).div(100);        // 2%
    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 public swapThreshold = _totalSupply.mul(1).div(100);

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    uint public buyTax = 25;
    uint public sellTax = 25;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool public tradingEnable; 
    uint256 public launchedAt;

    bool inSwap;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    modifier onlyGuard() {
        require(msg.sender == developmentWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        developmentWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory())
            .createPair(address(this), _dexRouter.WETH());

        dexRouter = _dexRouter;
        
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexPair)] = ~uint256(0);
        _allowances[address(this)][address(dexRouter)] = ~uint256(0);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if(!tradingEnable) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient], "Trading Paused"); 
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

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

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(buyTax).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(sellTax).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0)
            payable(developmentWallet).transfer(amountReceived);

    }


    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

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

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setBuyFee(uint _buySide, uint _sellSide) external onlyOwner {    
        buyTax = _buySide;
        sellTax = _sellSide;
    }

    function removeLimits() external onlyGuard {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnable, "Trade Enabled!");

        tradingEnable = true;
        launchedAt = block.timestamp;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

}

Read Contract

EnableTxLimit 0x5e42358c → bool
_maxTxAmount 0x7d1db4a5 → uint256
_walletMax 0x807c2d9c → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyTax 0x4f7041a5 → uint256
checkWalletLimit 0xf872858a → bool
deadAddress 0x27c8f835 → address
decimals 0x313ce567 → uint8
developmentWallet 0xc04a5414 → address
dexPair 0xf242ab41 → address
dexRouter 0x0758d924 → address
isExcludedFromFee 0x5342acb4 → bool
isMarketPair 0x3ecad271 → bool
isTxLimitExempt 0x8b42507f → bool
isWalletLimitExempt 0xc867d60b → bool
launchedAt 0xbf56b371 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellTax 0xcc1776d3 → uint256
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
swapbylimit 0xe9fd3394 → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingEnable 0x1693e8d4 → bool
zeroAddress 0x0930907b → address

Write Contract 22 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableTrading 0x8a8c523c
No parameters
enableTxLimit 0xee828db3
bool _status
enableWalletLimit 0x4974d88f
bool _status
excludeFromFee 0xdf8408fe
address _adr
bool _status
excludeTxLimit 0xae85ade6
address _adr
bool _status
excludeWalletLimit 0x651a8987
address _adr
bool _status
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
rescueFunds 0xe6b2603b
No parameters
rescueTokens 0xcea9d26f
address _token
address recipient
uint256 _amount
setBuyFee 0xfb0ecfa4
uint256 _buySide
uint256 _sellSide
setDevelopmentWallet 0x72ac2486
address _newWallet
setMarketPair 0xc16dd4a4
address _pair
bool _status
setMaxWalletLimit 0x728d41c9
uint256 newLimit
setSwapBackSettings 0xb94b0aef
uint256 _threshold
bool _enabled
bool _limited
setTxLimit 0x5c85974f
uint256 newLimit
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address