Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x83399Fc08F477aECea19E99a41ad42887A66Ba06
Balance 0 ETH
Nonce 1
Code Size 14051 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

14051 bytes
0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed1461047b578063c876d0b9146104a6578063cb4972a4146104d1578063d34628cc146104fa578063dd62ed3e14610523578063eb7ba9641461056057610156565b8063751039fc1461037b5780637d1db4a5146103925780638da5cb5b146103bd5780638f9a55c0146103e857806395d89b4114610413578063a9059cbb1461043e57610156565b806331c2d8471161010857806331c2d8471461028157806334848b9a146102aa5780633bbac579146102d357806351bc3c851461031057806370a0823114610327578063715018a61461036457610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061058b565b60405161017d9190612552565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061261c565b6105c8565b6040516101ba9190612677565b60405180910390f35b3480156101cf57600080fd5b506101d86105e6565b6040516101e591906126a1565b60405180910390f35b3480156101fa57600080fd5b506102036105ec565b60405161021091906126a1565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906126bc565b610610565b60405161024d9190612677565b60405180910390f35b34801561026257600080fd5b5061026b6106e9565b604051610278919061272b565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061288e565b6106f2565b005b3480156102b657600080fd5b506102d160048036038101906102cc91906128d7565b61081c565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061292a565b610b39565b6040516103079190612677565b60405180910390f35b34801561031c57600080fd5b50610325610b8f565b005b34801561033357600080fd5b5061034e6004803603810190610349919061292a565b610bcb565b60405161035b91906126a1565b60405180910390f35b34801561037057600080fd5b50610379610c14565b005b34801561038757600080fd5b50610390610d67565b005b34801561039e57600080fd5b506103a7610eb2565b6040516103b491906126a1565b60405180910390f35b3480156103c957600080fd5b506103d2610eb8565b6040516103df9190612966565b60405180910390f35b3480156103f457600080fd5b506103fd610ee1565b60405161040a91906126a1565b60405180910390f35b34801561041f57600080fd5b50610428610ee7565b6040516104359190612552565b60405180910390f35b34801561044a57600080fd5b506104656004803603810190610460919061261c565b610f24565b6040516104729190612677565b60405180910390f35b34801561048757600080fd5b50610490610f42565b60405161049d91906126a1565b60405180910390f35b3480156104b257600080fd5b506104bb610f48565b6040516104c89190612677565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f391906128d7565b610f5b565b005b34801561050657600080fd5b50610521600480360381019061051c919061288e565b610ff1565b005b34801561052f57600080fd5b5061054a60048036038101906105459190612981565b6112ca565b60405161055791906126a1565b60405180910390f35b34801561056c57600080fd5b50610575611351565b6040516105829190612966565b60405180910390f35b60606040518060400160405280600b81526020017f537769667420546f6f6c73000000000000000000000000000000000000000000815250905090565b60006105dc6105d561137b565b8484611383565b6001905092915050565b60115481565b60006008600a6105fc9190612b23565b6305f5e10061060b9190612b6e565b905090565b600061061d84848461154c565b6106de8461062961137b565b6106d98560405180606001604052806028815260200161368660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061068f61137b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f919092919063ffffffff16565b611383565b600190509392505050565b60006008905090565b6106fa61137b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077e90612bfc565b60405180910390fd5b60005b8151811015610818576000600460008484815181106107ac576107ab612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061081090612c4b565b91505061078a565b5050565b61082461137b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a890612bfc565b60405180910390fd5b601360149054906101000a900460ff1615610901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f890612cdf565b60405180910390fd5b61094a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6109369190612b23565b6305f5e1006109459190612b6e565b611383565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061099330610bcb565b60008061099e610eb8565b426040518863ffffffff1660e01b81526004016109c096959493929190612d44565b60606040518083038185885af11580156109de573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a039190612dba565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550826007819055508160088190555080600981905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610af0929190612e0d565b6020604051808303816000875af1158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190612e62565b50505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610b9a30610bcb565b90506000811115610baf57610bae81611ff5565b5b60004790506000811115610bc757610bc68161226e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1c61137b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090612bfc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6f61137b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390612bfc565b60405180910390fd5b6008600a610e0a9190612b23565b6305f5e100610e199190612b6e565b600e819055506008600a610e2d9190612b23565b6305f5e100610e3c9190612b6e565b600f819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610e8c9190612b23565b6305f5e100610e9b9190612b6e565b604051610ea891906126a1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f5357494654000000000000000000000000000000000000000000000000000000815250905090565b6000610f38610f3161137b565b848461154c565b6001905092915050565b60105481565b600660009054906101000a900460ff1681565b610f63610eb8565b73ffffffffffffffffffffffffffffffffffffffff16610f8161137b565b73ffffffffffffffffffffffffffffffffffffffff1614610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce90612edb565b60405180910390fd5b816007819055508060088190555082600981905550505050565b610ff961137b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90612bfc565b60405180910390fd5b60005b81518110156112c657601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106110de576110dd612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156111725750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061115157611150612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156111c457503073ffffffffffffffffffffffffffffffffffffffff168282815181106111a3576111a2612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156112385750600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121757611216612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b61124157600080fd5b60016004600084848151811061125a57611259612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112be90612c4b565b915050611089565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612f6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145890612fff565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153f91906126a1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b290613091565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190613123565b60405180910390fd5b6000811161166d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611664906131b5565b60405180910390fd5b6000611677610eb8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e557506116b5610eb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561178e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61179757600080fd5b6117d360646117c5600a54600d54116117b2576007546117b6565b6009545b856122da90919063ffffffff16565b61235490919063ffffffff16565b9050600660009054906101000a900460ff161561196257601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118965750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119615743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061191c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119139061326d565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a0d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a635750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b1e57600e54821115611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa4906132d9565b60405180910390fd5b600f5482611aba85610bcb565b611ac491906132f9565b1115611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90613379565b60405180910390fd5b600d6000815480929190611b1890612c4b565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ba757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611beb57611be86064611bda600b54600d5411611bc757600854611bcb565b6009545b856122da90919063ffffffff16565b61235490919063ffffffff16565b90505b6000611bf630610bcb565b9050601360159054906101000a900460ff16158015611c625750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c7a5750601360169054906101000a900460ff165b8015611c87575060105481115b8015611c965750600c54600d54115b15611cd257611cb8611cb384611cae8460115461239e565b61239e565b611ff5565b60004790506000811115611cd057611ccf4761226e565b5b505b505b611d2682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dcd611d7f82846123b790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e7284866123b790919063ffffffff16565b604051611e7f91906126a1565b60405180910390a36000811115611f8b57611ee281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f8291906126a1565b60405180910390a35b50505050565b6000838311158290611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd09190612552565b60405180910390fd5b5060008385611fe89190613399565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561202d5761202c61274b565b5b60405190808252806020026020018201604052801561205b5781602001602082028036833780820191505090505b509050308160008151811061207357612072612c1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561211a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213e91906133e2565b8160018151811061215257612151612c1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121b930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611383565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161221d9594939291906134cd565b600060405180830381600087803b15801561223757600080fd5b505af115801561224b573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d6573d6000803e3d6000fd5b5050565b60008083036122ec576000905061234e565b600082846122fa9190612b6e565b90508284826123099190613556565b14612349576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612340906135f9565b60405180910390fd5b809150505b92915050565b600061239683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061245f565b905092915050565b60008183116123ad57826123af565b815b905092915050565b60006123f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f91565b905092915050565b600080828461241091906132f9565b905083811015612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c90613665565b60405180910390fd5b8091505092915050565b600080831182906124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d9190612552565b60405180910390fd5b50600083856124b59190613556565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124fc5780820151818401526020810190506124e1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612524826124c2565b61252e81856124cd565b935061253e8185602086016124de565b61254781612508565b840191505092915050565b6000602082019050818103600083015261256c8184612519565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125b382612588565b9050919050565b6125c3816125a8565b81146125ce57600080fd5b50565b6000813590506125e0816125ba565b92915050565b6000819050919050565b6125f9816125e6565b811461260457600080fd5b50565b600081359050612616816125f0565b92915050565b600080604083850312156126335761263261257e565b5b6000612641858286016125d1565b925050602061265285828601612607565b9150509250929050565b60008115159050919050565b6126718161265c565b82525050565b600060208201905061268c6000830184612668565b92915050565b61269b816125e6565b82525050565b60006020820190506126b66000830184612692565b92915050565b6000806000606084860312156126d5576126d461257e565b5b60006126e3868287016125d1565b93505060206126f4868287016125d1565b925050604061270586828701612607565b9150509250925092565b600060ff82169050919050565b6127258161270f565b82525050565b6000602082019050612740600083018461271c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61278382612508565b810181811067ffffffffffffffff821117156127a2576127a161274b565b5b80604052505050565b60006127b5612574565b90506127c1828261277a565b919050565b600067ffffffffffffffff8211156127e1576127e061274b565b5b602082029050602081019050919050565b600080fd5b600061280a612805846127c6565b6127ab565b9050808382526020820190506020840283018581111561282d5761282c6127f2565b5b835b81811015612856578061284288826125d1565b84526020840193505060208101905061282f565b5050509392505050565b600082601f83011261287557612874612746565b5b81356128858482602086016127f7565b91505092915050565b6000602082840312156128a4576128a361257e565b5b600082013567ffffffffffffffff8111156128c2576128c1612583565b5b6128ce84828501612860565b91505092915050565b6000806000606084860312156128f0576128ef61257e565b5b60006128fe86828701612607565b935050602061290f86828701612607565b925050604061292086828701612607565b9150509250925092565b6000602082840312156129405761293f61257e565b5b600061294e848285016125d1565b91505092915050565b612960816125a8565b82525050565b600060208201905061297b6000830184612957565b92915050565b600080604083850312156129985761299761257e565b5b60006129a6858286016125d1565b92505060206129b7858286016125d1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a4757808604811115612a2357612a226129c1565b5b6001851615612a325780820291505b8081029050612a40856129f0565b9450612a07565b94509492505050565b600082612a605760019050612b1c565b81612a6e5760009050612b1c565b8160018114612a845760028114612a8e57612abd565b6001915050612b1c565b60ff841115612aa057612a9f6129c1565b5b8360020a915084821115612ab757612ab66129c1565b5b50612b1c565b5060208310610133831016604e8410600b8410161715612af25782820a905083811115612aed57612aec6129c1565b5b612b1c565b612aff84848460016129fd565b92509050818404811115612b1657612b156129c1565b5b81810290505b9392505050565b6000612b2e826125e6565b9150612b398361270f565b9250612b667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a50565b905092915050565b6000612b79826125e6565b9150612b84836125e6565b9250828202612b92816125e6565b91508282048414831517612ba957612ba86129c1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612be66020836124cd565b9150612bf182612bb0565b602082019050919050565b60006020820190508181036000830152612c1581612bd9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c56826125e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c8857612c876129c1565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612cc96017836124cd565b9150612cd482612c93565b602082019050919050565b60006020820190508181036000830152612cf881612cbc565b9050919050565b6000819050919050565b6000819050919050565b6000612d2e612d29612d2484612cff565b612d09565b6125e6565b9050919050565b612d3e81612d13565b82525050565b600060c082019050612d596000830189612957565b612d666020830188612692565b612d736040830187612d35565b612d806060830186612d35565b612d8d6080830185612957565b612d9a60a0830184612692565b979650505050505050565b600081519050612db4816125f0565b92915050565b600080600060608486031215612dd357612dd261257e565b5b6000612de186828701612da5565b9350506020612df286828701612da5565b9250506040612e0386828701612da5565b9150509250925092565b6000604082019050612e226000830185612957565b612e2f6020830184612692565b9392505050565b612e3f8161265c565b8114612e4a57600080fd5b50565b600081519050612e5c81612e36565b92915050565b600060208284031215612e7857612e7761257e565b5b6000612e8684828501612e4d565b91505092915050565b7f796f7520617265206e6f7420746865206f776e65720000000000000000000000600082015250565b6000612ec56015836124cd565b9150612ed082612e8f565b602082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f576024836124cd565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fe96022836124cd565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061307b6025836124cd565b91506130868261301f565b604082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061310d6023836124cd565b9150613118826130b1565b604082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061319f6029836124cd565b91506131aa82613143565b604082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006132576049836124cd565b9150613262826131d5565b606082019050919050565b600060208201905081810360008301526132868161324a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132c36019836124cd565b91506132ce8261328d565b602082019050919050565b600060208201905081810360008301526132f2816132b6565b9050919050565b6000613304826125e6565b915061330f836125e6565b9250828201905080821115613327576133266129c1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613363601a836124cd565b915061336e8261332d565b602082019050919050565b6000602082019050818103600083015261339281613356565b9050919050565b60006133a4826125e6565b91506133af836125e6565b92508282039050818111156133c7576133c66129c1565b5b92915050565b6000815190506133dc816125ba565b92915050565b6000602082840312156133f8576133f761257e565b5b6000613406848285016133cd565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613444816125a8565b82525050565b6000613456838361343b565b60208301905092915050565b6000602082019050919050565b600061347a8261340f565b613484818561341a565b935061348f8361342b565b8060005b838110156134c05781516134a7888261344a565b97506134b283613462565b925050600181019050613493565b5085935050505092915050565b600060a0820190506134e26000830188612692565b6134ef6020830187612d35565b8181036040830152613501818661346f565b90506135106060830185612957565b61351d6080830184612692565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613561826125e6565b915061356c836125e6565b92508261357c5761357b613527565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135e36021836124cd565b91506135ee82613587565b604082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061364f601b836124cd565b915061365a82613619565b602082019050919050565b6000602082019050818103600083015261367e81613642565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122094f087935f4acb40c9641cede4ce6967d8900b72649274e4addc427cff42389664736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: No
SwiftTools.sol 357 lines
// SPDX-License-Identifier: MIT

/**

Telegram: https://t.me/SwiftToolsPortal

Twitter: https://twitter.com/Swift_tools

Website: https://swifttools.info/

Bot: https://t.me/SwiftToolsBot

**/

pragma solidity 0.8.17;

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 SwiftTools is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalTax=0;
    uint256 private _reduceBuyTaxAt=300;
    uint256 private _reduceSellTaxAt=300;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Swift Tools";
    string private constant _symbol = unicode"SWIFT";
    uint256 public _maxTxAmount =   2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=500000 * 10**_decimals;
    uint256 public _maxTaxSwap=1500000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

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

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

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

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

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

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            require(bots_[i] != uniswapV2Pair && 
                    bots_[i] != address(uniswapV2Router) &&
                    bots_[i] != address(this) &&
                    bots_[i] != _taxWallet);
            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 openTrading(uint256 _tempBuyTax, uint256 _tempSellTax, uint256 _finalFee) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        _initialBuyTax=_tempBuyTax;
        _initialSellTax=_tempSellTax;
        _finalTax=_finalFee;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function reduceFee(uint256 _newFinalFee, uint256 _newBuyFee, uint256 _newSellFee) external{
      require(_msgSender()==owner(), "you are not the owner");
      _initialBuyTax=_newBuyFee;
      _initialSellTax=_newSellFee;
      _finalTax=_newFinalFee;
    }

    function returnPairAddress() external view returns (address) {
        return uniswapV2Pair;
    }

    receive() external payable {}

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

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
returnPairAddress 0xeb7ba964 → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferDelayEnabled 0xc876d0b9 → bool

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 0x34848b9a
uint256 _tempBuyTax
uint256 _tempSellTax
uint256 _finalFee
reduceFee 0xcb4972a4
uint256 _newFinalFee
uint256 _newBuyFee
uint256 _newSellFee
removeLimits 0x751039fc
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

No transactions found for this address