Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xcE5a7DB26F1dBaa299e825694A4620Edd6F14580
Balance 0 ETH
Nonce 1
Code Size 16928 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

16928 bytes
0x6080604052600436106102135760003560e01c806377b54bad11610118578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461078c578063df20fd49146107c9578063f2fde38b146107f2578063f42938901461081b578063f887ea40146108325761021a565b8063a9059cbb146106be578063b2bdfa7b146106fb578063c0cbdea414610726578063dd62ed3e1461074f5761021a565b8063893d20e8116100e7578063893d20e8146105fb5780638da5cb5b1461062657806395d89b4114610651578063a70419d21461067c578063a8aa1b31146106935761021a565b806377b54bad1461053f57806378109e541461057c5780637d1db4a5146105a757806382528791146105d25761021a565b806330c9a6a01161019b5780635d83e1d51161016a5780635d83e1d5146104805780636ddd1713146104a957806370a08231146104d4578063715018a614610511578063751039fc146105285761021a565b806330c9a6a0146103b0578063313ce567146103ed5780635526566914610418578063571ac8b0146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631df4ccfc1461030857806323b872dd14610333578063282c874914610370578063293230b8146103995761021a565b80630445b6671461021f57806306fdde031461024a57806308fd3d0514610275578063095ea7b3146102a05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461085d565b6040516102419190613318565b60405180910390f35b34801561025657600080fd5b5061025f610863565b60405161026c91906133c3565b60405180910390f35b34801561028157600080fd5b5061028a6108a0565b6040516102979190613400565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c291906134aa565b6108b3565b6040516102d49190613400565b60405180910390f35b3480156102e957600080fd5b506102f26109a5565b6040516102ff9190613318565b60405180910390f35b34801561031457600080fd5b5061031d6109af565b60405161032a9190613318565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906134ea565b6109b5565b6040516103679190613400565b60405180910390f35b34801561037c57600080fd5b506103976004803603810190610392919061353d565b610bb5565b005b3480156103a557600080fd5b506103ae610d25565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906135ca565b610df2565b6040516103e49190613318565b60405180910390f35b3480156103f957600080fd5b50610402610e64565b60405161040f9190613613565b60405180910390f35b34801561042457600080fd5b5061042d610e6d565b60405161043a9190613318565b60405180910390f35b34801561044f57600080fd5b5061046a6004803603810190610465919061362e565b610eae565b6040516104779190613400565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a291906135ca565b610ee1565b005b3480156104b557600080fd5b506104be610fe1565b6040516104cb9190613400565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f6919061362e565b610ff4565b6040516105089190613318565b60405180910390f35b34801561051d57600080fd5b5061052661103d565b005b34801561053457600080fd5b5061053d611190565b005b34801561054b57600080fd5b50610566600480360381019061056191906134aa565b611239565b6040516105739190613400565b60405180910390f35b34801561058857600080fd5b506105916113a0565b60405161059e9190613318565b60405180910390f35b3480156105b357600080fd5b506105bc6113a6565b6040516105c99190613318565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f4919061365b565b6113ac565b005b34801561060757600080fd5b50610610611652565b60405161061d91906136e5565b60405180910390f35b34801561063257600080fd5b5061063b611661565b60405161064891906136e5565b60405180910390f35b34801561065d57600080fd5b5061066661168a565b60405161067391906133c3565b60405180910390f35b34801561068857600080fd5b506106916116c7565b005b34801561069f57600080fd5b506106a8611776565b6040516106b591906136e5565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e091906134aa565b61179c565b6040516106f29190613400565b60405180910390f35b34801561070757600080fd5b506107106117b1565b60405161071d91906136e5565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190613700565b6117d5565b005b34801561075b57600080fd5b5061077660048036038101906107719190613753565b611884565b6040516107839190613318565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190613793565b61190b565b6040516107c09190613400565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb91906137ff565b611920565b005b3480156107fe57600080fd5b506108196004803603810190610814919061362e565b611a24565b005b34801561082757600080fd5b50610830611be5565b005b34801561083e57600080fd5b50610847611c50565b604051610854919061389e565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f48756820636f696e000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109939190613318565b60405180910390a36001905092915050565b6000600354905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba157610b20826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3a9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bac848484611d9e565b90509392505050565b610bbd6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613905565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610cb682610ca885610c9a88610c8c8b8d6123fe90919063ffffffff16565b6123fe90919063ffffffff16565b6123fe90919063ffffffff16565b6123fe90919063ffffffff16565b600f81905550806010819055506002601054610cd29190613983565b600f5410610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90613a00565b60405180910390fd5b610d1d61245c565b505050505050565b610d2d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613905565b60405180910390fd5b6001601d60146101000a81548160ff0219169083151502179055506105786012819055506103206011819055506103e8601381905550565b6000610e5d610dff610e6d565b610e4f610e406002610e32601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ff4565b611c7690919063ffffffff16565b85611c7690919063ffffffff16565b611cf090919063ffffffff16565b9050919050565b60006012905090565b6000610ea9610e7c6000610ff4565b610e9b610e8a61dead610ff4565b60035461251490919063ffffffff16565b61251490919063ffffffff16565b905090565b6000610eda827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b3565b9050919050565b610ee96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d90613905565b60405180910390fd5b6001811015610f8457600080fd5b6103e881600354610f959190613a20565b610f9f9190613983565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610fd69190613318565b60405180910390a150565b601d60159054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110456123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990613905565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111986123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90613905565b60405180910390fd5b600354600481905550600354600581905550565b60008082036112bf578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161127b91906136e5565b602060405180830381865afa158015611298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bc9190613a77565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112f0929190613aa4565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611355929190613aa4565b6020604051808303816000875af1158015611374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113989190613ae2565b905092915050565b60055481565b60045481565b6113b46123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143890613905565b60405180910390fd5b84601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516116439493929190613b0f565b60405180910390a15050505050565b600061165c611661565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4855480000000000000000000000000000000000000000000000000000000000815250905090565b6116cf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613905565b60405180910390fd5b606460128190555060646011819055506064601381905550565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117a9338484611d9e565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117dd6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186190613905565b60405180910390fd5b816011819055508260128190555080601381905550505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008261191783610df2565b11905092915050565b6119286123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac90613905565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff16604051611a18929190613b54565b60405180910390a15050565b611a2c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090613905565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1f90613bef565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c4d573d6000803e3d6000fd5b50565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611c885760009050611cea565b60008284611c969190613a20565b9050828482611ca59190613983565b14611ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdc90613c81565b60405180910390fd5b809150505b92915050565b6000611d3283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061255e565b905092915050565b6000838311158290611d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7991906133c3565b60405180910390fd5b5060008385611d919190613ca1565b9050809150509392505050565b6000601f60009054906101000a900460ff1615611dc757611dc08484846125c1565b90506123ef565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e6b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ec057601d60149054906101000a900460ff16611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613d21565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f4657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f80575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fda5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120345750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561208e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120e45750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121485760006120f484610ff4565b905060055483826121059190613d41565b1115612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213d90613de7565b60405180910390fd5b505b6121528483612794565b61215a612831565b1561216857612167612908565b5b6121f1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122d75750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6122eb576122e6858486612f2f565b6122ed565b825b905061234181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fe90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123e19190613318565b60405180910390a360019150505b9392505050565b600033905090565b600080828461240d9190613d41565b905083811015612452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244990613e53565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124a76064612499601254600f54611c7690919063ffffffff16565b611cf090919063ffffffff16565b6124d160646124c3601154600f54611c7690919063ffffffff16565b611cf090919063ffffffff16565b6124fb60646124ed601354600f54611c7690919063ffffffff16565b611cf090919063ffffffff16565b60405161250a93929190613e73565b60405180910390a1565b600061255683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d3a565b905092915050565b600080831182906125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259c91906133c3565b60405180910390fd5b50600083856125b49190613983565b9050809150509392505050565b600061264c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3a9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fe90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127819190613318565b60405180910390a3600190509392505050565b600454811115806127ee5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61282d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282490613ef6565b60405180910390fd5b5050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561289e5750601f60009054906101000a900460ff16155b80156128b65750601d60159054906101000a900460ff165b80156129035750601e54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60006101000a81548160ff0219169083151502179055506000612933601954601a5461190b565b61293f57600a54612942565b60005b905060006129826002612974600f5461296686601e54611c7690919063ffffffff16565b611cf090919063ffffffff16565b611cf090919063ffffffff16565b9050600061299b82601e5461251490919063ffffffff16565b90506000600267ffffffffffffffff8111156129ba576129b9613f16565b5b6040519080825280602002602001820160405280156129e85781602001602082028036833780820191505090505b5090503081600081518110612a00576129ff613f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612a7157612a70613f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612b1495949392919061406d565b600060405180830381600087803b158015612b2e57600080fd5b505af1158015612b42573d6000803e3d6000fd5b505050506000612b5b824761251490919063ffffffff16565b90506000612b87612b76600289611cf090919063ffffffff16565b600f5461251490919063ffffffff16565b90506000612bc36002612bb584612ba78c88611c7690919063ffffffff16565b611cf090919063ffffffff16565b611cf090919063ffffffff16565b90506000612bee83612be0600b5487611c7690919063ffffffff16565b611cf090919063ffffffff16565b90506000612c1984612c0b600d5488611c7690919063ffffffff16565b611cf090919063ffffffff16565b90506000612c4485612c36600c5489611c7690919063ffffffff16565b611cf090919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612c8e906140f8565b60006040518083038185875af1925050503d8060008114612ccb576040519150601f19603f3d011682016040523d82523d6000602084013e612cd0565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d1a906140f8565b60006040518083038185875af1925050503d8060008114612d57576040519150601f19603f3d011682016040523d82523d6000602084013e612d5c565b606091505b505080915050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612da8906140f8565b60006040518083038185875af1925050503d8060008114612de5576040519150601f19603f3d011682016040523d82523d6000602084013e612dea565b606091505b5050809150506000905060008b1115612f0657601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e869695949392919061410d565b60606040518083038185885af1158015612ea4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ec9919061416e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612efd9291906141c1565b60405180910390a15b5050505050505050505050506000601f60006101000a81548160ff021916908315150217905550565b6000806013549050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f96576011549050612ff2565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612ff15760125490505b5b600061303b60646010546130069190613a20565b61302d8461301f600f548a611c7690919063ffffffff16565b611c7690919063ffffffff16565b611cf090919063ffffffff16565b90506000613068600f5461305a600e5485611c7690919063ffffffff16565b611cf090919063ffffffff16565b9050600061307f828461251490919063ffffffff16565b90506130d381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fe90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061318a8260066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fe90919063ffffffff16565b60066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161324c9190613318565b60405180910390a360008211156132df576132728260035461251490919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132d69190613318565b60405180910390a35b6132f2838861251490919063ffffffff16565b9450505050509392505050565b6000819050919050565b613312816132ff565b82525050565b600060208201905061332d6000830184613309565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561336d578082015181840152602081019050613352565b60008484015250505050565b6000601f19601f8301169050919050565b600061339582613333565b61339f818561333e565b93506133af81856020860161334f565b6133b881613379565b840191505092915050565b600060208201905081810360008301526133dd818461338a565b905092915050565b60008115159050919050565b6133fa816133e5565b82525050565b600060208201905061341560008301846133f1565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061344b82613420565b9050919050565b61345b81613440565b811461346657600080fd5b50565b60008135905061347881613452565b92915050565b613487816132ff565b811461349257600080fd5b50565b6000813590506134a48161347e565b92915050565b600080604083850312156134c1576134c061341b565b5b60006134cf85828601613469565b92505060206134e085828601613495565b9150509250929050565b6000806000606084860312156135035761350261341b565b5b600061351186828701613469565b935050602061352286828701613469565b925050604061353386828701613495565b9150509250925092565b60008060008060008060c0878903121561355a5761355961341b565b5b600061356889828a01613495565b965050602061357989828a01613495565b955050604061358a89828a01613495565b945050606061359b89828a01613495565b93505060806135ac89828a01613495565b92505060a06135bd89828a01613495565b9150509295509295509295565b6000602082840312156135e0576135df61341b565b5b60006135ee84828501613495565b91505092915050565b600060ff82169050919050565b61360d816135f7565b82525050565b60006020820190506136286000830184613604565b92915050565b6000602082840312156136445761364361341b565b5b600061365284828501613469565b91505092915050565b600080600080600060a086880312156136775761367661341b565b5b600061368588828901613469565b955050602061369688828901613469565b94505060406136a788828901613469565b93505060606136b888828901613469565b92505060806136c988828901613469565b9150509295509295909350565b6136df81613440565b82525050565b60006020820190506136fa60008301846136d6565b92915050565b6000806000606084860312156137195761371861341b565b5b600061372786828701613495565b935050602061373886828701613495565b925050604061374986828701613495565b9150509250925092565b6000806040838503121561376a5761376961341b565b5b600061377885828601613469565b925050602061378985828601613469565b9150509250929050565b600080604083850312156137aa576137a961341b565b5b60006137b885828601613495565b92505060206137c985828601613495565b9150509250929050565b6137dc816133e5565b81146137e757600080fd5b50565b6000813590506137f9816137d3565b92915050565b600080604083850312156138165761381561341b565b5b6000613824858286016137ea565b925050602061383585828601613495565b9150509250929050565b6000819050919050565b600061386461385f61385a84613420565b61383f565b613420565b9050919050565b600061387682613849565b9050919050565b60006138888261386b565b9050919050565b6138988161387d565b82525050565b60006020820190506138b3600083018461388f565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ef60208361333e565b91506138fa826138b9565b602082019050919050565b6000602082019050818103600083015261391e816138e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061398e826132ff565b9150613999836132ff565b9250826139a9576139a8613925565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20353025000000600082015250565b60006139ea601d8361333e565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b6000613a2b826132ff565b9150613a36836132ff565b9250828202613a44816132ff565b91508282048414831517613a5b57613a5a613954565b5b5092915050565b600081519050613a718161347e565b92915050565b600060208284031215613a8d57613a8c61341b565b5b6000613a9b84828501613a62565b91505092915050565b6000604082019050613ab960008301856136d6565b613ac66020830184613309565b9392505050565b600081519050613adc816137d3565b92915050565b600060208284031215613af857613af761341b565b5b6000613b0684828501613acd565b91505092915050565b6000608082019050613b2460008301876136d6565b613b3160208301866136d6565b613b3e60408301856136d6565b613b4b60608301846136d6565b95945050505050565b6000604082019050613b696000830185613309565b613b7660208301846133f1565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bd960268361333e565b9150613be482613b7d565b604082019050919050565b60006020820190508181036000830152613c0881613bcc565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c6b60218361333e565b9150613c7682613c0f565b604082019050919050565b60006020820190508181036000830152613c9a81613c5e565b9050919050565b6000613cac826132ff565b9150613cb7836132ff565b9250828203905081811115613ccf57613cce613954565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000613d0b60148361333e565b9150613d1682613cd5565b602082019050919050565b60006020820190508181036000830152613d3a81613cfe565b9050919050565b6000613d4c826132ff565b9150613d57836132ff565b9250828201905080821115613d6f57613d6e613954565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613dd1603e8361333e565b9150613ddc82613d75565b604082019050919050565b60006020820190508181036000830152613e0081613dc4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e3d601b8361333e565b9150613e4882613e07565b602082019050919050565b60006020820190508181036000830152613e6c81613e30565b9050919050565b6000606082019050613e886000830186613604565b613e956020830185613604565b613ea26040830184613604565b949350505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613ee060118361333e565b9150613eeb82613eaa565b602082019050919050565b60006020820190508181036000830152613f0f81613ed3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613f99613f94613f8f84613f74565b61383f565b6132ff565b9050919050565b613fa981613f7e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fe481613440565b82525050565b6000613ff68383613fdb565b60208301905092915050565b6000602082019050919050565b600061401a82613faf565b6140248185613fba565b935061402f83613fcb565b8060005b838110156140605781516140478882613fea565b975061405283614002565b925050600181019050614033565b5085935050505092915050565b600060a0820190506140826000830188613309565b61408f6020830187613fa0565b81810360408301526140a1818661400f565b90506140b060608301856136d6565b6140bd6080830184613309565b9695505050505050565b600081905092915050565b50565b60006140e26000836140c7565b91506140ed826140d2565b600082019050919050565b6000614103826140d5565b9150819050919050565b600060c08201905061412260008301896136d6565b61412f6020830188613309565b61413c6040830187613fa0565b6141496060830186613fa0565b61415660808301856136d6565b61416360a0830184613309565b979650505050505050565b6000806000606084860312156141875761418661341b565b5b600061419586828701613a62565b93505060206141a686828701613a62565b92505060406141b786828701613a62565b9150509250925092565b60006040820190506141d66000830185613309565b6141e36020830184613309565b939250505056fea26469706673582212205b5eee72389f5e22f89c6db63be1dafa9eaed7ccf8ff7b4629d95579a5726b6464736f6c63430008120033

Verified Source Code Partial Match

Compiler: v0.8.18+commit.87f61d96 EVM: paris Optimization: No
huh.sol 523 lines
//    ██   ██ ██    ██ ██   ██
//    ██   ██ ██    ██ ██   ██
//    ███████ ██    ██ ███████
//    ██   ██ ██    ██ ██   ██
//    ██   ██  ██████  ██   ██

// SPDX-License-Identifier: MIT
// huh
// https://twitter.com/huhcoineth
// https://www.huhcoin.xyz/
// https://t.me/huhcoineth

//



pragma solidity 0.8.18;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}



abstract contract Context {

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

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

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}


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;
        return c;
    }
}

contract huh is Ownable, ERC20 {
    using SafeMath for uint256;

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


    string constant _name = "Huh coin";
    string constant _symbol = "HUH";
    uint8 constant _decimals = 18;


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =   420690000 * 10**_decimals;

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

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isexemptfromfees;
    mapping (address => bool) isexemptfrommaxTX;

    uint256 private liquidityFee    = 2;
    uint256 private marketingFee    = 0;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 2;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100;

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

   
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 7 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function maxWalletRule(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxWallet(_maxWalletToken);
                
    }

      function removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }

      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
          }
        
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        checkTxLimit(sender, amount);  

        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isexemptfromfees[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

  
     function manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);
            
    }

   function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function startTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 1400;
        sellpercent = 800;
        transferpercent = 1000;
                              
    }

      function reduceFee() public onlyOwner {
       
        buypercent = 100;
        sellpercent = 100;
        transferpercent = 100;
                              
    }

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }
    
    function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
        set_fees();
    }

   
    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit set_SwapBack(swapThreshold, swapEnabled);
    }

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

Read Contract

TradingOpen 0x08fd3d05 → bool
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletToken 0x78109e54 → uint256
_owner 0xb2bdfa7b → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
checkRatio 0xded1e438 → bool
decimals 0x313ce567 → uint8
getOwner 0x893d20e8 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
showBacking 0x30c9a6a0 → uint256
showSupply 0x55265669 → uint256
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalFee 0x1df4ccfc → uint256
totalSupply 0x18160ddd → uint256

Write Contract 16 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
clearStuckToken 0x77b54bad
address tokenAddress
uint256 tokens
returns: bool
manualSend 0xf4293890
No parameters
maxWalletRule 0x5d83e1d5
uint256 maxWallPercent
reduceFee 0xa70419d2
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
setParameters 0x282c8749
uint256 _liquidityFee
uint256 _buybackFee
uint256 _marketingFee
uint256 _devFee
uint256 _burnFee
uint256 _feeDenominator
setStructure 0xc0cbdea4
uint256 _percentonbuy
uint256 _percentonsell
uint256 _wallettransfer
setSwapBackSettings 0xdf20fd49
bool _enabled
uint256 _amount
setWallets 0x82528791
address _autoLiquidityReceiver
address _marketingFeeReceiver
address _devFeeReceiver
address _burnFeeReceiver
address _buybackFeeReceiver
startTrading 0x293230b8
No parameters
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