Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xDEF1245F98FeDd2e0108Acc185eb3ECA2c106eF6
Balance 0.000000000 ETH
Nonce 1
Code Size 13095 bytes
Last Active
Indexed Transactions 14 (24,281,20124,318,413)
Gas Used (indexed) 524,110
External Etherscan · Sourcify

Contract Bytecode

13095 bytes
0x608060405260043610610212575f3560e01c8063768dc71011610117578063a6d4ec321161009f578063dbac26e91161006e578063dbac26e914610745578063dd62ed3e14610781578063ec1c31de146107bd578063f2fde38b146107e7578063f3290d751461080f57610219565b8063a6d4ec321461068d578063a9059cbb146106b5578063bf474bed146106f1578063d89c74f31461071b57610219565b806395d89b41116100e657806395d89b41146105bd578063962dfc75146105e75780639630ab9214610611578063983e91581461063b5780639c92c0451461066357610219565b8063768dc710146105175780637937f57c146105535780638da5cb5b1461057d57806393271761146105a757610219565b80632e0e863a1161019a5780634fdaabed116101695780634fdaabed1461045b57806351bc3c851461048557806370a082311461049b578063715018a6146104d7578063757a5c32146104ed57610219565b80632e0e863a146103b5578063313ce567146103df578063415665851461040957806343a189091461043157610219565b806312bf7156116101e157806312bf7156146102d5578063131e00b7146102fd57806318160ddd1461032557806323b872dd1461034f578063243df9b01461038b57610219565b8063034832bd1461021d57806306fdde0314610245578063095ea7b31461026f57806311a63e17146102ab57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610243600480360381019061023e9190612360565b610837565b005b348015610250575f80fd5b5061025961088b565b60405161026691906123fb565b60405180910390f35b34801561027a575f80fd5b5061029560048036038101906102909190612475565b6108c8565b6040516102a291906124cd565b60405180910390f35b3480156102b6575f80fd5b506102bf6108e5565b6040516102cc9190612506565b60405180910390f35b3480156102e0575f80fd5b506102fb60048036038101906102f6919061251f565b61090a565b005b348015610308575f80fd5b50610323600480360381019061031e919061256f565b610992565b005b348015610330575f80fd5b506103396109f2565b60405161034691906125a9565b60405180910390f35b34801561035a575f80fd5b50610375600480360381019061037091906125c2565b610a15565b60405161038291906124cd565b60405180910390f35b348015610396575f80fd5b5061039f610ae9565b6040516103ac91906125a9565b60405180910390f35b3480156103c0575f80fd5b506103c9610aef565b6040516103d691906125a9565b60405180910390f35b3480156103ea575f80fd5b506103f3610af5565b604051610400919061262d565b60405180910390f35b348015610414575f80fd5b5061042f600480360381019061042a919061256f565b610afd565b005b34801561043c575f80fd5b50610445610b5c565b6040516104529190612506565b60405180910390f35b348015610466575f80fd5b5061046f610b81565b60405161047c91906124cd565b60405180910390f35b348015610490575f80fd5b50610499610b94565b005b3480156104a6575f80fd5b506104c160048036038101906104bc919061256f565b610bd4565b6040516104ce91906125a9565b60405180910390f35b3480156104e2575f80fd5b506104eb610c1a565b005b3480156104f8575f80fd5b50610501610c2d565b60405161050e91906125a9565b60405180910390f35b348015610522575f80fd5b5061053d6004803603810190610538919061256f565b610c33565b60405161054a91906124cd565b60405180910390f35b34801561055e575f80fd5b50610567610c50565b60405161057491906125a9565b60405180910390f35b348015610588575f80fd5b50610591610c56565b60405161059e9190612655565b60405180910390f35b3480156105b2575f80fd5b506105bb610c7d565b005b3480156105c8575f80fd5b506105d1610cf8565b6040516105de91906123fb565b60405180910390f35b3480156105f2575f80fd5b506105fb610d35565b6040516106089190612506565b60405180910390f35b34801561061c575f80fd5b50610625610d5a565b60405161063291906125a9565b60405180910390f35b348015610646575f80fd5b50610661600480360381019061065c919061256f565b610d60565b005b34801561066e575f80fd5b50610677610dbf565b60405161068491906125a9565b60405180910390f35b348015610698575f80fd5b506106b360048036038101906106ae919061251f565b610dc5565b005b3480156106c0575f80fd5b506106db60048036038101906106d69190612475565b610e4d565b6040516106e891906124cd565b60405180910390f35b3480156106fc575f80fd5b50610705610e6a565b60405161071291906125a9565b60405180910390f35b348015610726575f80fd5b5061072f610e70565b60405161073c91906125a9565b60405180910390f35b348015610750575f80fd5b5061076b6004803603810190610766919061256f565b610e76565b60405161077891906124cd565b60405180910390f35b34801561078c575f80fd5b506107a760048036038101906107a2919061266e565b610e93565b6040516107b491906125a9565b60405180910390f35b3480156107c8575f80fd5b506107d1610f15565b6040516107de91906125a9565b60405180910390f35b3480156107f2575f80fd5b5061080d6004803603810190610808919061256f565b610f1b565b005b34801561081a575f80fd5b506108356004803603810190610830919061256f565b610f9d565b005b61083f610ffd565b5f8111610881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610878906126f6565b60405180910390fd5b8060048190555050565b60606040518060400160405280600481526020017f4b69776900000000000000000000000000000000000000000000000000000000815250905090565b5f6108db6108d461107b565b8484611082565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610912610ffd565b5f8183856109209190612741565b61092a9190612741565b90506005811115610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610967906127be565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b61099a610ffd565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6012600a610a01919061290b565b633b9aca00610a109190612955565b905090565b5f610a21848484611245565b610ade84610a2d61107b565b610ad9856040518060600160405280602881526020016132ca6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a9061107b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a209092919063ffffffff16565b611082565b600190509392505050565b600f5481565b600b5481565b5f6012905090565b610b05610ffd565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260169054906101000a900460ff1681565b610b9c610ffd565b5f610ba630610bd4565b90505f811115610bba57610bb981611a82565b5b5f4790505f811115610bd057610bcf81611cf6565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c22610ffd565b610c2b5f6120a1565b565b60105481565b6003602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c85610ffd565b60011515601260169054906101000a900460ff16151503610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906129e0565b60405180910390fd5b6001601260166101000a81548160ff021916908315150217905550565b60606040518060400160405280600481526020017f4b49574900000000000000000000000000000000000000000000000000000000815250905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610d68610ffd565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600c5481565b610dcd610ffd565b5f818385610ddb9190612741565b610de59190612741565b90506005811115610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290612a6e565b60405180910390fd5b83600d8190555082600e8190555081600f819055508060108190555050505050565b5f610e60610e5961107b565b8484611245565b6001905092915050565b60045481565b600d5481565b6005602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b610f23610ffd565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612afc565b60405180910390fd5b610f9a816120a1565b50565b610fa5610ffd565b600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61100561107b565b73ffffffffffffffffffffffffffffffffffffffff16611023610c56565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090612b64565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612bf2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612c80565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123891906125a9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90612d0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890612d9c565b60405180910390fd5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113bf575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612e04565b60405180910390fd5b5f8111611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612e92565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114df575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561177057601260169054906101000a900460ff16611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a90612efa565b60405180910390fd5b5f600c5411156116175760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115e6575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611616576116136064611605600c548561216290919063ffffffff16565b6121d990919063ffffffff16565b90505b5b5f60105411156116a15760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a05761169d606461168f6010548561216290919063ffffffff16565b6121d990919063ffffffff16565b90505b5b5f6116ab30610bd4565b9050601260149054906101000a900460ff16158015611716575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561172e5750601260159054906101000a900460ff165b801561173b575060045481115b801561174857505f601054115b1561176e5761175681611a82565b5f4790505f81111561176c5761176b47611cf6565b5b505b505b5f81111561186f576117c88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161186691906125a9565b60405180910390a35b6118bf8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611962611916828461227f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a05848661227f90919063ffffffff16565b604051611a1291906125a9565b60405180910390a350505050565b5f838311158290611a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5e91906123fb565b60405180910390fd5b505f8385611a759190612f18565b9050809150509392505050565b6001601260146101000a81548160ff0219169083151502179055505f810315611cd9575f600267ffffffffffffffff811115611ac157611ac0612f4b565b5b604051908082528060200260200182016040528015611aef5781602001602082028036833780820191505090505b50905030815f81518110611b0657611b05612f78565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611baa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bce9190612fb9565b81600181518110611be257611be1612f78565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c483060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611082565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611caa9594939291906130dd565b5f604051808303815f87803b158015611cc1575f80fd5b505af1158015611cd3573d5f803e3d5ffd5b50505050505b5f601260146101000a81548160ff02191690831515021790555050565b5f81031561209e575f611d28601054611d1a600d548561216290919063ffffffff16565b6121d990919063ffffffff16565b90505f611d54601054611d46600f548661216290919063ffffffff16565b6121d990919063ffffffff16565b90505f611d80601054611d72600e548761216290919063ffffffff16565b6121d990919063ffffffff16565b90505f831115611e8a575f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051611dd090613162565b5f6040518083038185875af1925050503d805f8114611e0a576040519150601f19603f3d011682016040523d82523d5f602084013e611e0f565b606091505b5050905080611e885760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db5785604051611e7f91906125a9565b60405180910390a25b505b5f821115611f92575f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611ed890613162565b5f6040518083038185875af1925050503d805f8114611f12576040519150601f19603f3d011682016040523d82523d5f602084013e611f17565b606091505b5050905080611f905760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db5784604051611f8791906125a9565b60405180910390a25b505b5f81111561209a575f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611fe090613162565b5f6040518083038185875af1925050503d805f811461201a576040519150601f19603f3d011682016040523d82523d5f602084013e61201f565b606091505b50509050806120985760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db578360405161208f91906125a9565b60405180910390a25b505b5050505b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303612172575f90506121d3565b5f828461217f9190612955565b905082848261218e91906131a3565b146121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c590613243565b60405180910390fd5b809150505b92915050565b5f61221a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c8565b905092915050565b5f8082846122309190612741565b905083811015612275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226c906132ab565b60405180910390fd5b8091505092915050565b5f6122c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a20565b905092915050565b5f808311829061230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230591906123fb565b60405180910390fd5b505f838561231c91906131a3565b9050809150509392505050565b5f80fd5b5f819050919050565b61233f8161232d565b8114612349575f80fd5b50565b5f8135905061235a81612336565b92915050565b5f6020828403121561237557612374612329565b5b5f6123828482850161234c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123cd8261238b565b6123d78185612395565b93506123e78185602086016123a5565b6123f0816123b3565b840191505092915050565b5f6020820190508181035f83015261241381846123c3565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124448261241b565b9050919050565b6124548161243a565b811461245e575f80fd5b50565b5f8135905061246f8161244b565b92915050565b5f806040838503121561248b5761248a612329565b5b5f61249885828601612461565b92505060206124a98582860161234c565b9150509250929050565b5f8115159050919050565b6124c7816124b3565b82525050565b5f6020820190506124e05f8301846124be565b92915050565b5f6124f08261241b565b9050919050565b612500816124e6565b82525050565b5f6020820190506125195f8301846124f7565b92915050565b5f805f6060848603121561253657612535612329565b5b5f6125438682870161234c565b93505060206125548682870161234c565b92505060406125658682870161234c565b9150509250925092565b5f6020828403121561258457612583612329565b5b5f61259184828501612461565b91505092915050565b6125a38161232d565b82525050565b5f6020820190506125bc5f83018461259a565b92915050565b5f805f606084860312156125d9576125d8612329565b5b5f6125e686828701612461565b93505060206125f786828701612461565b92505060406126088682870161234c565b9150509250925092565b5f60ff82169050919050565b61262781612612565b82525050565b5f6020820190506126405f83018461261e565b92915050565b61264f8161243a565b82525050565b5f6020820190506126685f830184612646565b92915050565b5f806040838503121561268457612683612329565b5b5f61269185828601612461565b92505060206126a285828601612461565b9150509250929050565b7f5468726573686f6c642063616e6e6f74206265203000000000000000000000005f82015250565b5f6126e0601583612395565b91506126eb826126ac565b602082019050919050565b5f6020820190508181035f83015261270d816126d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61274b8261232d565b91506127568361232d565b925082820190508082111561276e5761276d612714565b5b92915050565b7f427579206665652063616e6e6f7420626520686967686572207468616e2035255f82015250565b5f6127a8602083612395565b91506127b382612774565b602082019050919050565b5f6020820190508181035f8301526127d58161279c565b9050919050565b5f8160011c9050919050565b5f808291508390505b60018511156128315780860481111561280d5761280c612714565b5b600185161561281c5780820291505b808102905061282a856127dc565b94506127f1565b94509492505050565b5f826128495760019050612904565b81612856575f9050612904565b816001811461286c5760028114612876576128a5565b6001915050612904565b60ff84111561288857612887612714565b5b8360020a91508482111561289f5761289e612714565b5b50612904565b5060208310610133831016604e8410600b84101617156128da5782820a9050838111156128d5576128d4612714565b5b612904565b6128e784848460016127e8565b925090508184048111156128fe576128fd612714565b5b81810290505b9392505050565b5f6129158261232d565b915061292083612612565b925061294d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461283a565b905092915050565b5f61295f8261232d565b915061296a8361232d565b92508282026129788161232d565b9150828204841483151761298f5761298e612714565b5b5092915050565b7f4b69776920656e61626c656420616c72656164790000000000000000000000005f82015250565b5f6129ca601483612395565b91506129d582612996565b602082019050919050565b5f6020820190508181035f8301526129f7816129be565b9050919050565b7f53656c6c206665652063616e6e6f7420626520686967686572207468616e20355f8201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a58602183612395565b9150612a63826129fe565b604082019050919050565b5f6020820190508181035f830152612a8581612a4c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae6602683612395565b9150612af182612a8c565b604082019050919050565b5f6020820190508181035f830152612b1381612ada565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b4e602083612395565b9150612b5982612b1a565b602082019050919050565b5f6020820190508181035f830152612b7b81612b42565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bdc602483612395565b9150612be782612b82565b604082019050919050565b5f6020820190508181035f830152612c0981612bd0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c6a602283612395565b9150612c7582612c10565b604082019050919050565b5f6020820190508181035f830152612c9781612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf8602583612395565b9150612d0382612c9e565b604082019050919050565b5f6020820190508181035f830152612d2581612cec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d86602383612395565b9150612d9182612d2c565b604082019050919050565b5f6020820190508181035f830152612db381612d7a565b9050919050565b7f4164647265737320697320626c61636b6c6973746564000000000000000000005f82015250565b5f612dee601683612395565b9150612df982612dba565b602082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e7c602983612395565b9150612e8782612e22565b604082019050919050565b5f6020820190508181035f830152612ea981612e70565b9050919050565b7f4b69776920746f20626520656e61626c656400000000000000000000000000005f82015250565b5f612ee4601283612395565b9150612eef82612eb0565b602082019050919050565b5f6020820190508181035f830152612f1181612ed8565b9050919050565b5f612f228261232d565b9150612f2d8361232d565b9250828203905081811115612f4557612f44612714565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612fb38161244b565b92915050565b5f60208284031215612fce57612fcd612329565b5b5f612fdb84828501612fa5565b91505092915050565b5f819050919050565b5f819050919050565b5f61301061300b61300684612fe4565b612fed565b61232d565b9050919050565b61302081612ff6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130588161243a565b82525050565b5f613069838361304f565b60208301905092915050565b5f602082019050919050565b5f61308b82613026565b6130958185613030565b93506130a083613040565b805f5b838110156130d05781516130b7888261305e565b97506130c283613075565b9250506001810190506130a3565b5085935050505092915050565b5f60a0820190506130f05f83018861259a565b6130fd6020830187613017565b818103604083015261310f8186613081565b905061311e6060830185612646565b61312b608083018461259a565b9695505050505050565b5f81905092915050565b50565b5f61314d5f83613135565b91506131588261313f565b5f82019050919050565b5f61316c82613142565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131ad8261232d565b91506131b88361232d565b9250826131c8576131c7613176565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61322d602183612395565b9150613238826131d3565b604082019050919050565b5f6020820190508181035f83015261325a81613221565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613295601b83612395565b91506132a082613261565b602082019050919050565b5f6020820190508181035f8301526132c281613289565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcf8133da25bef3c7a2297d447cef0935fc39c5aadca6bd851e0d8d87e017d4364736f6c634300081a0033

Verified Source Code Full Match

Compiler: v0.8.26+commit.8a97fa7a EVM: cancun Optimization: No
kiwi.sol 505 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

/*

Twitter: https://x.com/KiwiSwapX
Telegram: http://t.me/KiwiSwaps
Website: http://kiwiswaps.com


██╗  ██╗██╗██╗    ██╗██╗
██║ ██╔╝██║██║    ██║██║
█████╔╝ ██║██║ █╗ ██║██║
██╔═██╗ ██║██║███╗██║██║
██║  ██╗██║╚███╔███╔╝██║
╚═╝  ╚═╝╚═╝ ╚══╝╚══╝ ╚═╝
                        

*/

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;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 Kiwi is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Kiwi";
    string private constant _symbol = unicode"KIWI";
    uint256 public _taxSwapThreshold = 100000 * 10 ** _decimals;
    mapping(address => bool) public blacklisted;

    address payable public _devWallet =
        payable(0x618C8E172b62B900392981AFc8A67FCef448d73C);

    address payable public _charityWallet =
        payable(0x618C8E172b62B900392981AFc8A67FCef448d73C);

    address payable public _marketingWallet =
        payable(0x618C8E172b62B900392981AFc8A67FCef448d73C);

    uint256 public _kiwiMarketingBuyFee = 0;
    uint256 public _kiwiDeveloperBuyFee = 0;
    uint256 public _kiwiCharityBuyFee = 0;
    uint256 public _kiwiTotalBuyFee = 0;

    uint256 public _kiwiMarketingSellFee = 0;
    uint256 public _kiwiCharitySellFee = 0;
    uint256 public _kiwiDeveloperSellFee = 0;
    uint256 public _kiwiTotalSellFee = 0;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public KiwiEnabled = false;

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount);

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // test router address

        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_charityWallet] = true;
        _isExcludedFromFee[_devWallet] = true;
        _isExcludedFromFee[_marketingWallet] = 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(
            !blacklisted[from] && !blacklisted[to],
            "Address is blacklisted"
        );
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(KiwiEnabled, "Kiwi to be enabled");

            if (_kiwiTotalBuyFee > 0) {
                if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    taxAmount = amount.mul(_kiwiTotalBuyFee).div(100);
                }
            }

            if (_kiwiTotalSellFee > 0) {
                if (to == uniswapV2Pair) {
                    taxAmount = amount.mul(_kiwiTotalSellFee).div(100);
                }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _kiwiTotalSellFee > 0
            ) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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;
        }
        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 sendETHToFee(uint256 amount) private {
        if (amount == 0) return;

        uint256 marketingShare = amount.mul(_kiwiMarketingSellFee).div(
            _kiwiTotalSellFee
        );
        uint256 developerShare = amount.mul(_kiwiDeveloperSellFee).div(
            _kiwiTotalSellFee
        );
        uint256 charityShare = amount.mul(_kiwiCharitySellFee).div(
            _kiwiTotalSellFee
        );

        if (marketingShare > 0) {
            (bool success, ) = _marketingWallet.call{value: marketingShare}("");
            if (!success)
                emit TaxWalletPaymentRevert(_marketingWallet, marketingShare);
        }

        if (developerShare > 0) {
            (bool success, ) = _devWallet.call{value: developerShare}("");
            if (!success)
                emit TaxWalletPaymentRevert(_devWallet, developerShare);
        }

        if (charityShare > 0) {
            (bool success, ) = _charityWallet.call{value: charityShare}("");
            if (!success)
                emit TaxWalletPaymentRevert(_charityWallet, charityShare);
        }
    }

    receive() external payable {}

    function enableKiwi() public onlyOwner {
        require(KiwiEnabled != true, "Kiwi enabled already");
        KiwiEnabled = true;
    }

    function updateTaxSwapThreshold(uint256 _taxLimit) public onlyOwner {
        require(_taxLimit > 0, "Threshold cannot be 0");
        _taxSwapThreshold = _taxLimit;
    }

    function excludeFromTaxes(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInTaxes(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function blacklistAddress(address account) external onlyOwner {
        blacklisted[account] = true;
    }

    function whitelistAddress(address account) external onlyOwner {
        blacklisted[account] = false;
    }

    function updateBuyFee(
        uint256 marketingBuyFee,
        uint256 charityBuyFee,
        uint256 developerBuyFee
    ) public onlyOwner {
        uint256 totalBuyFee = marketingBuyFee + charityBuyFee + developerBuyFee;
        require(totalBuyFee <= 5, "Buy fee cannot be higher than 5%");

        _kiwiMarketingBuyFee = marketingBuyFee;
        _kiwiCharityBuyFee = charityBuyFee;
        _kiwiDeveloperBuyFee = developerBuyFee;
        _kiwiTotalBuyFee = totalBuyFee;
    }

    function updateSellFee(
        uint256 marketingSellFee,
        uint256 charitySellFee,
        uint256 developerSellFee
    ) public onlyOwner {
        uint256 totalSellFee = marketingSellFee +
            charitySellFee +
            developerSellFee;
        require(totalSellFee <= 5, "Sell fee cannot be higher than 5%");

        _kiwiMarketingSellFee = marketingSellFee;
        _kiwiCharitySellFee = charitySellFee;
        _kiwiDeveloperSellFee = developerSellFee;
        _kiwiTotalSellFee = totalSellFee;
    }

    function manualSwap() external onlyOwner {
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Read Contract

KiwiEnabled 0x4fdaabed → bool
_charityWallet 0x43a18909 → address
_devWallet 0x11a63e17 → address
_isExcludedFromFee 0x768dc710 → bool
_kiwiCharityBuyFee 0x2e0e863a → uint256
_kiwiCharitySellFee 0xec1c31de → uint256
_kiwiDeveloperBuyFee 0x7937f57c → uint256
_kiwiDeveloperSellFee 0x243df9b0 → uint256
_kiwiMarketingBuyFee 0x9630ab92 → uint256
_kiwiMarketingSellFee 0xd89c74f3 → uint256
_kiwiTotalBuyFee 0x9c92c045 → uint256
_kiwiTotalSellFee 0x757a5c32 → uint256
_marketingWallet 0x962dfc75 → address
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
blacklisted 0xdbac26e9 → bool
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 14 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
blacklistAddress 0xf3290d75
address account
enableKiwi 0x93271761
No parameters
excludeFromTaxes 0x131e00b7
address account
includeInTaxes 0x983e9158
address account
manualSwap 0x51bc3c85
No parameters
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateBuyFee 0x12bf7156
uint256 marketingBuyFee
uint256 charityBuyFee
uint256 developerBuyFee
updateSellFee 0xa6d4ec32
uint256 marketingSellFee
uint256 charitySellFee
uint256 developerSellFee
updateTaxSwapThreshold 0x034832bd
uint256 _taxLimit
whitelistAddress 0x41566585
address account

Recent Transactions

CSV View All 14 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0x37a63996...24e0cc approve 24,318,413 IN 0x6251BE44...0eC1 0 ETH 0.000025900900 ETH EIP-1559
0x2bb3fbe6...6d937e approve 24,289,067 IN 0x541B9b36...C2B7 0 ETH 0.000051257777 ETH Legacy
0x5a293019...51f53b approve 24,284,815 IN 0xd9683Dce...0bCF 0 ETH 0.000117905131 ETH EIP-1559
0xb86cc557...ae0d25 transfer 24,281,316 IN 0xfF794C2a...b4Cc 0 ETH 0.000002495247 ETH EIP-1559
0x754f3ce9...3f71ea transfer 24,281,310 IN 0xF59E10c6...80FC 0 ETH 0.000002488297 ETH EIP-1559
0x082b0c36...51b48f transfer 24,281,300 IN 0xDc230f38...905c 0 ETH 0.000002242308 ETH EIP-1559
0x1bfd9efa...04382d transfer 24,281,294 IN 0x1E7924eA...bDe4 0 ETH 0.000002551778 ETH EIP-1559
0x5a5bcf25...af5537 transfer 24,281,285 IN 0xB4715842...9332 0 ETH 0.000003160970 ETH EIP-1559
0xee2c1996...fa6050 approve 24,281,204 IN 0x567F2267...070d 0 ETH 0.000144364881 ETH EIP-1559
0x192e607d...518220 transfer 24,281,201 IN 0xfb403A6F...a965 0 ETH 0.000003490497 ETH EIP-1559