Forkchoice Ethereum Mainnet

Address Contract Verified

Address 0xba2B26e00609DF273b1b22eeA7c2708af06e5cd1
Balance 0 ETH
Nonce 1
Code Size 13513 bytes
Indexed Transactions 0 (1 on-chain, 0.7% indexed)
External Etherscan · Sourcify

Contract Bytecode

13513 bytes
0x608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103d9578063a9059cbb14610403578063bf474bed1461043f578063c9567bf914610469578063d34628cc1461047f578063dd62ed3e146104a75761013f565b8063715018a61461032f578063751039fc146103455780637d1db4a51461035b5780638da5cb5b146103855780638f9a55c0146103af5761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806331c2d847146102795780633bbac579146102a157806351bc3c85146102dd57806370a08231146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a9578063109daa99146101d357806318160ddd146101e95761013f565b3661013f57005b5f5ffd5b34801561014e575f5ffd5b506101576104e3565b6040516101649190612487565b60405180910390f35b348015610178575f5ffd5b50610193600480360381019061018e9190612545565b610520565b6040516101a0919061259d565b60405180910390f35b3480156101b4575f5ffd5b506101bd61053d565b6040516101ca91906125c5565b60405180910390f35b3480156101de575f5ffd5b506101e7610543565b005b3480156101f4575f5ffd5b506101fd610618565b60405161020a91906125c5565b60405180910390f35b34801561021e575f5ffd5b50610239600480360381019061023491906125de565b61063b565b604051610246919061259d565b60405180910390f35b34801561025a575f5ffd5b5061026361070f565b6040516102709190612649565b60405180910390f35b348015610284575f5ffd5b5061029f600480360381019061029a91906127a2565b610717565b005b3480156102ac575f5ffd5b506102c760048036038101906102c291906127e9565b610839565b6040516102d4919061259d565b60405180910390f35b3480156102e8575f5ffd5b506102f161088b565b005b3480156102fe575f5ffd5b50610319600480360381019061031491906127e9565b610938565b60405161032691906125c5565b60405180910390f35b34801561033a575f5ffd5b5061034361097e565b005b348015610350575f5ffd5b50610359610ace565b005b348015610366575f5ffd5b5061036f610bfe565b60405161037c91906125c5565b60405180910390f35b348015610390575f5ffd5b50610399610c04565b6040516103a69190612823565b60405180910390f35b3480156103ba575f5ffd5b506103c3610c2b565b6040516103d091906125c5565b60405180910390f35b3480156103e4575f5ffd5b506103ed610c31565b6040516103fa9190612487565b60405180910390f35b34801561040e575f5ffd5b5061042960048036038101906104249190612545565b610c6e565b604051610436919061259d565b60405180910390f35b34801561044a575f5ffd5b50610453610c8b565b60405161046091906125c5565b60405180910390f35b348015610474575f5ffd5b5061047d610c91565b005b34801561048a575f5ffd5b506104a560048036038101906104a091906127a2565b6111b3565b005b3480156104b2575f5ffd5b506104cd60048036038101906104c8919061283c565b6112d6565b6040516104da91906125c5565b60405180910390f35b60606040518060400160405280600681526020017f434855434b590000000000000000000000000000000000000000000000000000815250905090565b5f61053361052c611358565b848461135f565b6001905092915050565b60145481565b61054b611358565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf906128c4565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161060e9190612924565b60405180910390a1565b5f6009600a6106279190612a99565b633b9aca006106369190612ae3565b905090565b5f610647848484611522565b61070484610653611358565b6106ff8560405180606001604052806028815260200161346c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106b6611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f039092919063ffffffff16565b61135f565b600190509392505050565b5f6009905090565b61071f611358565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a3906128c4565b60405180910390fd5b5f5f90505b8151811015610835575f60045f8484815181106107d1576107d0612b24565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107b1565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cb611358565b73ffffffffffffffffffffffffffffffffffffffff16146108ea575f5ffd5b5f6108f430610938565b90505f8111801561090f575060168054906101000a900460ff165b1561091e5761091d81611f65565b5b5f4790505f81111561093457610933816121d0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610986611358565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a906128c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad6611358565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a906128c4565b60405180910390fd5b6009600a610b719190612a99565b633b9aca00610b809190612ae3565b6011819055506009600a610b949190612a99565b633b9aca00610ba39190612ae3565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bd89190612a99565b633b9aca00610be79190612ae3565b604051610bf491906125c5565b60405180910390a1565b60115481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f434855434b590000000000000000000000000000000000000000000000000000815250905090565b5f610c81610c7a611358565b8484611522565b6001905092915050565b60135481565b610c99611358565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d906128c4565b60405180910390fd5b601660149054906101000a900460ff1615610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612b9b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e123060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dfe9190612a99565b633b9aca00610e0d9190612ae3565b61135f565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612bcd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4a9190612bcd565b6040518363ffffffff1660e01b8152600401610f67929190612bf8565b6020604051808303815f875af1158015610f83573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa79190612bcd565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102e30610938565b5f5f611038610c04565b426040518863ffffffff1660e01b815260040161105a96959493929190612c1f565b60606040518083038185885af1158015611076573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061109b9190612c92565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161113b929190612ce2565b6020604051808303815f875af1158015611157573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117b9190612d33565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b6111bb611358565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f906128c4565b60405180910390fd5b5f5f90505b81518110156112d257600160045f84848151811061126e5761126d612b24565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061124d565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612dce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290612e5c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151591906125c5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158790612eea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612f78565b60405180910390fd5b5f8111611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790613006565b60405180910390fd5b5f5f905061164c610c04565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116ba575061168a610c04565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611713575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c535760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117b6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6117be575f5ffd5b5f600e54036118065761180360646117f5600a54600e54116117e2576006546117e6565b6008545b8561223890919063ffffffff16565b6122af90919063ffffffff16565b90505b5f600e54111561183b57611838606461182a600d548561223890919063ffffffff16565b6122af90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118e4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611937575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2f57601154821115611981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119789061306e565b60405180910390fd5b6012548261198e85610938565b611998919061308c565b11156119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090613109565b60405180910390fd5b611a156064611a07600a54600e54116119f4576006546119f8565b6008545b8561223890919063ffffffff16565b6122af90919063ffffffff16565b9050600e5f815480929190611a2990613127565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ab757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611afb57611af86064611aea600b54600e5411611ad757600754611adb565b6009545b8561223890919063ffffffff16565b6122af90919063ffffffff16565b90505b5f611b0530610938565b9050601660159054906101000a900460ff16158015611b70575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b86575060168054906101000a900460ff165b8015611b93575060135481115b8015611ba25750600c54600e54115b15611c5157601854431115611bb9575f6017819055505b600360175410611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf5906131b8565b60405180910390fd5b611c1b611c1684611c11846014546122f8565b6122f8565b611f65565b5f4790505f811115611c3157611c30476121d0565b5b60175f815480929190611c4390613127565b919050555043601881905550505b505b5f811115611d5257611cab8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d4991906125c5565b60405180910390a35b611da28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461236d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e45611df9828461236d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ee8848661236d90919063ffffffff16565b604051611ef591906125c5565b60405180910390a350505050565b5f838311158290611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f419190612487565b60405180910390fd5b505f8385611f5891906131d6565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f9c57611f9b612666565b5b604051908082528060200260200182016040528015611fca5781602001602082028036833780820191505090505b50905030815f81518110611fe157611fe0612b24565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612085573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a99190612bcd565b816001815181106120bd576120bc612b24565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121233060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461135f565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121859594939291906132c0565b5f604051808303815f87803b15801561219c575f5ffd5b505af11580156121ae573d5f5f3e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612234573d5f5f3e3d5ffd5b5050565b5f5f8303612248575f90506122a9565b5f82846122559190612ae3565b90508284826122649190613345565b146122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b906133e5565b60405180910390fd5b809150505b92915050565b5f6122f083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123b6565b905092915050565b5f8183116123065782612308565b815b905092915050565b5f5f828461231e919061308c565b905083811015612363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235a9061344d565b60405180910390fd5b8091505092915050565b5f6123ae83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f03565b905092915050565b5f5f831182906123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f39190612487565b60405180910390fd5b505f838561240a9190613345565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61245982612417565b6124638185612421565b9350612473818560208601612431565b61247c8161243f565b840191505092915050565b5f6020820190508181035f83015261249f818461244f565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124e1826124b8565b9050919050565b6124f1816124d7565b81146124fb575f5ffd5b50565b5f8135905061250c816124e8565b92915050565b5f819050919050565b61252481612512565b811461252e575f5ffd5b50565b5f8135905061253f8161251b565b92915050565b5f5f6040838503121561255b5761255a6124b0565b5b5f612568858286016124fe565b925050602061257985828601612531565b9150509250929050565b5f8115159050919050565b61259781612583565b82525050565b5f6020820190506125b05f83018461258e565b92915050565b6125bf81612512565b82525050565b5f6020820190506125d85f8301846125b6565b92915050565b5f5f5f606084860312156125f5576125f46124b0565b5b5f612602868287016124fe565b9350506020612613868287016124fe565b925050604061262486828701612531565b9150509250925092565b5f60ff82169050919050565b6126438161262e565b82525050565b5f60208201905061265c5f83018461263a565b92915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61269c8261243f565b810181811067ffffffffffffffff821117156126bb576126ba612666565b5b80604052505050565b5f6126cd6124a7565b90506126d98282612693565b919050565b5f67ffffffffffffffff8211156126f8576126f7612666565b5b602082029050602081019050919050565b5f5ffd5b5f61271f61271a846126de565b6126c4565b9050808382526020820190506020840283018581111561274257612741612709565b5b835b8181101561276b578061275788826124fe565b845260208401935050602081019050612744565b5050509392505050565b5f82601f83011261278957612788612662565b5b813561279984826020860161270d565b91505092915050565b5f602082840312156127b7576127b66124b0565b5b5f82013567ffffffffffffffff8111156127d4576127d36124b4565b5b6127e084828501612775565b91505092915050565b5f602082840312156127fe576127fd6124b0565b5b5f61280b848285016124fe565b91505092915050565b61281d816124d7565b82525050565b5f6020820190506128365f830184612814565b92915050565b5f5f60408385031215612852576128516124b0565b5b5f61285f858286016124fe565b9250506020612870858286016124fe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128ae602083612421565b91506128b98261287a565b602082019050919050565b5f6020820190508181035f8301526128db816128a2565b9050919050565b5f819050919050565b5f819050919050565b5f61290e612909612904846128e2565b6128eb565b612512565b9050919050565b61291e816128f4565b82525050565b5f6020820190506129375f830184612915565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156129bf5780860481111561299b5761299a61293d565b5b60018516156129aa5780820291505b80810290506129b88561296a565b945061297f565b94509492505050565b5f826129d75760019050612a92565b816129e4575f9050612a92565b81600181146129fa5760028114612a0457612a33565b6001915050612a92565b60ff841115612a1657612a1561293d565b5b8360020a915084821115612a2d57612a2c61293d565b5b50612a92565b5060208310610133831016604e8410600b8410161715612a685782820a905083811115612a6357612a6261293d565b5b612a92565b612a758484846001612976565b92509050818404811115612a8c57612a8b61293d565b5b81810290505b9392505050565b5f612aa382612512565b9150612aae8361262e565b9250612adb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129c8565b905092915050565b5f612aed82612512565b9150612af883612512565b9250828202612b0681612512565b91508282048414831517612b1d57612b1c61293d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b85601783612421565b9150612b9082612b51565b602082019050919050565b5f6020820190508181035f830152612bb281612b79565b9050919050565b5f81519050612bc7816124e8565b92915050565b5f60208284031215612be257612be16124b0565b5b5f612bef84828501612bb9565b91505092915050565b5f604082019050612c0b5f830185612814565b612c186020830184612814565b9392505050565b5f60c082019050612c325f830189612814565b612c3f60208301886125b6565b612c4c6040830187612915565b612c596060830186612915565b612c666080830185612814565b612c7360a08301846125b6565b979650505050505050565b5f81519050612c8c8161251b565b92915050565b5f5f5f60608486031215612ca957612ca86124b0565b5b5f612cb686828701612c7e565b9350506020612cc786828701612c7e565b9250506040612cd886828701612c7e565b9150509250925092565b5f604082019050612cf55f830185612814565b612d0260208301846125b6565b9392505050565b612d1281612583565b8114612d1c575f5ffd5b50565b5f81519050612d2d81612d09565b92915050565b5f60208284031215612d4857612d476124b0565b5b5f612d5584828501612d1f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612db8602483612421565b9150612dc382612d5e565b604082019050919050565b5f6020820190508181035f830152612de581612dac565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e46602283612421565b9150612e5182612dec565b604082019050919050565b5f6020820190508181035f830152612e7381612e3a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ed4602583612421565b9150612edf82612e7a565b604082019050919050565b5f6020820190508181035f830152612f0181612ec8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f62602383612421565b9150612f6d82612f08565b604082019050919050565b5f6020820190508181035f830152612f8f81612f56565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ff0602983612421565b9150612ffb82612f96565b604082019050919050565b5f6020820190508181035f83015261301d81612fe4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613058601983612421565b915061306382613024565b602082019050919050565b5f6020820190508181035f8301526130858161304c565b9050919050565b5f61309682612512565b91506130a183612512565b92508282019050808211156130b9576130b861293d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130f3601a83612421565b91506130fe826130bf565b602082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b5f61313182612512565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131635761316261293d565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131a2601783612421565b91506131ad8261316e565b602082019050919050565b5f6020820190508181035f8301526131cf81613196565b9050919050565b5f6131e082612512565b91506131eb83612512565b92508282039050818111156132035761320261293d565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61323b816124d7565b82525050565b5f61324c8383613232565b60208301905092915050565b5f602082019050919050565b5f61326e82613209565b6132788185613213565b935061328383613223565b805f5b838110156132b357815161329a8882613241565b97506132a583613258565b925050600181019050613286565b5085935050505092915050565b5f60a0820190506132d35f8301886125b6565b6132e06020830187612915565b81810360408301526132f28186613264565b90506133016060830185612814565b61330e60808301846125b6565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61334f82612512565b915061335a83612512565b92508261336a57613369613318565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133cf602183612421565b91506133da82613375565b604082019050919050565b5f6020820190508181035f8301526133fc816133c3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613437601b83612421565b915061344282613403565b602082019050919050565b5f6020820190508181035f8301526134648161342b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122086a6b2b3f4efaae61edcbfb9bab5ccfdd55cbd802ba6456190da91ee131626a664736f6c634300081f0033

Verified Source Code Full Match

Compiler: v0.8.31+commit.fd3a2265 EVM: osaka Optimization: No
CHucky.sol 349 lines
// SPDX-License-Identifier: MIT

/*

    From the bottom of our hearts, the team of our shelter would like to thank Vitalik Buterin for his incredible support.

    https://www.vitalikchuckydog.fun
    https://x.com/VitalikCHUCKY
    https://t.me/VitalikCHUCKY


*/

pragma solidity ^0.8.24;

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 CHUCKY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isCHUCKYExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint256 private _ERTYUICHUCKY;
    uint104 private _VBNMFGCHUCKY;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"CHUCKY";
    string private constant _symbol = unicode"CHUCKY";
    uint256 public _maxTxAmount = 1_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 1_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1_000_000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1_000_000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

        emit Transfer(address(0),address(this), _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() && to != _taxWallet) {
            require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isCHUCKYExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = 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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

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

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

    function openTrading() external 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: 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 {}
}

Read Contract

_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isBot 0x3bbac579 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 10 functions

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

addBots 0xd34628cc
address[] bots_
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
delBots 0x31c2d847
address[] notbot
manualSwap 0x51bc3c85
No parameters
openTrading 0xc9567bf9
No parameters
removeLimits 0x751039fc
No parameters
removeTransferTax 0x109daa99
No parameters
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

This address has 1 on-chain transactions, but only 0.7% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →