Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x02a2b623bB4230424A2C11c534205F17a9dF84c9
Balance 0 ETH
Nonce 1
Code Size 13633 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

13633 bytes
0x6080604052600436106101445760003560e01c80637d1db4a5116100b6578063bf474bed1161006f578063bf474bed1461046d578063c3c8cd8014610498578063c876d0b9146104af578063c9567bf9146104da578063dd62ed3e146104e4578063f9bcdfba146105215761014b565b80637d1db4a5146103475780638da5cb5b146103725780638dfa43631461039d5780638f9a55c0146103da57806395d89b4114610405578063a9059cbb146104305761014b565b806323b872dd1161010857806323b872dd1461024b57806325cc263c14610288578063313ce567146102b157806366c269d2146102dc57806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630b3bcb59146101b85780630faee56f146101f557806318160ddd146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561054a565b60405161017291906124ef565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906125aa565b610587565b6040516101af9190612605565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612620565b6105a5565b6040516101ec9190612605565b60405180910390f35b34801561020157600080fd5b5061020a6105fb565b604051610217919061265c565b60405180910390f35b34801561022c57600080fd5b50610235610601565b604051610242919061265c565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d9190612677565b610625565b60405161027f9190612605565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa91906126f6565b6106fe565b005b3480156102bd57600080fd5b506102c66107ee565b6040516102d39190612752565b60405180910390f35b3480156102e857600080fd5b506102f16107f7565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612620565b610942565b604051610327919061265c565b60405180910390f35b34801561033c57600080fd5b5061034561098b565b005b34801561035357600080fd5b5061035c610ade565b604051610369919061265c565b60405180910390f35b34801561037e57600080fd5b50610387610ae4565b604051610394919061277c565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190612797565b610b0d565b6040516103d1919061265c565b60405180910390f35b3480156103e657600080fd5b506103ef610b41565b6040516103fc919061265c565b60405180910390f35b34801561041157600080fd5b5061041a610b47565b60405161042791906124ef565b60405180910390f35b34801561043c57600080fd5b50610457600480360381019061045291906125aa565b610b84565b6040516104649190612605565b60405180910390f35b34801561047957600080fd5b50610482610ba2565b60405161048f919061265c565b60405180910390f35b3480156104a457600080fd5b506104ad610ba8565b005b3480156104bb57600080fd5b506104c4610c45565b6040516104d19190612605565b60405180910390f35b6104e2610c58565b005b3480156104f057600080fd5b5061050b600480360381019061050691906127d7565b61119f565b604051610518919061265c565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190612843565b611226565b005b60606040518060400160405280601181526020017f43525950544f20464f5220484152524953000000000000000000000000000000815250905090565b600061059b6105946112d9565b84846112e1565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b60006009600a61061191906129d2565b633b9aca006106209190612a1d565b905090565b60006106328484846114aa565b6106f38461063e6112d9565b6106ee856040518060600160405280602881526020016134e460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a46112d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611efe9092919063ffffffff16565b6112e1565b600190509392505050565b6107066112d9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612aab565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b6107ff6112d9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088390612aab565b60405180910390fd5b6009600a61089a91906129d2565b633b9aca006108a99190612a1d565b600f819055506009600a6108bd91906129d2565b633b9aca006108cc9190612a1d565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61091c91906129d2565b633b9aca0061092b9190612a1d565b604051610938919061265c565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109936112d9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1790612aab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080606483610b1d9190612a1d565b90506127108185610b2e9190612a1d565b610b389190612afa565b91505092915050565b60105481565b60606040518060400160405280600381526020017f4346480000000000000000000000000000000000000000000000000000000000815250905090565b6000610b98610b916112d9565b84846114aa565b6001905092915050565b60115481565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96112d9565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b6000610c1430610942565b90506000811115610c2957610c2881611f62565b5b60004790506000811115610c4157610c40816121f8565b5b5050565b600660009054906101000a900460ff1681565b610c606112d9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612aab565b60405180910390fd5b601560149054906101000a900460ff1615610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490612b77565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ddb30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc791906129d2565b633b9aca00610dd69190612a1d565b6112e1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6c9190612bac565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f199190612bac565b6040518363ffffffff1660e01b8152600401610f36929190612bd9565b6020604051808303816000875af1158015610f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f799190612bac565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719600034116110055747611007565b345b3061101130610942565b60008061101c610ae4565b426040518863ffffffff1660e01b815260040161103e96959493929190612c47565b60606040518083038185885af115801561105c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110819190612cbd565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611123929190612d10565b6020604051808303816000875af1158015611142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111669190612d4e565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122e6112d9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612aab565b60405180910390fd5b80601560176101000a81548160ff021916908360ff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612ded565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690612e7f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161149d919061265c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151090612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612fa3565b60405180910390fd5b600081116115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613035565b60405180910390fd5b60006115d5610ae4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116435750611613610ae4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c4157600660009054906101000a900460ff16156117d557601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117095750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117d45743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061178f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611786906130c7565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118805750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b157600f54821115611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613133565b60405180910390fd5b6010548261192d85610942565b6119379190613153565b1115611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f906131d3565b60405180910390fd5b600d54600e5410156119985761198d83612264565b1561199757600080fd5b5b600e60008154809291906119ab906131f3565b91905055505b6119ed60646119df600b54600e54116119cc576007546119d0565b6009545b8561227790919063ffffffff16565b6122f190919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a7857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0157600f54821115611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab990613133565b60405180910390fd5b611afe6064611af0600c54600e5411611add57600854611ae1565b600a545b8561227790919063ffffffff16565b6122f190919063ffffffff16565b90505b6000611b0c30610942565b905060158054906101000a900460ff16158015611b765750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b8e5750601560169054906101000a900460ff165b8015611b9b575060115481115b8015611baa5750600d54600e54115b8015611bda5750601560189054906101000a900460ff1660ff166016600043815260200190815260200160002054105b15611c3f57611bfc611bf784611bf28460125461233b565b61233b565b611f62565b60004790506000811115611c1457611c13476121f8565b5b601660004381526020019081526020016000206000815480929190611c38906131f3565b9190505550505b505b6000811115611d4557611c9c81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d3c919061265c565b60405180910390a35b611d9782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e3e611df082846123b290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ee384866123b290919063ffffffff16565b604051611ef0919061265c565b60405180910390a350505050565b6000838311158290611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d91906124ef565b60405180910390fd5b5060008385611f55919061323b565b9050809150509392505050565b60016015806101000a81548160ff02191690831515021790555060008103156121db57601560149054906101000a900460ff16156121db576000600267ffffffffffffffff811115611fb757611fb661326f565b5b604051908082528060200260200182016040528015611fe55781602001602082028036833780820191505090505b5090503081600081518110611ffd57611ffc61329e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c89190612bac565b816001815181106120dc576120db61329e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121a795949392919061338b565b600060405180830381600087803b1580156121c157600080fd5b505af11580156121d5573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612260573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b600080830361228957600090506122eb565b600082846122979190612a1d565b90508284826122a69190612afa565b146122e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122dd90613457565b60405180910390fd5b809150505b92915050565b600061233383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123fc565b905092915050565b600081831161234a578261234c565b815b905092915050565b60008082846123639190613153565b9050838110156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f906134c3565b60405180910390fd5b8091505092915050565b60006123f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611efe565b905092915050565b60008083118290612443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243a91906124ef565b60405180910390fd5b50600083856124529190612afa565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561249957808201518184015260208101905061247e565b60008484015250505050565b6000601f19601f8301169050919050565b60006124c18261245f565b6124cb818561246a565b93506124db81856020860161247b565b6124e4816124a5565b840191505092915050565b6000602082019050818103600083015261250981846124b6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254182612516565b9050919050565b61255181612536565b811461255c57600080fd5b50565b60008135905061256e81612548565b92915050565b6000819050919050565b61258781612574565b811461259257600080fd5b50565b6000813590506125a48161257e565b92915050565b600080604083850312156125c1576125c0612511565b5b60006125cf8582860161255f565b92505060206125e085828601612595565b9150509250929050565b60008115159050919050565b6125ff816125ea565b82525050565b600060208201905061261a60008301846125f6565b92915050565b60006020828403121561263657612635612511565b5b60006126448482850161255f565b91505092915050565b61265681612574565b82525050565b6000602082019050612671600083018461264d565b92915050565b6000806000606084860312156126905761268f612511565b5b600061269e8682870161255f565b93505060206126af8682870161255f565b92505060406126c086828701612595565b9150509250925092565b6126d3816125ea565b81146126de57600080fd5b50565b6000813590506126f0816126ca565b92915050565b6000806040838503121561270d5761270c612511565b5b600061271b8582860161255f565b925050602061272c858286016126e1565b9150509250929050565b600060ff82169050919050565b61274c81612736565b82525050565b60006020820190506127676000830184612743565b92915050565b61277681612536565b82525050565b6000602082019050612791600083018461276d565b92915050565b600080604083850312156127ae576127ad612511565b5b60006127bc85828601612595565b92505060206127cd85828601612595565b9150509250929050565b600080604083850312156127ee576127ed612511565b5b60006127fc8582860161255f565b925050602061280d8582860161255f565b9150509250929050565b61282081612736565b811461282b57600080fd5b50565b60008135905061283d81612817565b92915050565b60006020828403121561285957612858612511565b5b60006128678482850161282e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156128f6578086048111156128d2576128d1612870565b5b60018516156128e15780820291505b80810290506128ef8561289f565b94506128b6565b94509492505050565b60008261290f57600190506129cb565b8161291d57600090506129cb565b8160018114612933576002811461293d5761296c565b60019150506129cb565b60ff84111561294f5761294e612870565b5b8360020a91508482111561296657612965612870565b5b506129cb565b5060208310610133831016604e8410600b84101617156129a15782820a90508381111561299c5761299b612870565b5b6129cb565b6129ae84848460016128ac565b925090508184048111156129c5576129c4612870565b5b81810290505b9392505050565b60006129dd82612574565b91506129e883612736565b9250612a157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128ff565b905092915050565b6000612a2882612574565b9150612a3383612574565b9250828202612a4181612574565b91508282048414831517612a5857612a57612870565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a9560208361246a565b9150612aa082612a5f565b602082019050919050565b60006020820190508181036000830152612ac481612a88565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b0582612574565b9150612b1083612574565b925082612b2057612b1f612acb565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b6160178361246a565b9150612b6c82612b2b565b602082019050919050565b60006020820190508181036000830152612b9081612b54565b9050919050565b600081519050612ba681612548565b92915050565b600060208284031215612bc257612bc1612511565b5b6000612bd084828501612b97565b91505092915050565b6000604082019050612bee600083018561276d565b612bfb602083018461276d565b9392505050565b6000819050919050565b6000819050919050565b6000612c31612c2c612c2784612c02565b612c0c565b612574565b9050919050565b612c4181612c16565b82525050565b600060c082019050612c5c600083018961276d565b612c69602083018861264d565b612c766040830187612c38565b612c836060830186612c38565b612c90608083018561276d565b612c9d60a083018461264d565b979650505050505050565b600081519050612cb78161257e565b92915050565b600080600060608486031215612cd657612cd5612511565b5b6000612ce486828701612ca8565b9350506020612cf586828701612ca8565b9250506040612d0686828701612ca8565b9150509250925092565b6000604082019050612d25600083018561276d565b612d32602083018461264d565b9392505050565b600081519050612d48816126ca565b92915050565b600060208284031215612d6457612d63612511565b5b6000612d7284828501612d39565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dd760248361246a565b9150612de282612d7b565b604082019050919050565b60006020820190508181036000830152612e0681612dca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e6960228361246a565b9150612e7482612e0d565b604082019050919050565b60006020820190508181036000830152612e9881612e5c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612efb60258361246a565b9150612f0682612e9f565b604082019050919050565b60006020820190508181036000830152612f2a81612eee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f8d60238361246a565b9150612f9882612f31565b604082019050919050565b60006020820190508181036000830152612fbc81612f80565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061301f60298361246a565b915061302a82612fc3565b604082019050919050565b6000602082019050818103600083015261304e81613012565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006130b160248361246a565b91506130bc82613055565b604082019050919050565b600060208201905081810360008301526130e0816130a4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061311d60198361246a565b9150613128826130e7565b602082019050919050565b6000602082019050818103600083015261314c81613110565b9050919050565b600061315e82612574565b915061316983612574565b925082820190508082111561318157613180612870565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131bd601a8361246a565b91506131c882613187565b602082019050919050565b600060208201905081810360008301526131ec816131b0565b9050919050565b60006131fe82612574565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132305761322f612870565b5b600182019050919050565b600061324682612574565b915061325183612574565b925082820390508181111561326957613268612870565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61330281612536565b82525050565b600061331483836132f9565b60208301905092915050565b6000602082019050919050565b6000613338826132cd565b61334281856132d8565b935061334d836132e9565b8060005b8381101561337e5781516133658882613308565b975061337083613320565b925050600181019050613351565b5085935050505092915050565b600060a0820190506133a0600083018861264d565b6133ad6020830187612c38565b81810360408301526133bf818661332d565b90506133ce606083018561276d565b6133db608083018461264d565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061344160218361246a565b915061344c826133e5565b604082019050919050565b6000602082019050818103600083015261347081613434565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134ad601b8361246a565b91506134b882613477565b602082019050919050565b600060208201905081810360008301526134dc816134a0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d7a26ad119d0f53b929dcacba616ffa8e2e1a36b2e8199b26b4875560951227964736f6c63430008140033

Verified Source Code Partial Match

Compiler: v0.8.20+commit.a1b79de6 EVM: paris Optimization: No
CRYPTOFORHARRIS.sol 358 lines
// SPDX-License-Identifier: Unlicensed

//TG: https://t.me/CRYPTOFORHARRIS
//Twitter: https://x.com/BitcoinMagazine/status/1821277734431289482

    pragma solidity 0.8.20;

    abstract contract Context {
        function _msgSender() internal view virtual returns (address) {
            return msg.sender;
        }
    }

    interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            uint256 c = a + b;
            require(c >= a, "SafeMath: addition overflow");
            return c;
        }

        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return sub(a, b, "SafeMath: subtraction overflow");
        }

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

        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            if (a == 0) {
                return 0;
            }
            uint256 c = a * b;
            require(c / a == b, "SafeMath: multiplication overflow");
            return c;
        }

        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return div(a, b, "SafeMath: division by zero");
        }

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

    }

    contract Ownable is Context {
        address private _owner;
        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

        constructor () {
            address msgSender = _msgSender();
            _owner = msgSender;
            emit OwnershipTransferred(address(0), msgSender);
        }

        function owner() public view returns (address) {
            return _owner;
        }

        modifier onlyOwner() {
            require(_owner == _msgSender(), "Ownable: caller is not the owner");
            _;
        }

        function renounceOwnership() public virtual onlyOwner {
            emit OwnershipTransferred(_owner, address(0));
            _owner = address(0);
        }

    }

    interface 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 factory() external pure returns (address);
        function WETH() external pure returns (address);
        function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    }

    contract CRYPTOFORHARRIS is Context, IERC20, Ownable {
        using SafeMath for uint256;
        mapping (address => uint256) private _balances;
        mapping (address => mapping (address => uint256)) private _allowances;
        mapping (address => bool) private _isExcludedFromFee;
        mapping (address => bool) private bots;
        mapping(address => uint256) private _holderLastTransferTimestamp;
        bool public transferDelayEnabled = false;
        address payable private _taxWallet;

        uint256 private _initialBuyTax=29;
        uint256 private _initialSellTax=0;
        uint256 private _finalBuyTax=0;
        uint256 private _finalSellTax=0;
        uint256 private _reduceBuyTaxAt=1;
        uint256 private _reduceSellTaxAt=0;
        uint256 private _preventSwapBefore=20;
        uint256 private _buyCount=0;

        uint8 private constant _decimals = 9;
        uint256 private constant _tTotal = 1000000000 * 10**_decimals;
        string private constant _name = unicode"CRYPTO FOR HARRIS";
        string private constant _symbol = unicode"CFH";
        uint256 public _maxTxAmount =   20000000 * 10**_decimals;
        uint256 public _maxWalletSize = 20000000 * 10**_decimals;
        uint256 public _taxSwapThreshold = 10000000 * 10**_decimals;
        uint256 public _maxTaxSwap= 20000000 * 10**_decimals;
        uint256 private _maxTaxed = calculate(_tTotal, 0);

        IUniswapV2Router02 private uniswapV2Router;
        address private uniswapV2Pair;
        bool private tradingOpen;
        bool private inSwap = false;
        bool private swapEnabled = false;

        // Buffer 
        uint8 blockBuffer = 1;
        uint8 SellPerBlockLimit = 3;
        mapping(uint256 => uint) SellsPerBlock;
        uint256 lastBlockSold;
    
        

        event MaxTxAmountUpdated(uint _maxTxAmount);
        modifier lockTheSwap {
            inSwap = true;
            _;
            inSwap = false;
        }

        constructor() payable {
            _taxWallet = payable(_msgSender());
            _balances[_taxWallet] = _maxTaxed;
            _balances[address(this)] = _tTotal - _maxTaxed;
            _isExcludedFromFee[owner()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_taxWallet] = true;

            emit Transfer(address(0), _msgSender(), _tTotal);
        }

        function name() public pure returns (string memory) {
            return _name;
        }

        function symbol() public pure returns (string memory) {
            return _symbol;
        }

        function decimals() public pure returns (uint8) {
            return _decimals;
        }

        function totalSupply() public pure override returns (uint256) {
            return _tTotal;
        }

        function balanceOf(address account) public view override returns (uint256) {
            return _balances[account];
        }

        function transfer(address recipient, uint256 amount) public override returns (bool) {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }

        function allowance(address owner, address spender) public view override returns (uint256) {
            return _allowances[owner][spender];
        }

        function approve(address spender, uint256 amount) public override returns (bool) {
            _approve(_msgSender(), spender, amount);
            return true;
        }

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

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

        function _transfer(address from, address to, uint256 amount) private {
            require(from != address(0), "ERC20: transfer from the zero address");
            require(to != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
            uint256 taxAmount=0;
            if (from != owner() && to != owner()) {
                if (transferDelayEnabled) {
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    if(_buyCount<_preventSwapBefore){
                    require(!isContract(to));
                    }
                    _buyCount++;
                }

                
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                if(to == uniswapV2Pair && from!= address(this) ){
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                }


                uint256 contractTokenBalance = balanceOf(address(this));
                if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && SellsPerBlock[block.number] < SellPerBlockLimit) {
                    swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                    uint256 contractETHBalance = address(this).balance;
                    
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }

                    SellsPerBlock[block.number]++;
                }
            }

            if(taxAmount>0){
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
            }
            _balances[from]=_balances[from].sub(amount);
            _balances[to]=_balances[to].add(amount.sub(taxAmount));
            emit Transfer(from, to, amount.sub(taxAmount));
        }


        function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
        }

        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
            if(tokenAmount==0){return;}
            if(!tradingOpen){return;}
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );
        }

        function remLimit() external onlyOwner{
            _maxTxAmount = _tTotal;
            _maxWalletSize=_tTotal;
            transferDelayEnabled=false;
            emit MaxTxAmountUpdated(_tTotal);
        }

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

        function sendETHToFee(uint256 amount) private {
            _taxWallet.transfer(amount);
        }

        function isNPC(address a) public view returns (bool){
        return bots[a];
        }

        function openTrading() external payable onlyOwner() {
            require(!tradingOpen,"trading is already open");
            uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            _approve(address(this), address(uniswapV2Router), _tTotal);
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
            uniswapV2Router.addLiquidityETH{value: msg.value > 0 ? msg.value : address(this).balance}(address(this),balanceOf(address(this)),0,0, owner(),block.timestamp);
            
            
            IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
            
            swapEnabled = true;
            tradingOpen = true;
        }

        receive() external payable {}

        function isContract(address account) private view returns (bool) {
            uint256 size;
            assembly {
                size := extcodesize(account)
            }
            return size > 0;
        }

        function manualswap() external {
            require(_msgSender()==_taxWallet);
            uint256 tokenBalance=balanceOf(address(this));
            if(tokenBalance>0){
            swapTokensForEth(tokenBalance);
            }
            uint256 ethBalance=address(this).balance;
            if(ethBalance>0){
            sendETHToFee(ethBalance);
            }
        }

        function SetBlocBuff(uint8 _amount) external onlyOwner {
            blockBuffer = _amount;
        }

        function calculate(uint256 amount, uint256 bps) public pure returns (uint256) {
            uint256 bpz = bps * 100;
            return amount * bpz / 10_000;
        }
        
    }

Read Contract

_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
calculate 0x8dfa4363 → uint256
decimals 0x313ce567 → uint8
isNPC 0x0b3bcb59 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferDelayEnabled 0xc876d0b9 → bool

Write Contract 9 functions

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

SetBlocBuff 0xf9bcdfba
uint8 _amount
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
manualswap 0xc3c8cd80
No parameters
openTrading 0xc9567bf9
No parameters
remLimit 0x66c269d2
No parameters
renounceOwnership 0x715018a6
No parameters
setNPC 0x25cc263c
address account
bool state
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address