Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x9b3D9850DE674755E08A06F14BE6DCAad05B285a
Balance 0 ETH
Nonce 1
Code Size 17676 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

17676 bytes
0x6080604052600436106102345760003560e01c80637bae52e11161012e578063b2bdfa7b116100ab578063d51ed1c81161006f578063d51ed1c814610836578063d78e139d14610873578063dd62ed3e1461089c578063f6a78e17146108d9578063f887ea40146108f05761023b565b8063b2bdfa7b14610779578063bc337182146107a4578063ccf8c036146107cd578063cec10c11146107f6578063d148b74c1461081f5761023b565b806395d89b41116100f257806395d89b41146106945780639acb773e146106bf5780639f11080e146106e8578063a8aa1b3114610711578063a9059cbb1461073c5761023b565b80637bae52e1146105c15780637d1db4a5146105ea578063893d20e8146106155780638da5cb5b14610640578063918924761461066b5761023b565b806323b872dd116101bc5780636ddd1713116101805780636ddd1713146104da57806370a0823114610505578063715018a61461054257806377b54bad1461055957806378109e54146105965761023b565b806323b872dd146103f55780632b112e4914610432578063313ce5671461045d5780635b24ea5e146104885780635d0044ca146104b15761023b565b806308fd3d051161020357806308fd3d05146102fc578063095ea7b3146103275780631161ae3914610364578063153590cd146103a157806318160ddd146103ca5761023b565b806304368f65146102405780630445b667146102695780630621472c1461029457806306fdde03146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613682565b61091b565b005b34801561027557600080fd5b5061027e6109d5565b60405161028b91906136d1565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061374a565b6109db565b6040516102c89190613786565b60405180910390f35b3480156102dd57600080fd5b506102e6610a0e565b6040516102f39190613831565b60405180910390f35b34801561030857600080fd5b50610311610a4b565b60405161031e9190613786565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613853565b610a5e565b60405161035b9190613786565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190613893565b610b50565b6040516103989190613786565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906138d3565b610b65565b005b3480156103d657600080fd5b506103df610c2f565b6040516103ec91906136d1565b60405180910390f35b34801561040157600080fd5b5061041c6004803603810190610417919061393a565b610c39565b6040516104299190613786565b60405180910390f35b34801561043e57600080fd5b50610447610e39565b60405161045491906136d1565b60405180910390f35b34801561046957600080fd5b50610472610ebb565b60405161047f91906139a9565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906139c4565b610ec4565b005b3480156104bd57600080fd5b506104d860048036038101906104d39190613a04565b610fb4565b005b3480156104e657600080fd5b506104ef61108b565b6040516104fc9190613786565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061374a565b61109e565b60405161053991906136d1565b60405180910390f35b34801561054e57600080fd5b506105576110e7565b005b34801561056557600080fd5b50610580600480360381019061057b9190613853565b61123a565b60405161058d9190613786565b60405180910390f35b3480156105a257600080fd5b506105ab61139d565b6040516105b891906136d1565b60405180910390f35b3480156105cd57600080fd5b506105e860048036038101906105e39190613a31565b6113a3565b005b3480156105f657600080fd5b506105ff611584565b60405161060c91906136d1565b60405180910390f35b34801561062157600080fd5b5061062a61158a565b6040516106379190613abb565b60405180910390f35b34801561064c57600080fd5b50610655611599565b6040516106629190613abb565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d9190613ad6565b6115c2565b005b3480156106a057600080fd5b506106a961172a565b6040516106b69190613831565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e191906139c4565b611767565b005b3480156106f457600080fd5b5061070f600480360381019061070a9190613893565b611857565b005b34801561071d57600080fd5b506107266118fe565b6040516107339190613abb565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190613853565b611924565b6040516107709190613786565b60405180910390f35b34801561078557600080fd5b5061078e611939565b60405161079b9190613abb565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190613a04565b61195d565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906139c4565b611a34565b005b34801561080257600080fd5b5061081d60048036038101906108189190613b63565b611b7b565b005b34801561082b57600080fd5b50610834611c2a565b005b34801561084257600080fd5b5061085d60048036038101906108589190613a04565b611cc9565b60405161086a91906136d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613a04565b611d3b565b005b3480156108a857600080fd5b506108c360048036038101906108be9190613bb6565b611dc4565b6040516108d091906136d1565b60405180910390f35b3480156108e557600080fd5b506108ee611e4b565b005b3480156108fc57600080fd5b50610905611ef4565b6040516109129190613c55565b60405180910390f35b610923611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790613cbc565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610a07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a5e565b9050919050565b60606040518060400160405280601a81526020017f4761732053746174696f6e20426f6e65722050696c6c20494e55000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3e91906136d1565b60405180910390a36001905092915050565b600082610b5c83611cc9565b11905092915050565b610b6d611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613cbc565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e2557610da4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e3084848461204a565b90509392505050565b6000610eb6610e69600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b610ea8610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b6005546127a590919063ffffffff16565b6127a590919063ffffffff16565b905090565b60006009905090565b610ecc611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090613cbc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610fbc611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090613cbc565b60405180910390fd5b6103e86005546110599190613d3a565b600754101561106757600080fd5b6103e8816005546110789190613d6b565b6110829190613d3a565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ef611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613cbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661129257600080fd5b60008203611317578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112d39190613abb565b602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190613dc2565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611352929190613def565b6020604051808303816000875af1158015611371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113959190613e2d565b905092915050565b60075481565b6113ab611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90613cbc565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b6000611594611599565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115ca611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164e90613cbc565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506116c3826116b5856116a7886116998b8d6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6012819055508060138190555060036013546116df9190613d3a565b60125410611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990613ea6565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f47494e5500000000000000000000000000000000000000000000000000000000815250905090565b61176f611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613cbc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61185f611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e390613cbc565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061193133848461204a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611965611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613cbc565b60405180910390fd5b6103e8600554611a029190613d3a565b6006541015611a1057600080fd5b6103e881600554611a219190613d6b565b611a2b9190613d3a565b60068190555050565b611a3c611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090613cbc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611b83611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613cbc565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611c32611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb690613cbc565b60405180910390fd5b611cc761284d565b565b6000611d34611cd6610e39565b611d26611d176002611d09602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b611f1a90919063ffffffff16565b85611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611d8a9190613d6b565b611d949190613d3a565b9081150290604051600060405180830381858888f19350505050158015611dbf573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e53611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613cbc565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611f2c5760009050611f8e565b60008284611f3a9190613d6b565b9050828482611f499190613d3a565b14611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8090613f38565b60405180910390fd5b809150505b92915050565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e74565b905092915050565b600033905090565b600083831115829061202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120259190613831565b60405180910390fd5b506000838561203d9190613f58565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613fd8565b60405180910390fd5b602560009054906101000a900460ff16156121565761214f848484612ed7565b905061279e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121fa5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561224f57602360149054906101000a900460ff1661224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590614044565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123895750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123e35750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561243d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124935750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124f75760006124a38461109e565b905060075483826124b49190614064565b11156124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec9061410a565b60405180910390fd5b505b61250184836130aa565b612509613147565b156125175761251661284d565b5b6125a0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126865750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269a5761269585848661321e565b61269c565b825b90506126f081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091906136d1565b60405180910390a360019150505b9392505050565b60006127e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe6565b905092915050565b60008082846127fe9190614064565b905083811015612843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283a90614176565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612878601f54602054610b50565b61288457600d54612887565b60005b905060006128c760026128b96012546128ab86602454611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b905060006128e0826024546127a590919063ffffffff16565b90506000600267ffffffffffffffff8111156128ff576128fe614196565b5b60405190808252806020026020018201604052801561292d5781602001602082028036833780820191505090505b5090503081600081518110612945576129446141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b6576129b56141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612a599594939291906142ed565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b505050506000612aa082476127a590919063ffffffff16565b90506000612acc612abb600289611f9490919063ffffffff16565b6012546127a590919063ffffffff16565b90506000612b086002612afa84612aec8c88611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b90506000612b3383612b25600e5487611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b5e84612b5060105488611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b8985612b7b600f5489611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612bd390614378565b60006040518083038185875af1925050503d8060008114612c10576040519150601f19603f3d011682016040523d82523d6000602084013e612c15565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c5f90614378565b60006040518083038185875af1925050503d8060008114612c9c576040519150601f19603f3d011682016040523d82523d6000602084013e612ca1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ced90614378565b60006040518083038185875af1925050503d8060008114612d2a576040519150601f19603f3d011682016040523d82523d6000602084013e612d2f565b606091505b5050809150506000905060008b1115612e4b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612dcb9695949392919061438d565b60606040518083038185885af1158015612de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0e91906143ee565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612e42929190614441565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083118290612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29190613831565b60405180910390fd5b5060008385612eca9190613d3a565b9050809150509392505050565b6000612f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161309791906136d1565b60405180910390a3600190509392505050565b600654811115806131045750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313a906144b6565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602560009054906101000a900460ff16155b80156131cc5750602360159054906101000a900460ff165b80156132195750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132855760145490506132e1565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036132e05760155490505b5b600061332a60646013546132f59190613d6b565b61331c8461330e6012548a611f1a90919063ffffffff16565b611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061335760125461334960115485611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061336e82846127a590919063ffffffff16565b90506133c281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134798260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161353b91906136d1565b60405180910390a360008211156135ef57613561826005546127a590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135e691906136d1565b60405180910390a35b61360283886127a590919063ffffffff16565b9450505050509392505050565b600080fd5b60008115159050919050565b61362981613614565b811461363457600080fd5b50565b60008135905061364681613620565b92915050565b6000819050919050565b61365f8161364c565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b600080604083850312156136995761369861360f565b5b60006136a785828601613637565b92505060206136b88582860161366d565b9150509250929050565b6136cb8161364c565b82525050565b60006020820190506136e660008301846136c2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613717826136ec565b9050919050565b6137278161370c565b811461373257600080fd5b50565b6000813590506137448161371e565b92915050565b6000602082840312156137605761375f61360f565b5b600061376e84828501613735565b91505092915050565b61378081613614565b82525050565b600060208201905061379b6000830184613777565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137db5780820151818401526020810190506137c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613803826137a1565b61380d81856137ac565b935061381d8185602086016137bd565b613826816137e7565b840191505092915050565b6000602082019050818103600083015261384b81846137f8565b905092915050565b6000806040838503121561386a5761386961360f565b5b600061387885828601613735565b92505060206138898582860161366d565b9150509250929050565b600080604083850312156138aa576138a961360f565b5b60006138b88582860161366d565b92505060206138c98582860161366d565b9150509250929050565b600080600080608085870312156138ed576138ec61360f565b5b60006138fb87828801613637565b945050602061390c8782880161366d565b935050604061391d8782880161366d565b925050606061392e8782880161366d565b91505092959194509250565b6000806000606084860312156139535761395261360f565b5b600061396186828701613735565b935050602061397286828701613735565b92505060406139838682870161366d565b9150509250925092565b600060ff82169050919050565b6139a38161398d565b82525050565b60006020820190506139be600083018461399a565b92915050565b600080604083850312156139db576139da61360f565b5b60006139e985828601613735565b92505060206139fa85828601613637565b9150509250929050565b600060208284031215613a1a57613a1961360f565b5b6000613a288482850161366d565b91505092915050565b600080600080600060a08688031215613a4d57613a4c61360f565b5b6000613a5b88828901613735565b9550506020613a6c88828901613735565b9450506040613a7d88828901613735565b9350506060613a8e88828901613735565b9250506080613a9f88828901613735565b9150509295509295909350565b613ab58161370c565b82525050565b6000602082019050613ad06000830184613aac565b92915050565b60008060008060008060c08789031215613af357613af261360f565b5b6000613b0189828a0161366d565b9650506020613b1289828a0161366d565b9550506040613b2389828a0161366d565b9450506060613b3489828a0161366d565b9350506080613b4589828a0161366d565b92505060a0613b5689828a0161366d565b9150509295509295509295565b600080600060608486031215613b7c57613b7b61360f565b5b6000613b8a8682870161366d565b9350506020613b9b8682870161366d565b9250506040613bac8682870161366d565b9150509250925092565b60008060408385031215613bcd57613bcc61360f565b5b6000613bdb85828601613735565b9250506020613bec85828601613735565b9150509250929050565b6000819050919050565b6000613c1b613c16613c11846136ec565b613bf6565b6136ec565b9050919050565b6000613c2d82613c00565b9050919050565b6000613c3f82613c22565b9050919050565b613c4f81613c34565b82525050565b6000602082019050613c6a6000830184613c46565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ca66020836137ac565b9150613cb182613c70565b602082019050919050565b60006020820190508181036000830152613cd581613c99565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d458261364c565b9150613d508361364c565b925082613d6057613d5f613cdc565b5b828204905092915050565b6000613d768261364c565b9150613d818361364c565b9250828202613d8f8161364c565b91508282048414831517613da657613da5613d0b565b5b5092915050565b600081519050613dbc81613656565b92915050565b600060208284031215613dd857613dd761360f565b5b6000613de684828501613dad565b91505092915050565b6000604082019050613e046000830185613aac565b613e1160208301846136c2565b9392505050565b600081519050613e2781613620565b92915050565b600060208284031215613e4357613e4261360f565b5b6000613e5184828501613e18565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20333025000000600082015250565b6000613e90601d836137ac565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f226021836137ac565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b6000613f638261364c565b9150613f6e8361364c565b9250828203905081811115613f8657613f85613d0b565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000613fc2600d836137ac565b9150613fcd82613f8c565b602082019050919050565b60006020820190508181036000830152613ff181613fb5565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061402e6014836137ac565b915061403982613ff8565b602082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b600061406f8261364c565b915061407a8361364c565b925082820190508082111561409257614091613d0b565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006140f4603e836137ac565b91506140ff82614098565b604082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614160601b836137ac565b915061416b8261412a565b602082019050919050565b6000602082019050818103600083015261418f81614153565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061421961421461420f846141f4565b613bf6565b61364c565b9050919050565b614229816141fe565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142648161370c565b82525050565b6000614276838361425b565b60208301905092915050565b6000602082019050919050565b600061429a8261422f565b6142a4818561423a565b93506142af8361424b565b8060005b838110156142e05781516142c7888261426a565b97506142d283614282565b9250506001810190506142b3565b5085935050505092915050565b600060a08201905061430260008301886136c2565b61430f6020830187614220565b8181036040830152614321818661428f565b90506143306060830185613aac565b61433d60808301846136c2565b9695505050505050565b600081905092915050565b50565b6000614362600083614347565b915061436d82614352565b600082019050919050565b600061438382614355565b9150819050919050565b600060c0820190506143a26000830189613aac565b6143af60208301886136c2565b6143bc6040830187614220565b6143c96060830186614220565b6143d66080830185613aac565b6143e360a08301846136c2565b979650505050505050565b6000806000606084860312156144075761440661360f565b5b600061441586828701613dad565b935050602061442686828701613dad565b925050604061443786828701613dad565b9150509250925092565b600060408201905061445660008301856136c2565b61446360208301846136c2565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006144a06011836137ac565b91506144ab8261446a565b602082019050919050565b600060208201905081810360008301526144cf81614493565b905091905056fea2646970667358221220954e6f4c604b0223bd27d371d2781f3ad8828dd83fa7880b03cb0457ab7dec8564736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: No
GINU.sol 511 lines
// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

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

    string constant _name = "Gas Station Boner Pill INU";
    string constant _symbol = "GINU";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;

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

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

    
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private _isBlacklisted;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 0;
    uint256 private utilityFee      = 0;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 1;
    uint256 private totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 850 / 10000; 
    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;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        utilityFeeReceiver = msg.sender;
        teamFeeReceiver = 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 approveAll(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 setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTx(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

        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 && !isTxLimitExempt[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 = (isFeeExempt[sender] || isFeeExempt[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 || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).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 clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(utilityFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function swapback() external onlyOwner {
           swapBack();
    
    }

    function removeMaxLimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function enableTrading12(bool _open, uint256 _buyMultiplier, uint256 _sellMultiplier, uint256 _transferMultiplier) public onlyOwner {
        TradingOpen = _open;
        buyMultiplier = _buyMultiplier;
        sellMultiplier = _sellMultiplier;
        transferMultiplier = _transferMultiplier;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 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 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function exemptAll(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

    function setTXExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 3, "Fees can not be more than 30%"); 
    }

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargets(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Read Contract

TradingOpen 0x08fd3d05 → bool
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletToken 0x78109e54 → uint256
_owner 0xb2bdfa7b → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getCirculatingSupply 0x2b112e49 → uint256
getLiquidityBacking 0xd51ed1c8 → uint256
getOwner 0x893d20e8 → address
isOverLiquified 0x1161ae39 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 20 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveAll 0x0621472c
address spender
returns: bool
clearStuckETH 0xd78e139d
uint256 amountPercentage
clearStuckToken 0x77b54bad
address tokenAddress
uint256 tokens
returns: bool
editSwapbackSettings 0x04368f65
bool _enabled
uint256 _amount
enableTrading12 0x153590cd
bool _open
uint256 _buyMultiplier
uint256 _sellMultiplier
uint256 _transferMultiplier
exemptAll 0xccf8c036
address holder
bool exempt
removeMaxLimits 0xf6a78e17
No parameters
renounceOwnership 0x715018a6
No parameters
setFees 0xcec10c11
uint256 _buy
uint256 _sell
uint256 _trans
setMaxTx 0xbc337182
uint256 maxTXPercent
setMaxWallet 0x5d0044ca
uint256 maxWallPercent
setTXExempt 0x9acb773e
address holder
bool exempt
setTargets 0x9f11080e
uint256 _target
uint256 _denominator
swapback 0xd148b74c
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
updateIsBlacklisted 0x5b24ea5e
address account
bool state
updateReceiverWallets 0x7bae52e1
address _autoLiquidityReceiver
address _marketingFeeReceiver
address _utilityFeeReceiver
address _burnFeeReceiver
address _teamFeeReceiver
updateTaxBreakdown 0x91892476
uint256 _liquidityFee
uint256 _teamFee
uint256 _marketingFee
uint256 _utilityFee
uint256 _burnFee
uint256 _feeDenominator

Recent Transactions

No transactions found for this address