Address Contract Partially Verified
Address
0x5fbDB42Bb048C685C990a37F2c87FE087C586655
Balance
0.050000 ETH
Nonce
1
Code Size
14518 bytes
Creator
0xe2b9d6B4...6f5C at tx 0xea016bc6...5c4506
Indexed Transactions
0
Contract Bytecode
14518 bytes
0x608060405260043610610230576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610562578063095ea7b3146105f257806309e0a77c1461065757806318160ddd146106825780631aee8fa8146106ad5780632195845f146106d857806323b872dd14610733578063313ce567146107b8578063356e2927146107e35780633ccfd60b1461081257806342966c6814610829578063507fcdaf146108565780635691fa48146108815780635ce97dbb146108ac578063657ad479146108d757806370a082311461090257806372ea61e81461095957806379ba5097146109a65780637e1055b6146109bd5780638da5cb5b146109e8578063927a90da14610a3f57806395d89b4114610a6e5780639b1cbccc14610afe5780639ea407be14610b2d578063a7ad69da14610b5a578063a7c3d71b14610b85578063a82524b214610bb0578063a8592a3414610bdb578063a9059cbb14610c06578063aa6ca80814610c6b578063aaffadf314610c75578063acc9383a14610ca0578063c108d54214610ced578063c489744b14610d1c578063cbdd69b514610d93578063d0679d3414610dbe578063d4ee1d9014610e0b578063d83623dd14610e62578063dc39d06d14610e91578063dd62ed3e14610ef6578063e16c42df14610f6d578063e99ebee214610f98578063e9a91efd14611008578063efca2eed14611033578063f2fde38b1461105e578063f5a5438e146110a1575b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561028d5750600034145b1561029b5761029a6110ee565b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105605760125442101561036a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f49434f20646f6573206e6f74206f70656e20796574000000000000000000000081525060200191505060405180910390fd5b601254421015801561037e57506013544211155b1561039f576001601460006101000a81548160ff0219169083151502179055505b6013544211156103fb576000601460006101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff0219169083151502179055505b60011515601460019054906101000a900460ff1615151415610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f49434f206861732066696e69736865640000000000000000000000000000000081525060200191505060405180910390fd5b60011515601460029054906101000a900460ff161515141561050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f546f6b656e20646973747269627574696f6e206861732066696e69736865640081525060200191505060405180910390fd5b60011515601460009054906101000a900460ff161515141561055f57600e54421015801561053e575060105442105b1561054d57600f546015819055505b60155460098190555061055e6111d7565b5b5b005b34801561056e57600080fd5b50610577611438565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b757808201518184015260208101905061059c565b50505050905090810190601f1680156105e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105fe57600080fd5b5061063d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611471565b604051808215151515815260200191505060405180910390f35b34801561066357600080fd5b5061066c6115ff565b6040518082815260200191505060405180910390f35b34801561068e57600080fd5b5061069761160b565b6040518082815260200191505060405180910390f35b3480156106b957600080fd5b506106c2611656565b6040518082815260200191505060405180910390f35b3480156106e457600080fd5b50610719600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165c565b604051808215151515815260200191505060405180910390f35b34801561073f57600080fd5b5061079e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118a1565b604051808215151515815260200191505060405180910390f35b3480156107c457600080fd5b506107cd611c77565b6040518082815260200191505060405180910390f35b3480156107ef57600080fd5b506107f8611c7c565b604051808215151515815260200191505060405180910390f35b34801561081e57600080fd5b506108276110ee565b005b34801561083557600080fd5b5061085460048036038101908080359060200190929190505050611c8f565b005b34801561086257600080fd5b5061086b611e6d565b6040518082815260200191505060405180910390f35b34801561088d57600080fd5b50610896611e73565b6040518082815260200191505060405180910390f35b3480156108b857600080fd5b506108c1611e79565b6040518082815260200191505060405180910390f35b3480156108e357600080fd5b506108ec611e85565b6040518082815260200191505060405180910390f35b34801561090e57600080fd5b50610943600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e8b565b6040518082815260200191505060405180910390f35b34801561096557600080fd5b506109a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed4565b005b3480156109b257600080fd5b506109bb6121dd565b005b3480156109c957600080fd5b506109d261237e565b6040518082815260200191505060405180910390f35b3480156109f457600080fd5b506109fd612384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4b57600080fd5b50610a546123aa565b604051808215151515815260200191505060405180910390f35b348015610a7a57600080fd5b50610a836123bd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac3578082015181840152602081019050610aa8565b50505050905090810190601f168015610af05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b0a57600080fd5b50610b136123f6565b604051808215151515815260200191505060405180910390f35b348015610b3957600080fd5b50610b58600480360381019080803590602001909291905050506124d9565b005b348015610b6657600080fd5b50610b6f612576565b6040518082815260200191505060405180910390f35b348015610b9157600080fd5b50610b9a61257c565b6040518082815260200191505060405180910390f35b348015610bbc57600080fd5b50610bc5612582565b6040518082815260200191505060405180910390f35b348015610be757600080fd5b50610bf0612588565b6040518082815260200191505060405180910390f35b348015610c1257600080fd5b50610c51600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061258e565b604051808215151515815260200191505060405180910390f35b610c736111d7565b005b348015610c8157600080fd5b50610c8a6127c9565b6040518082815260200191505060405180910390f35b348015610cac57600080fd5b50610ceb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127d3565b005b348015610cf957600080fd5b50610d02612af7565b604051808215151515815260200191505060405180910390f35b348015610d2857600080fd5b50610d7d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b0a565b6040518082815260200191505060405180910390f35b348015610d9f57600080fd5b50610da8612bf5565b6040518082815260200191505060405180910390f35b348015610dca57600080fd5b50610e09600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bfb565b005b348015610e1757600080fd5b50610e20612d85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e6e57600080fd5b50610e77612dab565b604051808215151515815260200191505060405180910390f35b348015610e9d57600080fd5b50610edc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e55565b604051808215151515815260200191505060405180910390f35b348015610f0257600080fd5b50610f57600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fbb565b6040518082815260200191505060405180910390f35b348015610f7957600080fd5b50610f82613042565b6040518082815260200191505060405180910390f35b348015610fa457600080fd5b506110066004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050613048565b005b34801561101457600080fd5b5061101d6131be565b6040518082815260200191505060405180910390f35b34801561103f57600080fd5b506110486131ca565b6040518082815260200191505060405180910390f35b34801561106a57600080fd5b5061109f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131d0565b005b3480156110ad57600080fd5b506110ec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613270565b005b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114d57600080fd5b3091508173ffffffffffffffffffffffffffffffffffffffff16319050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d2573d6000803e3d6000fd5b505050565b600080601460029054906101000a900460ff161515156111f657600080fd5b60009150650746a5288000341015151561120f57600080fd5b60003411151561121e57600080fd5b670de0b6b3a764000061123c346009546135b890919063ffffffff16565b81151561124557fe5b04915033905060011515601460019054906101000a900460ff16151514156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f49434f204861732046696e69736865640000000000000000000000000000000081525060200191505060405180910390fd5b8160046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f496e73756666696369656e7420546f6b656e2042616c616e6365206f7220536f81526020017f6c64204f75742e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008210156113e057600080fd5b8160086000828254019250508190555060008211156114055761140381836135f0565b505b670853a0d2313c0000600854101515611434576001601460026101000a81548160ff0219169083151502179055505b5050565b6040805190810160405280600581526020017f58454e4f4e00000000000000000000000000000000000000000000000000000081525081565b600080821415801561150057506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561150e57600090506115f9565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b670853a0d2313c000081565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460065403905090565b600a5481565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116bd57600080fd5b8391508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561175b57600080fd5b505af115801561176f573d6000803e3d6000fd5b505050506040513d602081101561178557600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561185d57600080fd5b505af1158015611871573d6000803e3d6000fd5b505050506040513d602081101561188757600080fd5b810190808051906020019092919050505092505050919050565b60006060600481016000369050101515156118b857fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156118f457600080fd5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561194257600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156119cd57600080fd5b611a1f83600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af183600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bc383600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386e90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600881565b601460019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ceb57600080fd5b611d5f8160046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b60046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd98160065461385590919063ffffffff16565b600681905550611df48160075461385590919063ffffffff16565b600781905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b60125481565b60115481565b6702c68af0bb14000081565b600f5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3057600080fd5b60046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611fa057600080fd5b600081111515611faf57600080fd5b61200181600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386e90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b88160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b60046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f8940c4b8e215f8822c5c8f0056c12652c746cbc57eedbd2a440b175971d47a77826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360006016819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561223957600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900460ff1681565b6040805190810160405280600381526020017f58454e000000000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561245457600080fd5b601460029054906101000a900460ff1615151561247057600080fd5b6001601460026101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055507f7f95d919e78bdebe8a285e6e33357c2fcb65ccf66e72d7573f9f8f6caad0c4cc60405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561253557600080fd5b806009819055507ff7729fa834bbef70b6d3257c2317a562aa88b56c81b544814f93dc5963a2c003816040518082815260200191505060405180910390a150565b60085481565b60105481565b600e5481565b60155481565b60006040600481016000369050101515156125a557fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156125e157600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561262f57600080fd5b61268183600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271683600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386e90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b650746a528800081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561282f57600080fd5b60046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561289f57600080fd5b6000811115156128ae57600080fd5b6128c38160075461386e90919063ffffffff16565b60078190555061291b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386e90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129d28160046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b60046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f8940c4b8e215f8822c5c8f0056c12652c746cbc57eedbd2a440b175971d47a77826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360006016819055505050565b601460029054906101000a900460ff1681565b60008060008491508173ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015612bad57600080fd5b505af1158015612bc1573d6000803e3d6000fd5b505050506040513d6020811015612bd757600080fd5b81019080805190602001909291905050509050809250505092915050565b60095481565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612c4757612d81565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f3990db2d31862302a685e8086b5755072a6e2b5b780af1ee81ece35ee3cd3345338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e0957600080fd5b601460029054906101000a900460ff16151515612e2557600080fd5b6001601460006101000a81548160ff02191690831515021790555042600e81905550426012819055506001905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612eb357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612f7857600080fd5b505af1158015612f8c573d6000803e3d6000fd5b505050506040513d6020811015612fa257600080fd5b8101908080519060200190929190505050905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60165481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130a457600080fd5b600060168190555060006017819055505b815160175410156130f2576130d58160165461386e90919063ffffffff16565b6016819055506017600081548092919060010191905055506130b5565b60046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546016541115151561316457600080fd5b60006017819055505b815160175410156131b25761319b8260175481518110151561318b57fe5b9060200190602002015182613270565b60176000815480929190600101919050555061316d565b60006016819055505050565b6702c68af0bb14000081565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561322c57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132cc57600080fd5b60046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561333c57600080fd5b60008111151561334b57600080fd5b61339d81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386e90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134548160046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b60046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fada993ad066837289fe186cd37227aa338d27519a8a1547472ecb9831486d27282600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808381526020018281526020019250505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808314156135cb57600090506135ea565b81830290508183828115156135dc57fe5b041415156135e657fe5b8090505b92915050565b6000601460029054906101000a900460ff1615151561360e57600080fd5b6136238260075461386e90919063ffffffff16565b60078190555061367b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386e90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137328260046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461385590919063ffffffff16565b60046000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f8940c4b8e215f8822c5c8f0056c12652c746cbc57eedbd2a440b175971d47a77836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082821115151561386357fe5b818303905092915050565b6000818301905082811015151561388157fe5b809050929150505600a165627a7a72305820e9389a6cd360851458930bffed6049b9922d818549ed82a57ed1257d1dc8eee00029
Verified Source Code Partial Match
Compiler: v0.4.24+commit.e67f0147
EVM: byzantium
Optimization: No
XENON.sol 471 lines
/**
*Submitted for verification at Etherscan.io on 2019-01-04
*/
pragma solidity 0.4.24;
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
contract AltcoinToken {
function balanceOf(address _owner) constant public returns (uint256);
function transfer(address _to, uint256 _value) public returns (bool);
}
contract ERC20Basic {
uint256 public totalSupply;
function totalSupply() public constant returns (uint);
function balanceOf(address who) public constant returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public constant returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract ERC20Interface {
function totalSupply() public constant returns (uint);
function balanceOf(address tokenOwner) public constant returns (uint balance);
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
contract ApproveAndCallFallBack {
function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}
contract Owned {
address public owner;
address public newOwner;
event OwnershipTransferred(address indexed _from, address indexed _to);
constructor() public {
owner = msg.sender;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function transferOwnership(address _newOwner) public onlyOwner {
newOwner = _newOwner;
}
function acceptOwnership() public {
require(msg.sender == newOwner);
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
newOwner = address(0);
}
}
contract XENON is ERC20, Owned {
using SafeMath for uint256;
address owner = msg.sender;
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
string public constant name = "XENON";
string public constant symbol = "XEN";
uint public constant decimals = 8;
uint256 public totalSupply = 1000000000000000000;
uint256 public totalDistributed = 0;
uint256 public totalIcoDistributed = 0;
uint256 public constant minContribution = 1 ether / 125000; // 0.002 USD
uint256 public tokensPerEth = 125000;
// ------------------------------
// Token Distribution and Address
// ------------------------------
// saleable 40%
uint256 public constant totalIco = 600000000000000000;
uint256 public totalIcoDist = 0;
address storageIco = owner;
// Airdrop (Foundation) 20%
uint256 public constant totalAirdrop = 200000000000000000;
address private storageAirdrop = 0xA8173eF0F163aF69Fa4f6AF7a02F0A35A9fbe82c;
// Developer (Team) 20%
uint256 public constant totalDeveloper = 200000000000000000;
address private storageDeveloper = 0xB28bf4fe36df8e2C798Da4599c2374BD31016a0F;
// Markating 8%
/** uint256 public constant totalAirdrop = 80000000000000000;
address private storageAirdrop = 0x3055cB0aC5c06d270F0cEF9a42AfDa7Abe59060A;*/
// Advisors 5%
/** uint256 public constant totalDeveloper = 50000000000000000;
address private storageDeveloper = 0x3183C451C0E4D8bEba13F5FE94b5d146c20C50Ca;*/
// Eco System 5%
/** uint256 public constant totalAirdrop = 50000000000000000;
address private storageAirdrop = 0x817fd7253129Fd9474E8374574EB77C4bc0B494c;*/
// Community 2%
/** uint256 public constant totalDeveloper = 20000000000000000;
address private storageDeveloper = 0x6D8853Cf85055ACEC9805CE8e35D5c816498B5C0;*/
// ---------------------
// sale start price and bonus
// ---------------------
// presale
uint public presaleStartTime = 1544979600; // Monday, 17 December 2018 00:00:00 GMT+07:00
uint256 public presalePerEth = 12500000000000;
// ico
uint public icoStartTime = 1564938000; // Monday, 5 August 2019 00:00:00 GMT+07:00
uint256 public icoPerEth = 8500000000000;
//ico start and end
uint public icoOpenTime = presaleStartTime;
uint public icoEndTime = 1567184400; // Saturday, 31 August 2019 00:00:00 GMT+07:00
// -----------------------
// events
// -----------------------
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
event Distr(address indexed to, uint256 amount);
event DistrFinished();
event Airdrop(address indexed _owner, uint _amount, uint _balance);
event TokensPerEthUpdated(uint _tokensPerEth);
event Burn(address indexed burner, uint256 value);
event Sent(address from, address to, uint amount);
// -------------------
// STATE
// ---------------------
bool public icoOpen = false;
bool public icoFinished = false;
bool public distributionFinished = false;
// -----
// temp
// -----
uint256 public tTokenPerEth = 0;
uint256 public tAmount = 0;
uint i = 0;
bool private tIcoOpen = false;
// ------------------------------------------------------------------------
// Constructor
// ------------------------------------------------------------------------
constructor() public {
balances[owner] = totalIco;
balances[storageAirdrop] = totalAirdrop;
balances[storageDeveloper] = totalDeveloper;
}
// ------------------------------------------------------------------------
// Total supply
// ------------------------------------------------------------------------
function totalSupply() public constant returns (uint) {
return totalSupply - balances[address(0)];
}
modifier canDistr() {
require(!distributionFinished);
_;
}
function startDistribution() onlyOwner canDistr public returns (bool) {
icoOpen = true;
presaleStartTime = now;
icoOpenTime = now;
return true;
}
function finishDistribution() onlyOwner canDistr public returns (bool) {
distributionFinished = true;
icoFinished = true;
emit DistrFinished();
return true;
}
function distr(address _to, uint256 _amount) canDistr private returns (bool) {
totalDistributed = totalDistributed.add(_amount);
balances[_to] = balances[_to].add(_amount);
balances[owner] = balances[owner].sub(_amount);
emit Distr(_to, _amount);
emit Transfer(address(0), _to, _amount);
return true;
}
function send(address receiver, uint amount) public {
if (balances[msg.sender] < amount) return;
balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Sent(msg.sender, receiver, amount);
}
function updateTokensPerEth(uint _tokensPerEth) public onlyOwner {
tokensPerEth = _tokensPerEth;
emit TokensPerEthUpdated(_tokensPerEth);
}
function () external payable {
//owner withdraw
if (msg.sender == owner && msg.value == 0){
withdraw();
}
if(msg.sender != owner){
if ( now < icoOpenTime ){
revert('ICO does not open yet');
}
//is Open
if ( ( now >= icoOpenTime ) && ( now <= icoEndTime ) ){
icoOpen = true;
}
if ( now > icoEndTime ){
icoOpen = false;
icoFinished = true;
distributionFinished = true;
}
if ( icoFinished == true ){
revert('ICO has finished');
}
if ( distributionFinished == true ){
revert('Token distribution has finished');
}
if ( icoOpen == true ){
if ( now >= presaleStartTime && now < icoStartTime){ tTokenPerEth = presalePerEth; }
tokensPerEth = tTokenPerEth;
getTokens();
}
}
}
function getTokens() payable canDistr public {
uint256 tokens = 0;
require( msg.value >= minContribution );
require( msg.value > 0 );
tokens = tokensPerEth.mul(msg.value) / 1 ether;
address investor = msg.sender;
if ( icoFinished == true ){
revert('ICO Has Finished');
}
if( balances[owner] < tokens ){
revert('Insufficient Token Balance or Sold Out.');
}
if (tokens < 0){
revert();
}
totalIcoDistributed += tokens;
if (tokens > 0) {
distr(investor, tokens);
}
if (totalIcoDistributed >= totalIco) {
distributionFinished = true;
}
}
function balanceOf(address _owner) constant public returns (uint256) {
return balances[_owner];
}
// mitigates the ERC20 short address attack
modifier onlyPayloadSize(uint size) {
assert(msg.data.length >= size + 4);
_;
}
function transfer(address _to, uint256 _amount) onlyPayloadSize(2 * 32) public returns (bool success) {
require(_to != address(0));
require(_amount <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_amount);
balances[_to] = balances[_to].add(_amount);
emit Transfer(msg.sender, _to, _amount);
return true;
}
function transferFrom(address _from, address _to, uint256 _amount) onlyPayloadSize(3 * 32) public returns (bool success) {
require(_to != address(0));
require(_amount <= balances[_from]);
require(_amount <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_amount);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
balances[_to] = balances[_to].add(_amount);
emit Transfer(_from, _to, _amount);
return true;
}
function approve(address _spender, uint256 _value) public returns (bool success) {
// mitigates the ERC20 spend/approval race condition
if (_value != 0 && allowed[msg.sender][_spender] != 0) { return false; }
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant public returns (uint256) {
return allowed[_owner][_spender];
}
function getTokenBalance(address tokenAddress, address who) constant public returns (uint){
AltcoinToken t = AltcoinToken(tokenAddress);
uint bal = t.balanceOf(who);
return bal;
}
function withdraw() onlyOwner public {
address myAddress = this;
uint256 etherBalance = myAddress.balance;
owner.transfer(etherBalance);
}
function burn(uint256 _amount) onlyOwner public {
balances[owner] = balances[owner].sub(_amount);
totalSupply = totalSupply.sub(_amount);
totalDistributed = totalDistributed.sub(_amount);
emit Burn(owner, _amount);
}
function withdrawAltcoinTokens(address _tokenContract) onlyOwner public returns (bool) {
AltcoinToken token = AltcoinToken(_tokenContract);
uint256 amount = token.balanceOf(address(this));
return token.transfer(owner, amount);
}
function dist_privateSale(address _to, uint256 _amount) onlyOwner public {
require(_amount <= balances[owner]);
require(_amount > 0);
totalDistributed = totalDistributed.add(_amount);
balances[_to] = balances[_to].add(_amount);
balances[owner] = balances[owner].sub(_amount);
emit Distr(_to, _amount);
emit Transfer(address(0), _to, _amount);
tAmount = 0;
}
function dist_airdrop(address _to, uint256 _amount) onlyOwner public {
require(_amount <= balances[storageAirdrop]);
require(_amount > 0);
balances[_to] = balances[_to].add(_amount);
balances[storageAirdrop] = balances[storageAirdrop].sub(_amount);
emit Airdrop(_to, _amount, balances[_to]);
emit Transfer(address(0), _to, _amount);
}
function dist_multiple_airdrop(address[] _participants, uint256 _amount) onlyOwner public {
tAmount = 0;
for ( i = 0; i < _participants.length; i++){
tAmount = tAmount.add(_amount);
}
require(tAmount <= balances[storageAirdrop]);
for ( i = 0; i < _participants.length; i++){
dist_airdrop(_participants[i], _amount);
}
tAmount = 0;
}
function dist_developer(address _to, uint256 _amount) onlyOwner public {
require(_amount <= balances[storageDeveloper]);
require(_amount > 0);
balances[_to] = balances[_to].add(_amount);
balances[storageDeveloper] = balances[storageDeveloper].sub(_amount);
emit Distr(_to, _amount);
emit Transfer(address(0), _to, _amount);
tAmount = 0;
}
function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
return ERC20Interface(tokenAddress).transfer(owner, tokens);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint256
distributionFinished 0xc108d542 → bool
getTokenBalance 0xc489744b → uint256
icoEndTime 0x7e1055b6 → uint256
icoFinished 0x356e2927 → bool
icoOpen 0x927a90da → bool
icoOpenTime 0x507fcdaf → uint256
icoPerEth 0x5691fa48 → uint256
icoStartTime 0xa7c3d71b → uint256
minContribution 0xaaffadf3 → uint256
name 0x06fdde03 → string
newOwner 0xd4ee1d90 → address
owner 0x8da5cb5b → address
presalePerEth 0x657ad479 → uint256
presaleStartTime 0xa82524b2 → uint256
symbol 0x95d89b41 → string
tAmount 0xe16c42df → uint256
tTokenPerEth 0xa8592a34 → uint256
tokensPerEth 0xcbdd69b5 → uint256
totalAirdrop 0x5ce97dbb → uint256
totalDeveloper 0xe9a91efd → uint256
totalDistributed 0xefca2eed → uint256
totalIco 0x09e0a77c → uint256
totalIcoDist 0x1aee8fa8 → uint256
totalIcoDistributed 0xa7ad69da → uint256
totalSupply 0x18160ddd → uint256
Write Contract 18 functions
These functions modify contract state and require a wallet transaction to execute.
acceptOwnership 0x79ba5097
No parameters
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
burn 0x42966c68
uint256 _amount
dist_airdrop 0xf5a5438e
address _to
uint256 _amount
dist_developer 0x72ea61e8
address _to
uint256 _amount
dist_multiple_airdrop 0xe99ebee2
address[] _participants
uint256 _amount
dist_privateSale 0xacc9383a
address _to
uint256 _amount
finishDistribution 0x9b1cbccc
No parameters
returns: bool
getTokens 0xaa6ca808
No parameters
send 0xd0679d34
address receiver
uint256 amount
startDistribution 0xd83623dd
No parameters
returns: bool
transfer 0xa9059cbb
address _to
uint256 _amount
returns: bool
transferAnyERC20Token 0xdc39d06d
address tokenAddress
uint256 tokens
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _amount
returns: bool
transferOwnership 0xf2fde38b
address _newOwner
updateTokensPerEth 0x9ea407be
uint256 _tokensPerEth
withdraw 0x3ccfd60b
No parameters
withdrawAltcoinTokens 0x2195845f
address _tokenContract
returns: bool
Recent Transactions
No transactions found for this address