Address Contract Partially Verified
Address
0x569Dd3298E114Da858415ee5672C8F2AB57938Bf
Balance
0 ETH
Nonce
1
Code Size
14128 bytes
Creator
0x03C89C07...d31a at tx 0x2df52b66...dba0eb
Indexed Transactions
0
Contract Bytecode
14128 bytes
0x608060405260043610610254575f3560e01c806395a078e811610138578063c0246668116100b5578063eb4af04511610079578063eb4af045146108ad578063efdcd974146108d5578063f1887684146108fd578063f2fde38b14610927578063f3acb4d51461094f578063f887ea40146109775761025b565b8063c0246668146107e3578063c66d77281461080b578063d2fcc00114610821578063dd62ed3e14610849578063e5685bed146108855761025b565b8063a8aa1b31116100fc578063a8aa1b3114610701578063a9059cbb1461072b578063aa4bde2814610767578063aafc5d4714610791578063b3f00674146107b95761025b565b806395a078e81461062157806395d89b411461065d5780639d0014b114610687578063a694fc3a146106af578063a6ac4b35146106d75761025b565b80635fec5c64116101d15780637025907711610195578063702590771461052957806370a0823114610565578063715018a6146105a15780637df405a4146105b75780638a8c523c146105e15780638da5cb5b146105f75761025b565b80635fec5c6414610435578063602172671461045f578063698059811461049b5780636dd3d39f146104c35780636fb1896c146104ff5761025b565b806327a14fc21161021857806327a14fc2146103555780632e17de781461037d578063313ce567146103a55780634ada218b146103cf5780634fbee193146103f95761025b565b80630445b6671461025f57806306fdde0314610289578063095ea7b3146102b357806318160ddd146102ef57806323b872dd146103195761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109a1565b6040516102809190612922565b60405180910390f35b348015610294575f80fd5b5061029d6109a7565b6040516102aa91906129ab565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612a53565b610a37565b6040516102e69190612aab565b60405180910390f35b3480156102fa575f80fd5b50610303610a54565b6040516103109190612922565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a9190612ac4565b610a5d565b60405161034c9190612aab565b60405180910390f35b348015610360575f80fd5b5061037b60048036038101906103769190612b14565b610b11565b005b348015610388575f80fd5b506103a3600480360381019061039e9190612b14565b610bb1565b005b3480156103b0575f80fd5b506103b9610d6d565b6040516103c69190612b5a565b60405180910390f35b3480156103da575f80fd5b506103e3610d75565b6040516103f09190612aab565b60405180910390f35b348015610404575f80fd5b5061041f600480360381019061041a9190612b73565b610d87565b60405161042c9190612aab565b60405180910390f35b348015610440575f80fd5b50610449610da4565b6040516104569190612922565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190612b73565b610daa565b6040516104929190612922565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc9190612bc8565b610dbf565b005b3480156104ce575f80fd5b506104e960048036038101906104e49190612b73565b610e71565b6040516104f69190612aab565b60405180910390f35b34801561050a575f80fd5b50610513610e8e565b6040516105209190612922565b60405180910390f35b348015610534575f80fd5b5061054f600480360381019061054a9190612b73565b610e94565b60405161055c9190612922565b60405180910390f35b348015610570575f80fd5b5061058b60048036038101906105869190612b73565b610ea9565b6040516105989190612922565b60405180910390f35b3480156105ac575f80fd5b506105b5610eee565b005b3480156105c2575f80fd5b506105cb611041565b6040516105d89190612922565b60405180910390f35b3480156105ec575f80fd5b506105f5611047565b005b348015610602575f80fd5b5061060b6110f9565b6040516106189190612c02565b60405180910390f35b34801561062c575f80fd5b5061064760048036038101906106429190612b73565b611121565b6040516106549190612aab565b60405180910390f35b348015610668575f80fd5b50610671611183565b60405161067e91906129ab565b60405180910390f35b348015610692575f80fd5b506106ad60048036038101906106a89190612b14565b611213565b005b3480156106ba575f80fd5b506106d560048036038101906106d09190612b14565b6112b3565b005b3480156106e2575f80fd5b506106eb611437565b6040516106f89190612aab565b60405180910390f35b34801561070c575f80fd5b50610715611449565b6040516107229190612c02565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c9190612a53565b61146d565b60405161075e9190612aab565b60405180910390f35b348015610772575f80fd5b5061077b61148a565b6040516107889190612922565b60405180910390f35b34801561079c575f80fd5b506107b760048036038101906107b29190612b14565b611490565b005b3480156107c4575f80fd5b506107cd611530565b6040516107da9190612c02565b60405180910390f35b3480156107ee575f80fd5b5061080960048036038101906108049190612c1b565b611555565b005b348015610816575f80fd5b5061081f611643565b005b34801561082c575f80fd5b5061084760048036038101906108429190612c1b565b6116d0565b005b348015610854575f80fd5b5061086f600480360381019061086a9190612c59565b6117be565b60405161087c9190612922565b60405180910390f35b348015610890575f80fd5b506108ab60048036038101906108a69190612b14565b611840565b005b3480156108b8575f80fd5b506108d360048036038101906108ce9190612b14565b611924565b005b3480156108e0575f80fd5b506108fb60048036038101906108f69190612b73565b6119c4565b005b348015610908575f80fd5b50610911611a9d565b60405161091e9190612922565b60405180910390f35b348015610932575f80fd5b5061094d60048036038101906109489190612b73565b611aa3565b005b34801561095a575f80fd5b5061097560048036038101906109709190612b14565b611c65565b005b348015610982575f80fd5b5061098b611d49565b6040516109989190612cf2565b60405180910390f35b60075481565b6060600380546109b690612d38565b80601f01602080910402602001604051908101604052809291908181526020018280546109e290612d38565b8015610a2d5780601f10610a0457610100808354040283529160200191610a2d565b820191905f5260205f20905b815481529060010190602001808311610a1057829003601f168201915b5050505050905090565b5f610a4a610a43611d6d565b8484611d74565b6001905092915050565b5f600254905090565b5f610a69848484611f37565b5f610a7b85610a76611d6d565b6117be565b905082811015610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790612db2565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b0557610b0485610af3611d6d565b8584610aff9190612dfd565b611d74565b5b60019150509392505050565b610b19611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e90612e7a565b60405180910390fd5b8060088190555050565b80600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612ee2565b60405180910390fd5b601254600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c7c9190612f00565b421015610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590612f7d565b60405180910390fd5b80600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d0a9190612dfd565b92505081905550610d1c303383612419565b3373ffffffffffffffffffffffffffffffffffffffff167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7582604051610d629190612922565b60405180910390a250565b5f6012905090565b600b5f9054906101000a900460ff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b60125481565b600e602052805f5260405f205f915090505481565b610dc7611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c90612e7a565b60405180910390fd5b8060105f6101000a81548160ff02191690831515021790555050565b600d602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b600f602052805f5260405f205f915090505481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ef6611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b90612e7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b61104f611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490612e7a565b60405180910390fd5b6001600b5f6101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60105f9054906101000a900460ff16801561117c5750601154600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b9050919050565b60606004805461119290612d38565b80601f01602080910402602001604051908101604052809291908181526020018280546111be90612d38565b80156112095780601f106111e057610100808354040283529160200191611209565b820191905f5260205f20905b8154815290600101906020018083116111ec57829003601f168201915b5050505050905090565b61121b611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612e7a565b60405180910390fd5b8060078190555050565b60105f9054906101000a900460ff16611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f890612fe5565b60405180910390fd5b601154811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d9061304d565b60405180910390fd5b611351333083612419565b80600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461139d9190612f00565b9250508190555042600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d8260405161142c9190612922565b60405180910390a250565b60105f9054906101000a900460ff1681565b7f0000000000000000000000000a52a68f468719c8ab0bb1c083040c051480680e81565b5f611480611479611d6d565b8484611f37565b6001905092915050565b60085481565b611498611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90612e7a565b60405180910390fd5b8060128190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61155d611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e290612e7a565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61164c33611121565b61168b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611682906130b5565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167ff9e4abfae9b0d85072b6400ca6b1f58001642e3948a76edb9ecd017d60dae92260405160405180910390a2565b6116d8611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612e7a565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611848611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd90612e7a565b60405180910390fd5b601481111561191a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119119061311d565b60405180910390fd5b80600a8190555050565b61192c611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190612e7a565b60405180910390fd5b8060118190555050565b6119cc611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190612e7a565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b611aab611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3090612e7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613185565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c6d611d6d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf290612e7a565b60405180910390fd5b6014811115611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d369061311d565b60405180910390fd5b8060098190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd9906131ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4790613255565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f2a9190612922565b60405180910390a3505050565b600b5f9054906101000a900460ff1680611f975750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611fe85750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e906132bd565b60405180910390fd5b600b60019054906101000a900460ff1615801561209057507f0000000000000000000000000a52a68f468719c8ab0bb1c083040c051480680e73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120e35750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612109575f6120f230610ea9565b905060075481106121075761210681612681565b5b505b5f7f0000000000000000000000000a52a68f468719c8ab0bb1c083040c051480680e73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121ac5750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121ff5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122255760646009548361221491906132db565b61221e9190613349565b905061233d565b7f0000000000000000000000000a52a68f468719c8ab0bb1c083040c051480680e73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122c75750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561231a5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561233c576064600a548361232f91906132db565b6123399190613349565b90505b5b5f818361234a9190612dfd565b90505f8211156123605761235f853084612419565b5b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661240757600854816123bb86610ea9565b6123c59190612f00565b1115612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd906133c3565b60405180910390fd5b5b612412858583612419565b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e9061342b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec90613493565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f906134fb565b60405180910390fd5b81816125849190612dfd565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461260f9190612f00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126739190612922565b60405180910390a350505050565b6001600b60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156126b8576126b7613519565b5b6040519080825280602002602001820160405280156126e65781602001602082028036833780820191505090505b50905030815f815181106126fd576126fc613546565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c49190613587565b816001815181106127d8576127d7613546565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061283d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d74565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bf9594939291906136a2565b5f604051808303815f87803b1580156128d6575f80fd5b505af11580156128e8573d5f803e3d5ffd5b50505050505f600b60016101000a81548160ff02191690831515021790555050565b5f819050919050565b61291c8161290a565b82525050565b5f6020820190506129355f830184612913565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61297d8261293b565b6129878185612945565b9350612997818560208601612955565b6129a081612963565b840191505092915050565b5f6020820190508181035f8301526129c38184612973565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129f8826129cf565b9050919050565b612a08816129ee565b8114612a12575f80fd5b50565b5f81359050612a23816129ff565b92915050565b612a328161290a565b8114612a3c575f80fd5b50565b5f81359050612a4d81612a29565b92915050565b5f8060408385031215612a6957612a686129cb565b5b5f612a7685828601612a15565b9250506020612a8785828601612a3f565b9150509250929050565b5f8115159050919050565b612aa581612a91565b82525050565b5f602082019050612abe5f830184612a9c565b92915050565b5f805f60608486031215612adb57612ada6129cb565b5b5f612ae886828701612a15565b9350506020612af986828701612a15565b9250506040612b0a86828701612a3f565b9150509250925092565b5f60208284031215612b2957612b286129cb565b5b5f612b3684828501612a3f565b91505092915050565b5f60ff82169050919050565b612b5481612b3f565b82525050565b5f602082019050612b6d5f830184612b4b565b92915050565b5f60208284031215612b8857612b876129cb565b5b5f612b9584828501612a15565b91505092915050565b612ba781612a91565b8114612bb1575f80fd5b50565b5f81359050612bc281612b9e565b92915050565b5f60208284031215612bdd57612bdc6129cb565b5b5f612bea84828501612bb4565b91505092915050565b612bfc816129ee565b82525050565b5f602082019050612c155f830184612bf3565b92915050565b5f8060408385031215612c3157612c306129cb565b5b5f612c3e85828601612a15565b9250506020612c4f85828601612bb4565b9150509250929050565b5f8060408385031215612c6f57612c6e6129cb565b5b5f612c7c85828601612a15565b9250506020612c8d85828601612a15565b9150509250929050565b5f819050919050565b5f612cba612cb5612cb0846129cf565b612c97565b6129cf565b9050919050565b5f612ccb82612ca0565b9050919050565b5f612cdc82612cc1565b9050919050565b612cec81612cd2565b82525050565b5f602082019050612d055f830184612ce3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d4f57607f821691505b602082108103612d6257612d61612d0b565b5b50919050565b7f45524332303a207472616e7366657246726f6d20616c6c6f77616e63650000005f82015250565b5f612d9c601d83612945565b9150612da782612d68565b602082019050919050565b5f6020820190508181035f830152612dc981612d90565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e078261290a565b9150612e128361290a565b9250828203905081811115612e2a57612e29612dd0565b5b92915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f612e64600983612945565b9150612e6f82612e30565b602082019050919050565b5f6020820190508181035f830152612e9181612e58565b9050919050565b7f496e73756666696369656e74207374616b6500000000000000000000000000005f82015250565b5f612ecc601283612945565b9150612ed782612e98565b602082019050919050565b5f6020820190508181035f830152612ef981612ec0565b9050919050565b5f612f0a8261290a565b9150612f158361290a565b9250828201905080821115612f2d57612f2c612dd0565b5b92915050565b7f5374616b65206c6f636b656400000000000000000000000000000000000000005f82015250565b5f612f67600c83612945565b9150612f7282612f33565b602082019050919050565b5f6020820190508181035f830152612f9481612f5b565b9050919050565b7f5374616b696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f612fcf601283612945565b9150612fda82612f9b565b602082019050919050565b5f6020820190508181035f830152612ffc81612fc3565b9050919050565b7f42656c6f77206d696e207374616b6500000000000000000000000000000000005f82015250565b5f613037600f83612945565b915061304282613003565b602082019050919050565b5f6020820190508181035f8301526130648161302b565b9050919050565b7f4e6f20706c6174666f726d2061636365737300000000000000000000000000005f82015250565b5f61309f601283612945565b91506130aa8261306b565b602082019050919050565b5f6020820190508181035f8301526130cc81613093565b9050919050565b7f546f6f20686967680000000000000000000000000000000000000000000000005f82015250565b5f613107600883612945565b9150613112826130d3565b602082019050919050565b5f6020820190508181035f830152613134816130fb565b9050919050565b7f5a65726f206f776e6572000000000000000000000000000000000000000000005f82015250565b5f61316f600a83612945565b915061317a8261313b565b602082019050919050565b5f6020820190508181035f83015261319c81613163565b9050919050565b7f45524332303a20617070726f76652066726f6d207a65726f00000000000000005f82015250565b5f6131d7601883612945565b91506131e2826131a3565b602082019050919050565b5f6020820190508181035f830152613204816131cb565b9050919050565b7f45524332303a20617070726f766520746f207a65726f000000000000000000005f82015250565b5f61323f601683612945565b915061324a8261320b565b602082019050919050565b5f6020820190508181035f83015261326c81613233565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f6132a7601383612945565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b5f6132e58261290a565b91506132f08361290a565b92508282026132fe8161290a565b9150828204841483151761331557613314612dd0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133538261290a565b915061335e8361290a565b92508261336e5761336d61331c565b5b828204905092915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6133ad601383612945565b91506133b882613379565b602082019050919050565b5f6020820190508181035f8301526133da816133a1565b9050919050565b7f45524332303a207472616e736665722066726f6d207a65726f000000000000005f82015250565b5f613415601983612945565b9150613420826133e1565b602082019050919050565b5f6020820190508181035f83015261344281613409565b9050919050565b7f45524332303a207472616e7366657220746f207a65726f0000000000000000005f82015250565b5f61347d601783612945565b915061348882613449565b602082019050919050565b5f6020820190508181035f8301526134aa81613471565b9050919050565b7f45524332303a207472616e7366657220657863656564732062616c616e6365005f82015250565b5f6134e5601f83612945565b91506134f0826134b1565b602082019050919050565b5f6020820190508181035f830152613512816134d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613581816129ff565b92915050565b5f6020828403121561359c5761359b6129cb565b5b5f6135a984828501613573565b91505092915050565b5f819050919050565b5f6135d56135d06135cb846135b2565b612c97565b61290a565b9050919050565b6135e5816135bb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61361d816129ee565b82525050565b5f61362e8383613614565b60208301905092915050565b5f602082019050919050565b5f613650826135eb565b61365a81856135f5565b935061366583613605565b805f5b8381101561369557815161367c8882613623565b97506136878361363a565b925050600181019050613668565b5085935050505092915050565b5f60a0820190506136b55f830188612913565b6136c260208301876135dc565b81810360408301526136d48186613646565b90506136e36060830185612bf3565b6136f06080830184612913565b969550505050505056fea2646970667358221220ef7acbdab6b0fe38972c73ae3a48bf7ac79d150fa14e5ef050e480b3da71662764736f6c634300081a0033
Verified Source Code Partial Match
Compiler: v0.8.26+commit.8a97fa7a
EVM: cancun
Optimization: No
VECTORAI.sol 300 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
/**
* @title VECTOR AI
* @dev ERC20 token powering the Vector AI toolkit for advanced EVM navigation and automated trading.
*
* ██╗ ██╗███████╗ ██████╗████████╗ ██████╗ ██████╗ █████╗ ██╗
* ██║ ██║██╔════╝██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗ ██╔══██╗██║
* ██║ ██║█████╗ ██║ ██║ ██║ ██║██████╔╝ ███████║██║
* ╚██╗ ██╔╝██╔══╝ ██║ ██║ ██║ ██║██╔══██╗ ██╔══██║██║
* ╚████╔╝ ███████╗╚██████╗ ██║ ╚██████╔╝██║ ██║ ██║ ██║██║
* ╚═══╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝
*
* Official Links:
* - Website: https://vector-ai.pro
* - Twitter: https://x.com/vectorai_x
* - Telegram: https://t.me/vectorai_tg
*
* Tokenomics & Features:
* - Total Supply: 1,000,000,000 VECTOR
* - Buy/Sell Tax: 5% (0% on peer-to-peer transfers)
* - SwapBack: Automatically converts accumulated taxes into ETH.
* - Max Wallet Limit: 1% of total supply per address.
*/
// --- Standard ERC20 + Metadata ---
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
// --- Context + Ownable ---
abstract contract Context {
function _msgSender() internal view virtual returns (address) { return msg.sender; }
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor(address initialOwner) { require(initialOwner != address(0), "Owner cannot be zero"); _owner = initialOwner; emit OwnershipTransferred(address(0), initialOwner);}
modifier onlyOwner() { require(_owner == _msgSender(), "Not owner"); _; }
function owner() public view returns (address) { return _owner; }
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0), "Zero owner");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
// =========== RENOUNCE OWNERSHIP ===========
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
// --- ERC20 Core (virtual where needed) ---
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
uint8 private constant _decimals = 18;
constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; }
function name() public view virtual override returns (string memory) { return _name; }
function symbol() public view virtual override returns (string memory) { return _symbol; }
function decimals() public pure virtual override returns (uint8) { return _decimals; }
function totalSupply() public view virtual override returns (uint256) { return _totalSupply; }
function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; }
function transfer(address to, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), to, amount); return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount); return true;
}
function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
_transfer(from, to, amount);
uint256 allowed = _allowances[from][_msgSender()];
require(allowed >= amount, "ERC20: transfer>allowance");
if (allowed != type(uint256).max) {_approve(from, _msgSender(), allowed - amount);}
return true;
}
function _transfer(address from, address to, uint256 amount) internal virtual {
require(from != address(0), "ERC20: transfer from zero");
require(to != address(0), "ERC20: transfer to zero");
uint256 fromBal = _balances[from];
require(fromBal >= amount, "ERC20: transfer exceeds balance");
_balances[from] = fromBal - amount;
_balances[to] += amount;
emit Transfer(from, to, amount);
}
function _mint(address to, uint256 amount) internal virtual {
require(to != address(0), "ERC20: mint to zero");
_totalSupply += amount;
_balances[to] += amount;
emit Transfer(address(0), to, amount);
}
function _approve(address owner, address spender, uint256 amount) internal virtual {
require(owner != address(0), "ERC20: approve from zero");
require(spender != address(0), "ERC20: approve to zero");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
// --- DEX Router/Factory minimal interfaces ---
interface IUniswapV2Router02 {
function WETH() external pure returns (address);
function factory() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline
) external;
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
// --- Token Implementation (Buy/Sell Tax, Staking, Renounce Feature) ---
contract VECTORAI is ERC20, Ownable {
IUniswapV2Router02 public immutable router;
address public immutable pair;
address public feeReceiver;
uint256 public swapThreshold;
uint256 public maxWalletAmount;
uint256 public buyTaxPercent;
uint256 public sellTaxPercent;
bool public tradingEnabled;
bool private _inSwap;
mapping(address => bool) public isExcludedFromFees;
mapping(address => bool) public isExcludedFromMaxWallet;
// === PLATFORM ACCESS & STAKING ===
mapping(address => uint256) public stakedBalance;
mapping(address => uint256) public stakeTimestamp;
bool public stakingActive;
uint256 public minStakeAmount;
uint256 public minStakeDuration; // seconds
event Staked(address indexed user, uint256 amount);
event Unstaked(address indexed user, uint256 amount);
event PlatformAccessed(address indexed user);
modifier swapping() { _inSwap = true; _; _inSwap = false; }
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_,
address routerAddress_,
address feeReceiver_,
uint256 maxWalletAmount_,
uint256 swapThreshold_,
uint256 buyTaxPercent_,
uint256 sellTaxPercent_
) ERC20(name_, symbol_) Ownable(msg.sender) {
router = IUniswapV2Router02(routerAddress_);
feeReceiver = feeReceiver_;
maxWalletAmount = maxWalletAmount_;
swapThreshold = swapThreshold_;
buyTaxPercent = buyTaxPercent_;
sellTaxPercent = sellTaxPercent_;
pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
address self = address(this);
isExcludedFromFees[owner()] = true;
isExcludedFromFees[self] = true;
isExcludedFromFees[feeReceiver] = true;
isExcludedFromMaxWallet[owner()] = true;
isExcludedFromMaxWallet[self] = true;
isExcludedFromMaxWallet[pair] = true;
isExcludedFromMaxWallet[feeReceiver] = true;
_mint(msg.sender, totalSupply_);
stakingActive = false;
minStakeAmount = 1e18;
minStakeDuration = 0;
}
// --- TAXED TRANSFER LOGIC ---
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_customTransfer(_msgSender(), recipient, amount); return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
_customTransfer(sender, recipient, amount);
uint256 allowed = allowance(sender, _msgSender());
require(allowed >= amount, "ERC20: transferFrom allowance");
if (allowed != type(uint256).max) { _approve(sender, _msgSender(), allowed - amount); }
return true;
}
function _customTransfer(address sender, address recipient, uint256 amount) internal {
require(tradingEnabled || isExcludedFromFees[sender] || isExcludedFromFees[recipient], "Trading not enabled");
// Only trigger swap-back on sells, not buys or wallet-to-wallet
if (
!_inSwap && sender != pair && !isExcludedFromFees[sender]
) {
uint256 contractBal = balanceOf(address(this));
if (contractBal >= swapThreshold) { _swapBack(contractBal); }
}
uint256 fee = 0;
if (
sender == pair &&
!isExcludedFromFees[sender] &&
!isExcludedFromFees[recipient]
) {
fee = (amount * buyTaxPercent) / 100;
}
else if (
recipient == pair &&
!isExcludedFromFees[sender] &&
!isExcludedFromFees[recipient]
) {
fee = (amount * sellTaxPercent) / 100;
}
uint256 amountReceived = amount - fee;
if (fee > 0) {
super._transfer(sender, address(this), fee);
}
if (!isExcludedFromMaxWallet[recipient]) {
require(balanceOf(recipient) + amountReceived <= maxWalletAmount, "Max wallet exceeded");
}
super._transfer(sender, recipient, amountReceived);
}
function _swapBack(uint256 tokenAmount) internal swapping {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tokenAmount);
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount, 0, path, feeReceiver, block.timestamp
);
}
// --------- ADMIN FUNCTIONS ---------
function enableTrading() external onlyOwner { tradingEnabled = true; }
function setFeeReceiver(address newReceiver) external onlyOwner { feeReceiver = newReceiver; }
function setSwapThreshold(uint256 threshold) external onlyOwner { swapThreshold = threshold; }
function setMaxWalletAmount(uint256 newMax) external onlyOwner { maxWalletAmount = newMax; }
function setBuyTaxPercent(uint256 newTax) external onlyOwner { require(newTax <= 20, "Too high"); buyTaxPercent = newTax; }
function setSellTaxPercent(uint256 newTax) external onlyOwner { require(newTax <= 20, "Too high"); sellTaxPercent = newTax; }
function excludeFromFees(address account, bool excluded) external onlyOwner { isExcludedFromFees[account] = excluded; }
function excludeFromMaxWallet(address account, bool excluded) external onlyOwner { isExcludedFromMaxWallet[account] = excluded; }
// ============= PLATFORM ACCESS / STAKING FUNCTIONS =============
function stake(uint256 amount) external {
require(stakingActive, "Staking not active");
require(amount >= minStakeAmount, "Below min stake");
_transfer(msg.sender, address(this), amount);
stakedBalance[msg.sender] += amount;
stakeTimestamp[msg.sender] = block.timestamp;
emit Staked(msg.sender, amount);
}
function unstake(uint256 amount) external {
require(stakedBalance[msg.sender] >= amount, "Insufficient stake");
require(block.timestamp >= stakeTimestamp[msg.sender] + minStakeDuration, "Stake locked");
stakedBalance[msg.sender] -= amount;
_transfer(address(this), msg.sender, amount);
emit Unstaked(msg.sender, amount);
}
function hasAccess(address user) public view returns (bool) {
return stakingActive && stakedBalance[user] >= minStakeAmount;
}
function accessPlatform() external {
require(hasAccess(msg.sender), "No platform access");
emit PlatformAccessed(msg.sender);
// Optionally, call platform access logic here
}
// ADMIN FOR STAKING
function toggleStaking(bool active) external onlyOwner { stakingActive = active; }
function setMinStakeAmount(uint256 amount) external onlyOwner { minStakeAmount = amount; }
function setMinStakeDuration(uint256 duration) external onlyOwner { minStakeDuration = duration; }
receive() external payable {}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyTaxPercent 0x7df405a4 → uint256
decimals 0x313ce567 → uint8
feeReceiver 0xb3f00674 → address
hasAccess 0x95a078e8 → bool
isExcludedFromFees 0x4fbee193 → bool
isExcludedFromMaxWallet 0x6dd3d39f → bool
maxWalletAmount 0xaa4bde28 → uint256
minStakeAmount 0xf1887684 → uint256
minStakeDuration 0x5fec5c64 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
sellTaxPercent 0x6fb1896c → uint256
stakeTimestamp 0x70259077 → uint256
stakedBalance 0x60217267 → uint256
stakingActive 0xa6ac4b35 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingEnabled 0x4ada218b → bool
Write Contract 19 functions
These functions modify contract state and require a wallet transaction to execute.
accessPlatform 0xc66d7728
No parameters
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
enableTrading 0x8a8c523c
No parameters
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxWallet 0xd2fcc001
address account
bool excluded
renounceOwnership 0x715018a6
No parameters
setBuyTaxPercent 0xf3acb4d5
uint256 newTax
setFeeReceiver 0xefdcd974
address newReceiver
setMaxWalletAmount 0x27a14fc2
uint256 newMax
setMinStakeAmount 0xeb4af045
uint256 amount
setMinStakeDuration 0xaafc5d47
uint256 duration
setSellTaxPercent 0xe5685bed
uint256 newTax
setSwapThreshold 0x9d0014b1
uint256 threshold
stake 0xa694fc3a
uint256 amount
toggleStaking 0x69805981
bool active
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
unstake 0x2e17de78
uint256 amount
Recent Transactions
No transactions found for this address