Address Contract Partially Verified
Address
0x9b3D9850DE674755E08A06F14BE6DCAad05B285a
Balance
0 ETH
Nonce
1
Code Size
17676 bytes
Creator
0xA4034D90...bd7b at tx 0x40af8e0b...944a18
Indexed Transactions
0
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