Address Contract Verified
Address
0xcb62b4bBb6eBB8222cF02eFF96120c525cb582a9
Balance
0 ETH
Nonce
1
Code Size
21095 bytes
Creator
0x74e866F0...877e at tx 0x6255f64a...602326
Indexed Transactions
0
Contract Bytecode
21095 bytes
0x6080604052600436106101e75760003560e01c80636373ea6911610102578063a6097b0a11610095578063dd62ed3e11610064578063dd62ed3e146106f1578063e8078d941461072e578063f2fde38b14610738578063f8b45b0514610761576101ee565b8063a6097b0a14610635578063a9059cbb1461065e578063c04a54141461069b578063c3f70b52146106c6576101ee565b806376a39c28116100d157806376a39c28146105795780638d3e6e40146105a25780638da5cb5b146105df57806395d89b411461060a576101ee565b80636373ea69146104cd57806370a08231146104fa578063715018a61461053757806375f0a8741461054e576101ee565b8063368f48001161017a5780634d4ce935116101495780634d4ce935146104135780634fcd24461461043e57806357ff135a146104675780635a90a49e14610490576101ee565b8063368f48001461036b57806342966c681461039457806346b89834146103bd57806347062402146103e8576101ee565b806323b872dd116101b657806323b872dd146102af5780632b14ca56146102ec5780632fb528ba14610317578063313ce56714610340576101ee565b806306fdde03146101f3578063095ea7b31461021e578063147c9f6d1461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861078c565b6040516102159190613bc2565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613c7d565b6107c9565b6040516102529190613cd8565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613cf3565b6108bb565b005b34801561029057600080fd5b50610299610caa565b6040516102a69190613d55565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190613d70565b610ccd565b6040516102e39190613cd8565b60405180910390f35b3480156102f857600080fd5b50610301610ed7565b60405161030e9190613ddf565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613e52565b610eee565b005b34801561034c57600080fd5b506103556110d4565b6040516103629190613ddf565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190613ecc565b6110dd565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190613f0c565b611299565b005b3480156103c957600080fd5b506103d2611345565b6040516103df9190613d55565b60405180910390f35b3480156103f457600080fd5b506103fd61134f565b60405161040a9190613ddf565b60405180910390f35b34801561041f57600080fd5b50610428611366565b6040516104359190613d55565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190613f39565b611370565b005b34801561047357600080fd5b5061048e60048036038101906104899190613f79565b61148a565b005b34801561049c57600080fd5b506104b760048036038101906104b29190613fcc565b611667565b6040516104c49190613cd8565b60405180910390f35b3480156104d957600080fd5b506104e26116bd565b6040516104f193929190614008565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190613fcc565b6116fe565b60405161052e9190613d55565b60405180910390f35b34801561054357600080fd5b5061054c611747565b005b34801561055a57600080fd5b50610563611850565b604051610570919061404e565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190614069565b61187a565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190613fcc565b6119e3565b6040516105d69190613cd8565b60405180910390f35b3480156105eb57600080fd5b506105f4611a39565b604051610601919061404e565b60405180910390f35b34801561061657600080fd5b5061061f611a62565b60405161062c9190613bc2565b60405180910390f35b34801561064157600080fd5b5061065c600480360381019061065791906140f8565b611a9f565b005b34801561066a57600080fd5b5061068560048036038101906106809190613c7d565b611cda565b6040516106929190613cd8565b60405180910390f35b3480156106a757600080fd5b506106b0611d37565b6040516106bd919061404e565b60405180910390f35b3480156106d257600080fd5b506106db611d61565b6040516106e89190613d55565b60405180910390f35b3480156106fd57600080fd5b506107186004803603810190610713919061415f565b611d6b565b6040516107259190613d55565b60405180910390f35b610736611df2565b005b34801561074457600080fd5b5061075f600480360381019061075a91906141dd565b6124df565b005b34801561076d57600080fd5b506107766125e7565b6040516107839190613d55565b60405180910390f35b60606040518060400160405280600a81526020017f45746865725661756c7400000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108a99190613d55565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090614256565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156109ed5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a435750601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a79906142c2565b60405180910390fd5b826002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009600a610cba9190614444565b620f4240610cc8919061448f565b905090565b6000610cd8846125f1565b610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e9061451d565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ec35781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e42919061453d565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ece8484846126cc565b90509392505050565b6000600260019054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390614256565b60405180910390fd5b6001601260016101000a81548160ff02191690831515021790555060648260ff161115610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd5906145bd565b60405180910390fd5b600060648360ff16600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611030919061448f565b61103a919061460c565b90506009600a61104a9190614444565b81111561105b5761105a81612c58565b5b81156110b4576000479050600081116110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090614689565b60405180910390fd5b6110b247612e77565b505b506000601260016101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116290614256565b60405180910390fd5b600060016103e88461ffff166009600a6111859190614444565b620f4240611193919061448f565b61119d919061448f565b6111a7919061460c565b6111b191906146a9565b90506005548110156111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef90614729565b60405180910390fd5b80600581905550600060016103e88461ffff166009600a6112199190614444565b620f4240611227919061448f565b611231919061448f565b61123b919061460c565b61124591906146a9565b905060065481101561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390614795565b60405180910390fd5b8060068190555050505050565b60006112a4336116fe565b9050808211156112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090614801565b60405180910390fd5b6112f33383613003565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516113399190613d55565b60405180910390a25050565b6000600754905090565b6000600260009054906101000a900460ff16905090565b6000600854905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590614256565b60405180910390fd5b600b818361140c9190614821565b60ff161115611450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611447906148a2565b60405180910390fd5b81600260006101000a81548160ff021916908360ff16021790555080600260016101000a81548160ff021916908360ff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f90614256565b60405180910390fd5b80806115215750815b156115b457601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115aa9061490e565b60405180910390fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600060028054906101000a900461ffff16600260049054906101000a900461ffff16600260069054906101000a900461ffff16925092509250909192565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc90614256565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051611846919061404e565b60405180910390a1565b60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90614256565b60405180910390fd5b6000818385611917919061492e565b611921919061492e565b905060008161ffff161161196a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611961906149b0565b60405180910390fd5b83600260066101000a81548161ffff021916908361ffff160217905550826002806101000a81548161ffff021916908361ffff16021790555081600260046101000a81548161ffff021916908361ffff16021790555080600260086101000a81548161ffff021916908361ffff16021790555050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4556000000000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2490614256565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611b499190614444565b620f4240611b57919061448f565b611b61919061448f565b611b6b919061460c565b6007819055508063ffffffff168263ffffffff166009600a611b8d9190614444565b620f4240611b9b919061448f565b611ba5919061448f565b611baf919061460c565b6008819055506007546008541015611bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf390614a1c565b60405180910390fd5b620186a06009600a611c0e9190614444565b620f4240611c1c919061448f565b611c26919061460c565b60085411611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090614a88565b60405180910390fd5b60646009600a611c799190614444565b620f4240611c87919061448f565b611c91919061460c565b60085410611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90614af4565b60405180910390fd5b50505050565b6000611ce5336125f1565b611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b9061451d565b60405180910390fd5b611d2f3384846126cc565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600554905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790614256565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614b60565b60405180910390fd5b601260009054906101000a900460ff1615611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390614bcc565b60405180910390fd5b6000341180611f8b5750600047115b611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190614c38565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161204c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204390614ca4565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dd9190614cd9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218a9190614cd9565b6040518363ffffffff1660e01b81526004016121a7929190614d06565b6020604051808303816000875af11580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190614cd9565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612275600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000613123565b600954600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122e8919061453d565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123ba9190614d76565b6000604051808303816000865af19150503d80600081146123f7576040519150601f19603f3d011682016040523d82523d6000602084013e6123fc565b606091505b5050905080612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243790614dd9565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124c1613211565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490614256565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125dc9190614e58565b60405180910390a150565b6000600654905090565b60008060009050601260009054906101000a900460ff161561261657600190506126c3565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126b85750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126c257600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390614ebf565b60405180910390fd5b601260009054906101000a900460ff1661283257600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127f25750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128289061451d565b60405180910390fd5b5b601260019054906101000a900460ff161580156128985750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128a6576128a56132f9565b5b600154431080156128b957506004544310155b801561290e5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612982573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297890614f2b565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129ea57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a42575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a9257612a52848484613501565b612a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8890614f97565b60405180910390fd5b5b6000612a9f858585613698565b905060008184612aaf919061453d565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc919061453d565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254612b5191906146a9565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ba391906146a9565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612c439190613d55565b60405180910390a36001925050509392505050565b612c6181613948565b6000600267ffffffffffffffff811115612c7e57612c7d614fb7565b5b604051908082528060200260200182016040528015612cac5781602001602082028036833780820191505090505b5090503081600081518110612cc457612cc3614fe6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8f9190614cd9565b81600181518110612da357612da2614fe6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e4195949392919061510e565b600060405180830381600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050505050565b6000600260049054906101000a900461ffff1660028054906101000a900461ffff16612ea3919061492e565b905060008161ffff161115612fff5760008161ffff1660028054906101000a900461ffff1661ffff1684612ed7919061448f565b612ee1919061460c565b905060008261ffff16600260049054906101000a900461ffff1661ffff1685612f0a919061448f565b612f14919061460c565b90506000821115612f89576002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f87573d6000803e3d6000fd5b505b6000811115612ffc57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ffa573d6000803e3d6000fd5b505b50505b5050565b600081111561311f5780600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461305b919061453d565b9250508190555080600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b191906146a9565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131169190613d55565b60405180910390a35b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561315557600090505b61315e84613948565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131c596959493929190615168565b60606040518083038185885af11580156131e3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320891906151de565b50505050505050565b606460036009600a6132239190614444565b620f4240613231919061448f565b61323b919061448f565b613245919061460c565b600581905550606460036009600a61325d9190614444565b620f424061326b919061448f565b613275919061448f565b61327f919061460c565b6006819055506001601260006101000a81548160ff02191690831515021790555043600481905550600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546001546132dd91906146a9565b6132e791906146a9565b6132f191906146a9565b600181905550565b6001601260016101000a81548160ff0219169083151502179055506000600954905060075481101580156133395750601260009054906101000a900460ff165b156134e357600854811061334d5760085490505b600060028060089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff1684613385919061448f565b61338f919061460c565b613399919061460c565b9050600081836133a9919061453d565b90506009600a6133b99190614444565b8111156134c757600047905083600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461341491906146a9565b9250508190555061342482612c58565b8360096000828254613436919061453d565b925050819055506000814761344b919061453d565b90506000600260069054906101000a900461ffff1661ffff1611156134c4576000600260089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff16836134a1919061448f565b6134ab919061460c565b90506134b685613948565b6134c285826000613123565b505b50505b600047905060008111156134df576134de81612e77565b5b5050505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff16801561356e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135c45750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368d576005548311156135dc576000905061368c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613681575060065483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461367f91906146a9565b115b1561368b57600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff1615806137005750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806137545750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613762576000905061393d565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138bc57600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546137e791906146a9565b6137f191906146a9565b4310613828576064600260009054906101000a900460ff1660ff1684613817919061448f565b613821919061460c565b90506138b7565b600060169054906101000a900460ff1660ff1660045461384891906146a9565b431061387f576064600060159054906101000a900460ff1660ff168461386e919061448f565b613878919061460c565b90506138b6565b60045443106138b5576064600060149054906101000a900460ff1660ff16846138a8919061448f565b6138b2919061460c565b90505b5b5b61393c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561393b576064600260019054906101000a900460ff1660ff168461392e919061448f565b613938919061460c565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b2f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b269190613d55565b60405180910390a35b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b6c578082015181840152602081019050613b51565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b9482613b32565b613b9e8185613b3d565b9350613bae818560208601613b4e565b613bb781613b78565b840191505092915050565b60006020820190508181036000830152613bdc8184613b89565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c1482613be9565b9050919050565b613c2481613c09565b8114613c2f57600080fd5b50565b600081359050613c4181613c1b565b92915050565b6000819050919050565b613c5a81613c47565b8114613c6557600080fd5b50565b600081359050613c7781613c51565b92915050565b60008060408385031215613c9457613c93613be4565b5b6000613ca285828601613c32565b9250506020613cb385828601613c68565b9150509250929050565b60008115159050919050565b613cd281613cbd565b82525050565b6000602082019050613ced6000830184613cc9565b92915050565b600080600060608486031215613d0c57613d0b613be4565b5b6000613d1a86828701613c32565b9350506020613d2b86828701613c32565b9250506040613d3c86828701613c32565b9150509250925092565b613d4f81613c47565b82525050565b6000602082019050613d6a6000830184613d46565b92915050565b600080600060608486031215613d8957613d88613be4565b5b6000613d9786828701613c32565b9350506020613da886828701613c32565b9250506040613db986828701613c68565b9150509250925092565b600060ff82169050919050565b613dd981613dc3565b82525050565b6000602082019050613df46000830184613dd0565b92915050565b613e0381613dc3565b8114613e0e57600080fd5b50565b600081359050613e2081613dfa565b92915050565b613e2f81613cbd565b8114613e3a57600080fd5b50565b600081359050613e4c81613e26565b92915050565b60008060408385031215613e6957613e68613be4565b5b6000613e7785828601613e11565b9250506020613e8885828601613e3d565b9150509250929050565b600061ffff82169050919050565b613ea981613e92565b8114613eb457600080fd5b50565b600081359050613ec681613ea0565b92915050565b60008060408385031215613ee357613ee2613be4565b5b6000613ef185828601613eb7565b9250506020613f0285828601613eb7565b9150509250929050565b600060208284031215613f2257613f21613be4565b5b6000613f3084828501613c68565b91505092915050565b60008060408385031215613f5057613f4f613be4565b5b6000613f5e85828601613e11565b9250506020613f6f85828601613e11565b9150509250929050565b600080600060608486031215613f9257613f91613be4565b5b6000613fa086828701613c32565b9350506020613fb186828701613e3d565b9250506040613fc286828701613e3d565b9150509250925092565b600060208284031215613fe257613fe1613be4565b5b6000613ff084828501613c32565b91505092915050565b61400281613e92565b82525050565b600060608201905061401d6000830186613ff9565b61402a6020830185613ff9565b6140376040830184613ff9565b949350505050565b61404881613c09565b82525050565b6000602082019050614063600083018461403f565b92915050565b60008060006060848603121561408257614081613be4565b5b600061409086828701613eb7565b93505060206140a186828701613eb7565b92505060406140b286828701613eb7565b9150509250925092565b600063ffffffff82169050919050565b6140d5816140bc565b81146140e057600080fd5b50565b6000813590506140f2816140cc565b92915050565b6000806000806080858703121561411257614111613be4565b5b6000614120878288016140e3565b9450506020614131878288016140e3565b9350506040614142878288016140e3565b9250506060614153878288016140e3565b91505092959194509250565b6000806040838503121561417657614175613be4565b5b600061418485828601613c32565b925050602061419585828601613c32565b9150509250929050565b60006141aa82613be9565b9050919050565b6141ba8161419f565b81146141c557600080fd5b50565b6000813590506141d7816141b1565b92915050565b6000602082840312156141f3576141f2613be4565b5b6000614201848285016141c8565b91505092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000614240601883613b3d565b915061424b8261420a565b602082019050919050565b6000602082019050818103600083015261426f81614233565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b60006142ac601783613b3d565b91506142b782614276565b602082019050919050565b600060208201905081810360008301526142db8161429f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561436857808604811115614344576143436142e2565b5b60018516156143535780820291505b808102905061436185614311565b9450614328565b94509492505050565b600082614381576001905061443d565b8161438f576000905061443d565b81600181146143a557600281146143af576143de565b600191505061443d565b60ff8411156143c1576143c06142e2565b5b8360020a9150848211156143d8576143d76142e2565b5b5061443d565b5060208310610133831016604e8410600b84101617156144135782820a90508381111561440e5761440d6142e2565b5b61443d565b614420848484600161431e565b92509050818404811115614437576144366142e2565b5b81810290505b9392505050565b600061444f82613c47565b915061445a83613dc3565b92506144877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614371565b905092915050565b600061449a82613c47565b91506144a583613c47565b92508282026144b381613c47565b915082820484148315176144ca576144c96142e2565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614507601083613b3d565b9150614512826144d1565b602082019050919050565b60006020820190508181036000830152614536816144fa565b9050919050565b600061454882613c47565b915061455383613c47565b925082820390508181111561456b5761456a6142e2565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000600082015250565b60006145a7601a83613b3d565b91506145b282614571565b602082019050919050565b600060208201905081810360008301526145d68161459a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461782613c47565b915061462283613c47565b925082614632576146316145dd565b5b828204905092915050565b7f4e6f204554480000000000000000000000000000000000000000000000000000600082015250565b6000614673600683613b3d565b915061467e8261463d565b602082019050919050565b600060208201905081810360008301526146a281614666565b9050919050565b60006146b482613c47565b91506146bf83613c47565b92508282019050808211156146d7576146d66142e2565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000614713600a83613b3d565b915061471e826146dd565b602082019050919050565b6000602082019050818103600083015261474281614706565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b600061477f600e83613b3d565b915061478a82614749565b602082019050919050565b600060208201905081810360008301526147ae81614772565b9050919050565b7f62616c616e636520746f6f206c6f770000000000000000000000000000000000600082015250565b60006147eb600f83613b3d565b91506147f6826147b5565b602082019050919050565b6000602082019050818103600083015261481a816147de565b9050919050565b600061482c82613dc3565b915061483783613dc3565b9250828201905060ff8111156148505761484f6142e2565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b600061488c601283613b3d565b915061489782614856565b602082019050919050565b600060208201905081810360008301526148bb8161487f565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b60006148f8601083613b3d565b9150614903826148c2565b602082019050919050565b60006020820190508181036000830152614927816148eb565b9050919050565b600061493982613e92565b915061494483613e92565b9250828201905061ffff81111561495e5761495d6142e2565b5b92915050565b7f416c6c2063616e6e6f7420626520300000000000000000000000000000000000600082015250565b600061499a600f83613b3d565b91506149a582614964565b602082019050919050565b600060208201905081810360008301526149c98161498d565b9050919050565b7f4d696e2f4d6178206572726f7200000000000000000000000000000000000000600082015250565b6000614a06600d83613b3d565b9150614a11826149d0565b602082019050919050565b60006020820190508181036000830152614a35816149f9565b9050919050565b7f4d617820746f6f206c6f77000000000000000000000000000000000000000000600082015250565b6000614a72600b83613b3d565b9150614a7d82614a3c565b602082019050919050565b60006020820190508181036000830152614aa181614a65565b9050919050565b7f4d617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ade600c83613b3d565b9150614ae982614aa8565b602082019050919050565b60006020820190508181036000830152614b0d81614ad1565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000614b4a600983613b3d565b9150614b5582614b14565b602082019050919050565b60006020820190508181036000830152614b7981614b3d565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000614bb6600f83613b3d565b9150614bc182614b80565b602082019050919050565b60006020820190508181036000830152614be581614ba9565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000614c22601d83613b3d565b9150614c2d82614bec565b602082019050919050565b60006020820190508181036000830152614c5181614c15565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000614c8e601583613b3d565b9150614c9982614c58565b602082019050919050565b60006020820190508181036000830152614cbd81614c81565b9050919050565b600081519050614cd381613c1b565b92915050565b600060208284031215614cef57614cee613be4565b5b6000614cfd84828501614cc4565b91505092915050565b6000604082019050614d1b600083018561403f565b614d28602083018461403f565b9392505050565b600081519050919050565b600081905092915050565b6000614d5082614d2f565b614d5a8185614d3a565b9350614d6a818560208601613b4e565b80840191505092915050565b6000614d828284614d45565b915081905092915050565b7f4661696c656420616464696e67206c6971756964697479000000000000000000600082015250565b6000614dc3601783613b3d565b9150614dce82614d8d565b602082019050919050565b60006020820190508181036000830152614df281614db6565b9050919050565b6000819050919050565b6000614e1e614e19614e1484613be9565b614df9565b613be9565b9050919050565b6000614e3082614e03565b9050919050565b6000614e4282614e25565b9050919050565b614e5281614e37565b82525050565b6000602082019050614e6d6000830184614e49565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614ea9601d83613b3d565b9150614eb482614e73565b602082019050919050565b60006020820190508181036000830152614ed881614e9c565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000614f15600b83613b3d565b9150614f2082614edf565b602082019050919050565b60006020820190508181036000830152614f4481614f08565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614f81601183613b3d565b9150614f8c82614f4b565b602082019050919050565b60006020820190508181036000830152614fb081614f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061503a61503561503084615015565b614df9565b613c47565b9050919050565b61504a8161501f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61508581613c09565b82525050565b6000615097838361507c565b60208301905092915050565b6000602082019050919050565b60006150bb82615050565b6150c5818561505b565b93506150d08361506c565b8060005b838110156151015781516150e8888261508b565b97506150f3836150a3565b9250506001810190506150d4565b5085935050505092915050565b600060a0820190506151236000830188613d46565b6151306020830187615041565b818103604083015261514281866150b0565b9050615151606083018561403f565b61515e6080830184613d46565b9695505050505050565b600060c08201905061517d600083018961403f565b61518a6020830188613d46565b6151976040830187615041565b6151a46060830186615041565b6151b1608083018561403f565b6151be60a0830184613d46565b979650505050505050565b6000815190506151d881613c51565b92915050565b6000806000606084860312156151f7576151f6613be4565b5b6000615205868287016151c9565b9350506020615216868287016151c9565b9250506040615227868287016151c9565b915050925092509256fea2646970667358221220f2b2b97f63d3355b2d82ebddae2628dd177b28d6955cd78196cf309f9d4efb6964736f6c63430008130033
Verified Source Code Full Match
Compiler: v0.8.19+commit.7dd6d404
EVM: paris
Optimization: No
Ev.sol 412 lines
//SPDX-License-Identifier: MIT
/*
https://t.me/EtherVaultCoin
https://ethervaultcoin.com
*/
pragma solidity 0.8.19;
interface IERC20 {
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 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);
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
function WETH() external pure returns (address);
function factory() 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);
}
abstract contract Auth {
address internal _owner;
constructor(address creatorOwner) {
_owner = creatorOwner;
}
modifier onlyOwner() {
require(msg.sender == _owner, "Only owner can call this");
_;
}
function owner() public view returns (address) {
return _owner;
}
function transferOwnership(address payable newOwner) external onlyOwner {
_owner = newOwner;
emit OwnershipTransferred(newOwner);
}
function renounceOwnership() external onlyOwner {
_owner = address(0);
emit OwnershipTransferred(address(0));
}
event OwnershipTransferred(address _owner);
}
contract Ev is IERC20, Auth {
uint8 private constant _decimals = 9;
uint256 private constant _totalSupply = 1_000_000 * (10**_decimals);
string private constant _name = "EtherVault";
string private constant _symbol = "EV";
uint8 private antiSnipeTax1 = 5;
uint8 private antiSnipeTax2 = 3;
uint8 private antiSnipeBlocks1 = 1;
uint8 private antiSnipeBlocks2 = 1;
uint256 private _antiMevBlock = 2;
uint8 private _buyTaxRate = 0;
uint8 private _sellTaxRate = 0;
uint16 private _taxSharesMarketing = 60;
uint16 private _taxSharesDevelopment = 40;
uint16 private _taxSharesLP = 0;
uint16 private _totalTaxShares = _taxSharesMarketing + _taxSharesDevelopment + _taxSharesLP;
address payable private _walletMarketing = payable(0x74e866F079fD4548D8773147db52563A0064877e);
address payable private _walletDevelopment = payable(0x946a7C513d1e093cca00AE19f270b11181De5c1a);
uint256 private _launchBlock;
uint256 private _maxTxAmount = _totalSupply;
uint256 private _maxWalletAmount = _totalSupply;
uint256 private _taxSwapMin = _totalSupply * 10 / 100000;
uint256 private _taxSwapMax = _totalSupply * 499 / 100000;
uint256 private _swapLimit = _taxSwapMin * 52 * 100;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _noFees;
mapping (address => bool) private _noLimits;
address private _lpOwner;
address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
address private _primaryLP;
mapping (address => bool) private _isLP;
bool private _tradingOpen;
bool private _inTaxSwap = false;
modifier lockTaxSwap {
_inTaxSwap = true;
_;
_inTaxSwap = false;
}
event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);
constructor() Auth(msg.sender) {
_lpOwner = msg.sender;
uint256 airdropAmount = _totalSupply * 23 / 100;
_balances[address(this)] = _totalSupply - airdropAmount;
emit Transfer(address(0), address(this), _balances[address(this)]);
_balances[_owner] = airdropAmount;
emit Transfer(address(0), _owner, _balances[_owner]);
_noFees[_owner] = true;
_noFees[address(this)] = true;
_noFees[_swapRouterAddress] = true;
_noFees[_walletMarketing] = true;
_noFees[_walletDevelopment] = true;
_noLimits[_owner] = true;
_noLimits[address(this)] = true;
_noLimits[_swapRouterAddress] = true;
_noLimits[_walletMarketing] = true;
_noLimits[_walletDevelopment] = true;
}
receive() external payable {}
function totalSupply() external pure 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 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 transfer(address recipient, uint256 amount) external override returns (bool) {
require(_checkTradingOpen(msg.sender), "Trading not open");
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
require(_checkTradingOpen(sender), "Trading not open");
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function _approveRouter(uint256 _tokenAmount) internal {
if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
_allowances[address(this)][_swapRouterAddress] = type(uint256).max;
emit Approval(address(this), _swapRouterAddress, type(uint256).max);
}
}
function addLiquidity() external payable onlyOwner lockTaxSwap {
require(_primaryLP == address(0), "LP exists");
require(!_tradingOpen, "trading is open");
require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
require(_balances[address(this)]>0, "No tokens in contract");
_primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
_addLiquidity(_balances[address(this)], address(this).balance, false);
_balances[_primaryLP] -= _swapLimit;
(bool lpAddSuccess,) = _primaryLP.call(abi.encodeWithSignature("sync()"));
require(lpAddSuccess, "Failed adding liquidity");
_isLP[_primaryLP] = lpAddSuccess;
_openTrading();
}
function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
address lpTokenRecipient = _lpOwner;
if ( autoburn ) { lpTokenRecipient = address(0); }
_approveRouter(_tokenAmount);
_primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
}
function _openTrading() internal {
_maxTxAmount = _totalSupply * 3 / 100;
_maxWalletAmount = _totalSupply * 3 / 100;
_tradingOpen = true;
_launchBlock = block.number;
_antiMevBlock = _antiMevBlock + _launchBlock + antiSnipeBlocks1 + antiSnipeBlocks2;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender != address(0), "No transfers from Zero wallet");
if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
if ( block.number < _antiMevBlock && block.number >= _launchBlock && _isLP[sender] ) {
require(recipient == tx.origin, "MEV blocked");
}
if ( sender != address(this) && recipient != address(this) && sender != _owner ) {
require(_checkLimits(sender, recipient, amount), "TX exceeds limits");
}
uint256 _taxAmount = _calculateTax(sender, recipient, amount);
uint256 _transferAmount = amount - _taxAmount;
_balances[sender] = _balances[sender] - amount;
_swapLimit += _taxAmount;
_balances[recipient] = _balances[recipient] + _transferAmount;
emit Transfer(sender, recipient, amount);
return true;
}
function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
bool limitCheckPassed = true;
if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
}
return limitCheckPassed;
}
function _checkTradingOpen(address sender) private view returns (bool){
bool checkResult = false;
if ( _tradingOpen ) { checkResult = true; }
else if (_noFees[sender] && _noLimits[sender]) { checkResult = true; }
return checkResult;
}
function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
uint256 taxAmount;
if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) {
taxAmount = 0;
} else if ( _isLP[sender] ) {
if ( block.number >= _launchBlock + antiSnipeBlocks1 + antiSnipeBlocks2 ) {
taxAmount = amount * _buyTaxRate / 100;
} else if ( block.number >= _launchBlock + antiSnipeBlocks1 ) {
taxAmount = amount * antiSnipeTax2 / 100;
} else if ( block.number >= _launchBlock) {
taxAmount = amount * antiSnipeTax1 / 100;
}
} else if ( _isLP[recipient] ) {
taxAmount = amount * _sellTaxRate / 100;
}
return taxAmount;
}
function exemptFromFees(address wallet) external view returns (bool) {
return _noFees[wallet];
}
function exemptFromLimits(address wallet) external view returns (bool) {
return _noLimits[wallet];
}
function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner {
if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
_noFees[ wallet ] = noFees;
_noLimits[ wallet ] = noLimits;
}
function buyFee() external view returns(uint8) {
return _buyTaxRate;
}
function sellFee() external view returns(uint8) {
return _sellTaxRate;
}
function feeSplit() external view returns (uint16 marketing, uint16 development, uint16 LP ) {
return ( _taxSharesMarketing, _taxSharesDevelopment, _taxSharesLP);
}
function setFees(uint8 buy, uint8 sell) external onlyOwner {
require(buy + sell <= 11, "Roundtrip too high");
_buyTaxRate = buy;
_sellTaxRate = sell;
}
function setFeeSplit(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDevelopment) external onlyOwner {
uint16 totalShares = sharesAutoLP + sharesMarketing + sharesDevelopment;
require( totalShares > 0, "All cannot be 0");
_taxSharesLP = sharesAutoLP;
_taxSharesMarketing = sharesMarketing;
_taxSharesDevelopment = sharesDevelopment;
_totalTaxShares = totalShares;
}
function marketingWallet() external view returns (address) {
return _walletMarketing;
}
function developmentWallet() external view returns (address) {
return _walletDevelopment;
}
function updateWallets(address marketing, address development, address LPtokens) external onlyOwner {
require(!_isLP[marketing] && !_isLP[development] && !_isLP[LPtokens], "LP cannot be tax wallet");
_walletMarketing = payable(marketing);
_walletDevelopment = payable(development);
_lpOwner = LPtokens;
_noFees[marketing] = true;
_noLimits[marketing] = true;
_noFees[development] = true;
_noLimits[development] = true;
}
function maxWallet() external view returns (uint256) {
return _maxWalletAmount;
}
function maxTransaction() external view returns (uint256) {
return _maxTxAmount;
}
function swapAtMin() external view returns (uint256) {
return _taxSwapMin;
}
function swapAtMax() external view returns (uint256) {
return _taxSwapMax;
}
function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner {
uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1;
require(newTxAmt >= _maxTxAmount, "tx too low");
_maxTxAmount = newTxAmt;
uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1;
require(newWalletAmt >= _maxWalletAmount, "wallet too low");
_maxWalletAmount = newWalletAmt;
}
function setTaxSwap(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
_taxSwapMin = _totalSupply * minValue / minDivider;
_taxSwapMax = _totalSupply * maxValue / maxDivider;
require(_taxSwapMax>=_taxSwapMin, "Min/Max error");
require(_taxSwapMax>_totalSupply / 100000, "Max too low");
require(_taxSwapMax<_totalSupply / 100, "Max too high");
}
function _burnTokens(address fromWallet, uint256 amount) private {
if ( amount > 0 ) {
_balances[fromWallet] -= amount;
_balances[address(0)] += amount;
emit Transfer(fromWallet, address(0), amount);
}
}
function _swapTaxAndLiquify() private lockTaxSwap {
uint256 _taxTokensAvailable = _swapLimit;
if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2;
uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
if( _tokensToSwap > 10**_decimals ) {
uint256 _ethPreSwap = address(this).balance;
_balances[address(this)] += _taxTokensAvailable;
_swapTaxTokensForEth(_tokensToSwap);
_swapLimit -= _taxTokensAvailable;
uint256 _ethSwapped = address(this).balance - _ethPreSwap;
if ( _taxSharesLP > 0 ) {
uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ;
_approveRouter(_tokensForLP);
_addLiquidity(_tokensForLP, _ethWeiAmount, false);
}
}
uint256 _contractETHBalance = address(this).balance;
if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
}
}
function _swapTaxTokensForEth(uint256 tokenAmount) private {
_approveRouter(tokenAmount);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = _primarySwapRouter.WETH();
_primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
}
function _distributeTaxEth(uint256 amount) private {
uint16 _taxShareTotal = _taxSharesMarketing + _taxSharesDevelopment;
if (_taxShareTotal > 0) {
uint256 marketingAmount = amount * _taxSharesMarketing / _taxShareTotal;
uint256 developmentAmount = amount * _taxSharesDevelopment / _taxShareTotal;
if ( marketingAmount > 0 ) { _walletMarketing.transfer(marketingAmount); }
if ( developmentAmount > 0 ) { _walletDevelopment.transfer(developmentAmount); }
}
}
function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap {
require(swapTokenPercent <= 100, "Cannot swap more than 100%");
uint256 tokensToSwap = _balances[address(this)] * swapTokenPercent / 100;
if (tokensToSwap > 10 ** _decimals) {
_swapTaxTokensForEth(tokensToSwap);
}
if (sendEth) {
uint256 ethBalance = address(this).balance;
require(ethBalance > 0, "No ETH");
_distributeTaxEth(address(this).balance);
}
}
function burn(uint256 amount) external {
uint256 _tokensAvailable = balanceOf(msg.sender);
require(amount <= _tokensAvailable, "balance too low");
_burnTokens(msg.sender, amount);
emit TokensBurned(msg.sender, amount);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyFee 0x47062402 → uint8
decimals 0x313ce567 → uint8
developmentWallet 0xc04a5414 → address
exemptFromFees 0x5a90a49e → bool
exemptFromLimits 0x8d3e6e40 → bool
feeSplit 0x6373ea69 → uint16, uint16, uint16
marketingWallet 0x75f0a874 → address
maxTransaction 0xc3f70b52 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellFee 0x2b14ca56 → uint8
swapAtMax 0x4d4ce935 → uint256
swapAtMin 0x46b89834 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 14 functions
These functions modify contract state and require a wallet transaction to execute.
addLiquidity 0xe8078d94
No parameters
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burn 0x42966c68
uint256 amount
manualTaxSwapAndSend 0x2fb528ba
uint8 swapTokenPercent
bool sendEth
renounceOwnership 0x715018a6
No parameters
setExempt 0x57ff135a
address wallet
bool noFees
bool noLimits
setFeeSplit 0x76a39c28
uint16 sharesAutoLP
uint16 sharesMarketing
uint16 sharesDevelopment
setFees 0x4fcd2446
uint8 buy
uint8 sell
setLimits 0x368f4800
uint16 maxTransactionPermille
uint16 maxWalletPermille
setTaxSwap 0xa6097b0a
uint32 minValue
uint32 minDivider
uint32 maxValue
uint32 maxDivider
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateWallets 0x147c9f6d
address marketing
address development
address LPtokens
Recent Transactions
No transactions found for this address