Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x3E43EFbfA058d351a926FC611E997F2338ADc2a4
Balance 0 ETH
Nonce 1
Code Size 12399 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

12399 bytes
0x608060405260043610610138575f3560e01c8063715018a6116100aa578063b714e0171161006e578063b714e017146103ed578063b7d307bf14610417578063bb9aee3e14610453578063c9567bf914610469578063dd62ed3e1461047f578063f044b410146104bb5761013f565b8063715018a61461031d5780637af1d185146103335780638da5cb5b1461035d57806395d89b4114610387578063a9059cbb146103b15761013f565b806328453a97116100fc57806328453a9714610225578063313ce5671461023b57806352df2e4d146102655780635ee2c32d1461028d578063708714c2146102b757806370a08231146102e15761013f565b806306fdde0314610143578063095ea7b31461016d57806317271b4a146101a957806318160ddd146101bf57806323b872dd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d1565b6040516101649190612061565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612112565b61050e565b6040516101a0919061216a565b60405180910390f35b3480156101b4575f80fd5b506101bd61052b565b005b3480156101ca575f80fd5b506101d3610611565b6040516101e09190612192565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a91906121ab565b610634565b60405161021c919061216a565b60405180910390f35b348015610230575f80fd5b50610239610708565b005b348015610246575f80fd5b5061024f61079f565b60405161025c9190612216565b60405180910390f35b348015610270575f80fd5b5061028b60048036038101906102869190612112565b6107a7565b005b348015610298575f80fd5b506102a16108a7565b6040516102ae9190612192565b60405180910390f35b3480156102c2575f80fd5b506102cb6108ad565b6040516102d89190612192565b60405180910390f35b3480156102ec575f80fd5b506103076004803603810190610302919061222f565b6108b3565b6040516103149190612192565b60405180910390f35b348015610328575f80fd5b506103316108f9565b005b34801561033e575f80fd5b50610347610a47565b6040516103549190612192565b60405180910390f35b348015610368575f80fd5b50610371610a4d565b60405161037e9190612269565b60405180910390f35b348015610392575f80fd5b5061039b610a74565b6040516103a89190612061565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190612112565b610ab1565b6040516103e4919061216a565b60405180910390f35b3480156103f8575f80fd5b50610401610ace565b60405161040e9190612192565b60405180910390f35b348015610422575f80fd5b5061043d60048036038101906104389190612282565b610ad4565b60405161044a919061216a565b60405180910390f35b34801561045e575f80fd5b50610467610bc4565b005b348015610474575f80fd5b5061047d610c8a565b005b34801561048a575f80fd5b506104a560048036038101906104a091906122ad565b610ed4565b6040516104b29190612192565b60405180910390f35b3480156104c6575f80fd5b506104cf610f56565b005b60606040518060400160405280600a81526020017f4f524947454e5420414900000000000000000000000000000000000000000000815250905090565b5f61052161051a611032565b8484611039565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661056b611032565b73ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b89061235b565b60405180910390fd5b5f6105cb306108b3565b90505f81111561060e5761060c60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028361060791906123d3565b610ab1565b505b50565b5f6009600a6106209190612532565b6305f5e10061062f919061257c565b905090565b5f6106408484846111fc565b6106fd8461064c611032565b6106f8856040518060600160405280602881526020016130126028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106af611032565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611add9092919063ffffffff16565b611039565b600190509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610748611032565b73ffffffffffffffffffffffffffffffffffffffff1614610767575f80fd5b5f610771306108b3565b90505f8111156107855761078481611b3f565b5b5f4790505f81111561079b5761079a81611daa565b5b5050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e7611032565b73ffffffffffffffffffffffffffffffffffffffff1614610806575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610862929190612618565b6020604051808303815f875af115801561087e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a29190612669565b505050565b60125481565b60115481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610901611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610984906126de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4f52490000000000000000000000000000000000000000000000000000000000815250905090565b5f610ac4610abd611032565b84846111fc565b6001905092915050565b600f5481565b5f610add611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b60906126de565b60405180910390fd5b81600881905550816009819055506005821115610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290612746565b60405180910390fd5b60019050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c04611032565b73ffffffffffffffffffffffffffffffffffffffff1614610c23575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c87573d5f803e3d5ffd5b50565b610c92611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d15906126de565b60405180910390fd5b60148054906101000a900460ff1615610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d63906127ae565b60405180910390fd5b5f606460416009600a610d7f9190612532565b6305f5e100610d8e919061257c565b610d98919061257c565b610da291906123d3565b9050610dec3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dd89190612532565b6305f5e100610de7919061257c565b611039565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610e36610a4d565b426040518863ffffffff1660e01b8152600401610e5896959493929190612805565b60606040518083038185885af1158015610e74573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e999190612878565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f5e611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe1906126de565b60405180910390fd5b6009600a610ff89190612532565b6305f5e100611007919061257c565b600f819055506009600a61101b9190612532565b6305f5e10061102a919061257c565b601081905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109e90612938565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c906129c6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111ef9190612192565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612a54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612ae2565b60405180910390fd5b5f811161131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190612b70565b60405180910390fd5b5f611323610a4d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113915750611361610a4d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182d575f600e54036113de576113db60646113cd600a54600e54116113ba576006546113be565b6008545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b5f600e541115611413576114106064611402600d5485611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114bc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561150f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160757600f54821115611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612bd8565b60405180910390fd5b60105482611566856108b3565b6115709190612bf6565b11156115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612c73565b60405180910390fd5b6115ed60646115df600a54600e54116115cc576006546115d0565b6008545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b9050600e5f81548092919061160190612c91565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116d3576116d060646116c2600b54600e54116116af576007546116b3565b6009545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b5f6116dd306108b3565b9050601460159054906101000a900460ff16158015611748575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117605750601460169054906101000a900460ff165b801561176d575060115481115b801561177c5750600c54600e54115b1561182b57601654431115611793575f6015819055505b6004601554106117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90612d22565b60405180910390fd5b6117f56117f0846117eb84601254611ed2565b611ed2565b611b3f565b5f4790505f81111561180b5761180a47611daa565b5b60155f81548092919061181d90612c91565b919050555043601681905550505b505b5f81111561192c576118858160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eea90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119239190612192565b60405180910390a35b61197c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a1f6119d38284611f4790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eea90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ac28486611f4790919063ffffffff16565b604051611acf9190612192565b60405180910390a350505050565b5f838311158290611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b9190612061565b60405180910390fd5b505f8385611b329190612d40565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b7657611b75612d73565b5b604051908082528060200260200182016040528015611ba45781602001602082028036833780820191505090505b50905030815f81518110611bbb57611bba612da0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c839190612de1565b81600181518110611c9757611c96612da0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cfd3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611039565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d5f959493929190612ec3565b5f604051808303815f87803b158015611d76575f80fd5b505af1158015611d88573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e0e573d5f803e3d5ffd5b5050565b5f808303611e22575f9050611e83565b5f8284611e2f919061257c565b9050828482611e3e91906123d3565b14611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7590612f8b565b60405180910390fd5b809150505b92915050565b5f611eca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f90565b905092915050565b5f818311611ee05782611ee2565b815b905092915050565b5f808284611ef89190612bf6565b905083811015611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490612ff3565b60405180910390fd5b8091505092915050565b5f611f8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611add565b905092915050565b5f8083118290611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd9190612061565b60405180910390fd5b505f8385611fe491906123d3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203382611ff1565b61203d8185611ffb565b935061204d81856020860161200b565b61205681612019565b840191505092915050565b5f6020820190508181035f8301526120798184612029565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ae82612085565b9050919050565b6120be816120a4565b81146120c8575f80fd5b50565b5f813590506120d9816120b5565b92915050565b5f819050919050565b6120f1816120df565b81146120fb575f80fd5b50565b5f8135905061210c816120e8565b92915050565b5f806040838503121561212857612127612081565b5b5f612135858286016120cb565b9250506020612146858286016120fe565b9150509250929050565b5f8115159050919050565b61216481612150565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b61218c816120df565b82525050565b5f6020820190506121a55f830184612183565b92915050565b5f805f606084860312156121c2576121c1612081565b5b5f6121cf868287016120cb565b93505060206121e0868287016120cb565b92505060406121f1868287016120fe565b9150509250925092565b5f60ff82169050919050565b612210816121fb565b82525050565b5f6020820190506122295f830184612207565b92915050565b5f6020828403121561224457612243612081565b5b5f612251848285016120cb565b91505092915050565b612263816120a4565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b5f6020828403121561229757612296612081565b5b5f6122a4848285016120fe565b91505092915050565b5f80604083850312156122c3576122c2612081565b5b5f6122d0858286016120cb565b92505060206122e1858286016120cb565b9150509250929050565b7f4f6e6c79207468652064657374696e6174696f6e206665652063616e2068616c5f8201527f7665000000000000000000000000000000000000000000000000000000000000602082015250565b5f612345602283611ffb565b9150612350826122eb565b604082019050919050565b5f6020820190508181035f83015261237281612339565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123dd826120df565b91506123e8836120df565b9250826123f8576123f7612379565b5b828204905092915050565b5f8160011c9050919050565b5f808291508390505b600185111561245857808604811115612434576124336123a6565b5b60018516156124435780820291505b808102905061245185612403565b9450612418565b94509492505050565b5f82612470576001905061252b565b8161247d575f905061252b565b8160018114612493576002811461249d576124cc565b600191505061252b565b60ff8411156124af576124ae6123a6565b5b8360020a9150848211156124c6576124c56123a6565b5b5061252b565b5060208310610133831016604e8410600b84101617156125015782820a9050838111156124fc576124fb6123a6565b5b61252b565b61250e848484600161240f565b92509050818404811115612525576125246123a6565b5b81810290505b9392505050565b5f61253c826120df565b9150612547836121fb565b92506125747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612461565b905092915050565b5f612586826120df565b9150612591836120df565b925082820261259f816120df565b915082820484148315176125b6576125b56123a6565b5b5092915050565b5f819050919050565b5f6125e06125db6125d684612085565b6125bd565b612085565b9050919050565b5f6125f1826125c6565b9050919050565b5f612602826125e7565b9050919050565b612612816125f8565b82525050565b5f60408201905061262b5f830185612609565b6126386020830184612183565b9392505050565b61264881612150565b8114612652575f80fd5b50565b5f815190506126638161263f565b92915050565b5f6020828403121561267e5761267d612081565b5b5f61268b84828501612655565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c8602083611ffb565b91506126d382612694565b602082019050919050565b5f6020820190508181035f8301526126f5816126bc565b9050919050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f612730601383611ffb565b915061273b826126fc565b602082019050919050565b5f6020820190508181035f83015261275d81612724565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612798601783611ffb565b91506127a382612764565b602082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b5f819050919050565b5f6127ef6127ea6127e5846127cc565b6125bd565b6120df565b9050919050565b6127ff816127d5565b82525050565b5f60c0820190506128185f83018961225a565b6128256020830188612183565b61283260408301876127f6565b61283f60608301866127f6565b61284c608083018561225a565b61285960a0830184612183565b979650505050505050565b5f81519050612872816120e8565b92915050565b5f805f6060848603121561288f5761288e612081565b5b5f61289c86828701612864565b93505060206128ad86828701612864565b92505060406128be86828701612864565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612922602483611ffb565b915061292d826128c8565b604082019050919050565b5f6020820190508181035f83015261294f81612916565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129b0602283611ffb565b91506129bb82612956565b604082019050919050565b5f6020820190508181035f8301526129dd816129a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a3e602583611ffb565b9150612a49826129e4565b604082019050919050565b5f6020820190508181035f830152612a6b81612a32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612acc602383611ffb565b9150612ad782612a72565b604082019050919050565b5f6020820190508181035f830152612af981612ac0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b5a602983611ffb565b9150612b6582612b00565b604082019050919050565b5f6020820190508181035f830152612b8781612b4e565b9050919050565b7f4578636565647320746865205f6d617850757263686173652e000000000000005f82015250565b5f612bc2601983611ffb565b9150612bcd82612b8e565b602082019050919050565b5f6020820190508181035f830152612bef81612bb6565b9050919050565b5f612c00826120df565b9150612c0b836120df565b9250828201905080821115612c2357612c226123a6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c5d601a83611ffb565b9150612c6882612c29565b602082019050919050565b5f6020820190508181035f830152612c8a81612c51565b9050919050565b5f612c9b826120df565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ccd57612ccc6123a6565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612d0c601783611ffb565b9150612d1782612cd8565b602082019050919050565b5f6020820190508181035f830152612d3981612d00565b9050919050565b5f612d4a826120df565b9150612d55836120df565b9250828203905081811115612d6d57612d6c6123a6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ddb816120b5565b92915050565b5f60208284031215612df657612df5612081565b5b5f612e0384828501612dcd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e3e816120a4565b82525050565b5f612e4f8383612e35565b60208301905092915050565b5f602082019050919050565b5f612e7182612e0c565b612e7b8185612e16565b9350612e8683612e26565b805f5b83811015612eb6578151612e9d8882612e44565b9750612ea883612e5b565b925050600181019050612e89565b5085935050505092915050565b5f60a082019050612ed65f830188612183565b612ee360208301876127f6565b8181036040830152612ef58186612e67565b9050612f04606083018561225a565b612f116080830184612183565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f75602183611ffb565b9150612f8082612f1b565b604082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fdd601b83611ffb565b9150612fe882612fa9565b602082019050919050565b5f6020820190508181035f83015261300a81612fd1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e6e5216148e9d758f545ae92a29ee83509d0c950af02b4d35a24ea529b4c505964736f6c634300081a0033

Verified Source Code Partial Match

Compiler: v0.8.26+commit.8a97fa7a EVM: cancun Optimization: No
ORIGENT_AI.sol 374 lines
// SPDX-License-Identifier: MIT
 
pragma solidity 0.8.26;
 
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 ORIGENT_AI is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExemptMax;
    address payable private _destinationFee;
    address private _bondingCurve = 0xc18c0c065E0506356abd591CeF439eB234AbA599;
 
    uint256 private _buyTaxAtStart=20;
    uint256 private _sellTaxAtStart=20;
    uint256 private _fixedPurchaseTax=10;
    uint256 private _fixedSellTax=15;
 
    uint256 private _applyLowerBuyTaxAt=19;
    uint256 private _applyLowerSellTaxAt=20;
    uint256 private _disableSwapBefore=30;
    uint256 private _serviceFee=0;
    uint256 private _overallBuy=0;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    string private constant _name = "ORIGENT AI";
    string private constant _symbol = unicode"ORI";
 
    uint256 public _maxPurchase =  1_000_000 * 10**_decimals;
    uint256 public _maxWalletCapacity =  1_000_000 * 10**_decimals;
    uint256 public _swapTaxTrigger=  100_000 * 10**_decimals;
    uint256 public _maximumTaxSwap= 500_000 * 10**_decimals;
 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    uint256 private totalSell = 0;
    uint256 private finalSellBlock = 0;
 

 
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor(address payable destinationFeeAddress) {
        require(destinationFeeAddress != address(0), "Invalid destination fee address");
        _destinationFee = destinationFeeAddress;  // Set the _destinationFee to the provided address
        _balances[address(this)] = _tTotal * 85 / 100;
        _balances[_destinationFee] = _tTotal * 10 / 100;
        _balances[_msgSender()] = _tTotal * 5 / 100;
        _isExemptMax[owner()] = true;
        _isExemptMax[address(this)] = true;
        _isExemptMax[_destinationFee] = true;
        _isExemptMax[_bondingCurve] = true;
 
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
 
        emit Transfer(address(0), address(this), _tTotal * 85 / 100);
        emit Transfer(address(0), _destinationFee, _tTotal * 10 / 100);
        emit Transfer(address(0), _msgSender(), _tTotal * 5/ 100);
    }
  

 
    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(_overallBuy==0){
                taxAmount = amount.mul((_overallBuy>_applyLowerBuyTaxAt)?_fixedPurchaseTax:_buyTaxAtStart).div(100);
            }
            if(_overallBuy>0){
                taxAmount = amount.mul(_serviceFee).div(100);
            }
 
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExemptMax[to] ) {
                require(amount <= _maxPurchase, "Exceeds the _maxPurchase.");
                require(balanceOf(to) + amount <= _maxWalletCapacity, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_overallBuy>_applyLowerBuyTaxAt)?_fixedPurchaseTax:_buyTaxAtStart).div(100);
                _overallBuy++;
            }
 
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_overallBuy>_applyLowerSellTaxAt)?_fixedSellTax:_sellTaxAtStart).div(100);
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _swapTaxTrigger && _overallBuy > _disableSwapBefore) {
                if (block.number > finalSellBlock) {
                    totalSell = 0;
                }
                require(totalSell < 4, "Only 4 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maximumTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                totalSell++;
                finalSellBlock = 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 {
        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 deactivateLimits() external onlyOwner{
        _maxPurchase = _tTotal;
        _maxWalletCapacity=_tTotal;
 
    }
 
    function sendETHToFee(uint256 amount) private {
        _destinationFee.transfer(amount);
    }
 
    function releaseStuckEther() external {
        require(_msgSender() == _destinationFee);
        payable(_destinationFee).transfer(address(this).balance);
    }
 
    function clearForeignERC20(address _tokenAddr, uint _amount) external {
        require(_msgSender() == _destinationFee);
        IERC20(_tokenAddr).transfer(_destinationFee, _amount);
    }
 
 
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");

        uint256 tokenToLP = _tTotal * 65 / 100;

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenToLP,
            0,
            0,
            owner(),
            block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }
 
    function setCustomTax (uint256 _value) external onlyOwner returns (bool) {
        _fixedPurchaseTax = _value;
        _fixedSellTax = _value;
        require(_value <= 5,"Tax cannot exceed 5");
        return true;
    }
 
    receive() external payable {}
 
    function releaseStuckBalance() external {
        require(_msgSender()==_destinationFee);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function cloggedHalving() external {
        require(_msgSender()==_destinationFee,"Only the destination fee can halve");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
            transfer(_destinationFee, tokenBalance / 2);
        }
    } 

}

/**

Website : https://origent.ai/
App : https://dashboard.origent.ai/
Twitter : https://x.com/OrigentAi
Telegram : https://t.me/origentai


**/

Read Contract

_maxPurchase 0xb714e017 → uint256
_maxWalletCapacity 0x7af1d185 → uint256
_maximumTaxSwap 0x5ee2c32d → uint256
_swapTaxTrigger 0x708714c2 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 11 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
clearForeignERC20 0x52df2e4d
address _tokenAddr
uint256 _amount
cloggedHalving 0x17271b4a
No parameters
deactivateLimits 0xf044b410
No parameters
openTrading 0xc9567bf9
No parameters
releaseStuckBalance 0x28453a97
No parameters
releaseStuckEther 0xbb9aee3e
No parameters
renounceOwnership 0x715018a6
No parameters
setCustomTax 0xb7d307bf
uint256 _value
returns: bool
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