Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x6f90aE14B6aC7188b307DaBd43b4EE9700aAFeF7
Balance 0 ETH
Nonce 1
Code Size 17448 bytes
Indexed Transactions Index loading...
External Etherscan · Sourcify

Contract Bytecode

17448 bytes
0x6080604052600436106102465760003560e01c806365e0c1c211610139578063a6f9dae1116100b6578063d0febe4c1161007a578063d0febe4c14610dff578063dd62ed3e14610e21578063e93a359414610ea6578063ee3d170614610ed1578063f0dda65c14610f3a578063f775898d14610fad57610246565b8063a6f9dae114610c18578063a87430ba14610c81578063a9059cbb14610cf8578063b882438314610d6b578063b918161114610d9657610246565b8063938ba2b2116100fd578063938ba2b214610ab057806395d89b4114610adb578063a06484be14610b6b578063a35e735d14610bbe578063a38eb62214610be957610246565b806365e0c1c2146108fb57806369a0bd3a1461097657806370a08231146109c9578063789770f414610a2e5780638f84aa0914610a5957610246565b80631d988891116101c75780633fc929de1161018b5780633fc929de1461071057806347b5dd541461076757806356b61aae146107925780635ba92f971461080d5780635c6581651461087657610246565b80631d9888911461056557806323b872dd1461059057806327e235e314610623578063313ce567146106885780633382ddab146106b957610246565b8063085710111161020e57806308571011146103df578063095ea7b31461044b5780630bc6c96e146104be5780631329e86e146104d557806318160ddd1461053a57610246565b806303f1e22014610251578063069cf2981461027c57806306fdde03146102d15780630766096e1461036157806307973ccf146103b4575b61024e61100a565b50005b34801561025d57600080fd5b506102666114a2565b6040518082815260200191505060405180910390f35b34801561028857600080fd5b506102b76004803603602081101561029f57600080fd5b810190808035151590602001909291905050506114a8565b604051808215151515815260200191505060405180910390f35b3480156102dd57600080fd5b506102e6611590565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032657808201518184015260208101905061030b565b50505050905090810190601f1680156103535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036d57600080fd5b5061039a6004803603602081101561038457600080fd5b810190808035906020019092919050505061162e565b604051808215151515815260200191505060405180910390f35b3480156103c057600080fd5b506103c9611703565b6040518082815260200191505060405180910390f35b3480156103eb57600080fd5b506103f4611709565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561043757808201518184015260208101905061041c565b505050509050019250505060405180910390f35b34801561045757600080fd5b506104a46004803603604081101561046e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611797565b604051808215151515815260200191505060405180910390f35b3480156104ca57600080fd5b506104d36119a1565b005b3480156104e157600080fd5b50610524600480360360208110156104f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acf565b6040518082815260200191505060405180910390f35b34801561054657600080fd5b5061054f611bc0565b6040518082815260200191505060405180910390f35b34801561057157600080fd5b5061057a611bca565b6040518082815260200191505060405180910390f35b34801561059c57600080fd5b50610609600480360360608110156105b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bd0565b604051808215151515815260200191505060405180910390f35b34801561062f57600080fd5b506106726004803603602081101561064657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612335565b6040518082815260200191505060405180910390f35b34801561069457600080fd5b5061069d61234d565b604051808260ff1660ff16815260200191505060405180910390f35b3480156106c557600080fd5b506106ce612360565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071c57600080fd5b50610725612386565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077357600080fd5b5061077c6123ac565b6040518082815260200191505060405180910390f35b34801561079e57600080fd5b506107cb600480360360208110156107b557600080fd5b81019080803590602001909291905050506123b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081957600080fd5b5061085c6004803603602081101561083057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ee565b604051808215151515815260200191505060405180910390f35b34801561088257600080fd5b506108e56004803603604081101561089957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125a0565b6040518082815260200191505060405180910390f35b34801561090757600080fd5b5061095c600480360360a081101561091e57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506125c5565b604051808215151515815260200191505060405180910390f35b34801561098257600080fd5b506109af6004803603602081101561099957600080fd5b8101908080359060200190929190505050612908565b604051808215151515815260200191505060405180910390f35b3480156109d557600080fd5b50610a18600480360360208110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129dd565b6040518082815260200191505060405180910390f35b348015610a3a57600080fd5b50610a43612a26565b6040518082815260200191505060405180910390f35b348015610a6557600080fd5b50610a6e612a2c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610abc57600080fd5b50610ac5612a52565b6040518082815260200191505060405180910390f35b348015610ae757600080fd5b50610af0612a58565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b30578082015181840152602081019050610b15565b50505050905090810190601f168015610b5d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b7757600080fd5b50610ba460048036036020811015610b8e57600080fd5b8101908080359060200190929190505050612af6565b604051808215151515815260200191505060405180910390f35b348015610bca57600080fd5b50610bd3612dd4565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610bfe612dda565b604051808215151515815260200191505060405180910390f35b348015610c2457600080fd5b50610c6760048036036020811015610c3b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ded565b604051808215151515815260200191505060405180910390f35b348015610c8d57600080fd5b50610cd060048036036020811015610ca457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f9f565b6040518084151515158152602001838152602001828152602001935050505060405180910390f35b348015610d0457600080fd5b50610d5160048036036040811015610d1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fd6565b604051808215151515815260200191505060405180910390f35b348015610d7757600080fd5b50610d80613676565b6040518082815260200191505060405180910390f35b348015610da257600080fd5b50610de560048036036020811015610db957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061367c565b604051808215151515815260200191505060405180910390f35b610e0761100a565b604051808215151515815260200191505060405180910390f35b348015610e2d57600080fd5b50610e9060048036036040811015610e4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061369c565b6040518082815260200191505060405180910390f35b348015610eb257600080fd5b50610ebb613723565b6040518082815260200191505060405180910390f35b348015610edd57600080fd5b50610f2060048036036020811015610ef457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613729565b604051808215151515815260200191505060405180910390f35b348015610f4657600080fd5b50610f9360048036036040811015610f5d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138db565b604051808215151515815260200191505060405180910390f35b348015610fb957600080fd5b5061100860048036036040811015610fd057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613c45565b005b6000801515600e60009054906101000a900460ff16151514611094576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f546f6b656e206275792063757272656e746c7920756e617661696c61626c652e81525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b600034116111ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b6000670de0b6b3a76400003410156111ef576111e86008546111da60095434613dd790919063ffffffff16565b613e5d90919063ffffffff16565b905061131b565b670de0b6b3a76400003411801561120e5750674563918244f400003411155b156112435761123c60085461122e600a5434613dd790919063ffffffff16565b613e5d90919063ffffffff16565b905061131a565b674563918244f4000034118015611262575067d02ab486cedc00003411155b1561129757611290600854611282600b5434613dd790919063ffffffff16565b613e5d90919063ffffffff16565b9050611319565b67d02ab486cedc0000341180156112b757506801a055690d9db800003411155b156112ec576112e56008546112d7600c5434613dd790919063ffffffff16565b613e5d90919063ffffffff16565b9050611318565b611315600854611307600d5434613dd790919063ffffffff16565b613e5d90919063ffffffff16565b90505b5b5b5b61133081600354613eec90919063ffffffff16565b60038190555061138881600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611433573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b600a5481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461156d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b81600e60006101000a81548160ff02191690831515021790555060019050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116265780601f106115fb57610100808354040283529160200191611626565b820191906000526020600020905b81548152906001019060200180831161160957829003601f168201915b505050505081565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b8160128190555060019050919050565b60115481565b6060601580548060200260200160405190810160405280929190818152602001828054801561178d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611743575b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e756c6c2061646472657373000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082116118b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f496e76616c69642076616c75650000000000000000000000000000000000000081525060200191505060405180910390fd5b81601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611acc573d6000803e3d6000fd5b50565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615611bb657611b2e6143af565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016001820154815260200160028201548152505090508060400151915050611bbb565b600090505b919050565b6000600354905090565b600b5481565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e76616c69642066726f6d206164647265737300000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c696420746f2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642062616c616e6365000000000000000000000000000000000081525060200191505060405180910390fd5b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c696420616c6c6f77616e636500000000000000000000000000000081525060200191505060405180910390fd5b611f1082600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f7490919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611f8b68056bc75e2d63100000611f7d670de0b6b3a764000086613dd790919063ffffffff16565b613e5d90919063ffffffff16565b90506000611fa28285613f7490919063ffffffff16565b905061201882600f6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120cf81600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121a184601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f7490919063ffffffff16565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223682600454613eec90919063ffffffff16565b6004819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001925050509392505050565b600f6020528060005260406000206000915090505481565b600260009054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b601581815481106123bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642041646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6010602052816000526040600020602052806000526040600020600091509150505481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461268a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b60008611612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c69642062726f6e7a65207061636b2072617465000000000000000081525060200191505060405180910390fd5b60008511612776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c69642073696c766572207061636b2072617465000000000000000081525060200191505060405180910390fd5b600084116127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e76616c696420676f6c64207061636b20726174650000000000000000000081525060200191505060405180910390fd5b60008311612862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420706c6174696e756d207061636b207261746500000000000081525060200191505060405180910390fd5b600082116128d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f496e76616c6964206469616d6f6e64207061636b20726174650000000000000081525060200191505060405180910390fd5b8560098190555084600a8190555083600b8190555082600c8190555081600d819055506001905095945050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146129cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b8160088190555060019050919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612aee5780601f10612ac357610100808354040283529160200191612aee565b820191906000526020600020905b815481529060010190602001808311612ad157829003601f168201915b505050505081565b600080612b14670de0b6b3a764000084613dd790919063ffffffff16565b9050600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115612bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b612c1d81600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f7490919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cd481600f6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612dca3384613ffd565b6001915050919050565b600d5481565b600e60009054906101000a900460ff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612eb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642041646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60136020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154905083565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561307a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561312f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b61318182600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f7490919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133a35761328e82600f6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a361339e33613399670de0b6b3a764000085613e5d90919063ffffffff16565b613ffd565b61366c565b60006133db68056bc75e2d631000006133cd670de0b6b3a764000086613dd790919063ffffffff16565b613e5d90919063ffffffff16565b905060006133f28285613f7490919063ffffffff16565b905061346882600f6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351f81600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061357782600454613eec90919063ffffffff16565b6004819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505b6001905092915050565b60125481565b60146020528060005260406000206000915054906101000a900460ff1681565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146137ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642041646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600060011515601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146139a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f53656e646572206d75737420626520617574686f72697a65642e00000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b6000613a63670de0b6b3a764000084613dd790919063ffffffff16565b1015613ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b613b06613af5670de0b6b3a764000084613dd790919063ffffffff16565b600354613eec90919063ffffffff16565b600381905550613b78613b2a670de0b6b3a764000084613dd790919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec90919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613c26670de0b6b3a764000086613dd790919063ffffffff16565b6040518082815260200191505060405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613d08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4f776e65722061646472657373206f6e6c79000000000000000000000000000081525060200191505060405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600115158115151415613dd35760158290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b600080831415613dea5760009050613e57565b6000828402905082848281613dfb57fe5b0414613e52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806143d36021913960400191505060405180910390fd5b809150505b92915050565b6000808211613ed4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481613edf57fe5b0490508091505092915050565b600080828401905083811015613f6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a204164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600082821115613fec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a205375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008111614073576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f416d6f756e742063616e206e6f74206265207a65726f0000000000000000000081525060200191505060405180910390fd5b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16614188576140cf6143af565b4281602001818152505060125482024201816040018181525050600181600001901515908115158152505080601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155905050600160116000828254019250508190555050614193565b6141928282614197565b5b5050565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16614259576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5573657220646f6573206e6f742065786973747300000000000000000000000081525060200191505060405180910390fd5b6142616143af565b6000601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000428211156142c0576012548402820190506142ca565b6012548402420190505b6001836000019015159081151581525050601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548360200181815250508083604001818152505082601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155604082015181600201559050505050505050565b60405180606001604052806000151581526020016000815260200160008152509056fe536166654d6174683a204d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158202cdc47688f3fb7195e4efd6ad5acd9deb346bb9de86ec6dc161f1bbf9927269b64736f6c63430005110032

Verified Source Code Partial Match

Compiler: v0.5.17+commit.d19bba13 EVM: istanbul Optimization: No
ThinkBlockLearning.sol 437 lines
pragma solidity 0.5.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: Addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: Subtraction overflow");
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: Multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when divide by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: Modulo by zero");
        return a % b;
    }
}


interface ERC20 {

    function transferFrom(address _from, address _to, uint256 value) external returns (bool);
    function approve(address _spender, uint256 _value) external returns (bool);
    function transfer(address _to, uint256 _value) external returns(bool);
    function allowance(address _owner, address _spender) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    function balanceOf(address _account) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract ThinkBlockLearning is ERC20 {

    using SafeMath for uint256;
    // Token Variables
    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 private tokenSupply;
    uint256 public burnedTokens;
    address public tokenBurnAddress;
    address public tokenReceivingAddress;
    address payable public ownerAddress;
    uint256 public ethToToken;
    uint256 public bronzePack;
    uint256 public silverPack;
    uint256 public goldPack;
    uint256 public platinumPack;
    uint256 public diamondPack;
    bool public pauseBuy;

    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;

    // User Variables & Struct
    uint256 public userCount;
    uint256 public tokenToTime;

    struct Users_Details {
        bool isExist;
        uint256 register_on;
        uint256 access_expiry;
    }
    mapping (address => Users_Details) public users;
    
    mapping(address => bool) public authorized;
    address[] public allAuthorized;

    modifier onlyAuth() {
        require(authorized[msg.sender] == true, "Sender must be authorized.");
        _;
    }

    // ------------------------------------------------------------------------
    // Default Constructor
    // ------------------------------------------------------------------------
    constructor (address _tokenBurnAddress, address _tokenReceivingAddress) public {
        name = 'ThinkBlock Learning';
        symbol = 'TBL';
        decimals = 18;
        tokenBurnAddress = _tokenBurnAddress;
        tokenReceivingAddress = _tokenReceivingAddress;
        ownerAddress = msg.sender;
        tokenToTime = 60;
        ethToToken = 0.0001 ether;
        bronzePack = 1 ether;
        silverPack = 1.03 ether;
        goldPack = 1.05 ether;
        platinumPack = 1.09 ether;
        diamondPack = 1.12 ether;
        pauseBuy = false;
        
        userCount = 0;
        
        authorized[msg.sender] = true;
        allAuthorized.push(msg.sender);
    }

    // ------------------------------------------------------------------------
    // Owner only access modifier
    // ------------------------------------------------------------------------
    modifier onlyOwner() {
        require(msg.sender == ownerAddress, "Owner address only");
        _;
    }

    // ------------------------------------------------------------------------
    // Token total supply
    // ------------------------------------------------------------------------
    function totalSupply() public view returns (uint256) {
        return tokenSupply;
    }

    // ------------------------------------------------------------------------
    // Get the token balance for account tokenOwner
    // ------------------------------------------------------------------------
    function balanceOf(address _account) public view returns (uint256) {
        return balances[_account];
    }

    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    // ------------------------------------------------------------------------
    // Allow user to subscribe/extend access expiry through contract
    // ------------------------------------------------------------------------
    function subscribeViaToken(uint256 _value) public  returns (bool) {

        uint256 sentValue = _value.mul(1 ether);
        require(sentValue <= balances[msg.sender], "Insufficient balance");
        balances[msg.sender] = balances[msg.sender].sub(sentValue);
        balances[tokenReceivingAddress] = balances[tokenReceivingAddress].add(sentValue);
        emit Transfer(msg.sender, tokenReceivingAddress, sentValue);
        // To add new user or extend access expiry
        checkAndRegisterUser (msg.sender, _value);
        
        return true;
    }

    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to another account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0), "Invalid address");
        require(_value <= balances[msg.sender], "Insufficient balance");
        balances[msg.sender] = balances[msg.sender].sub(_value);

        // To add new user or extend access expiry
        if (_to == tokenReceivingAddress) {
            balances[tokenReceivingAddress] = balances[tokenReceivingAddress].add(_value);
            emit Transfer(msg.sender, tokenReceivingAddress, _value);
            // To add new user or extend access expiry
            checkAndRegisterUser (msg.sender, _value.div(10**18));
        }
        else {
            uint256 burnFee = (_value.mul(1 ether)).div(10**20);
            uint256 balanceFee = _value.sub(burnFee);
            balances[tokenBurnAddress] = balances[tokenBurnAddress].add(burnFee);
            balances[_to] = balances[_to].add(balanceFee);
            burnedTokens = burnedTokens.add(burnFee);

            emit Transfer(msg.sender, _to, balanceFee);
            emit Transfer(msg.sender, tokenBurnAddress, burnFee);
        }

        return true;
    }

    // ------------------------------------------------------------------------
    // Transfer tokens from the from one account to another account
    // 
    // The calling account must already have sufficient tokens approve(...)-d
    // for spending from the from account and
    // - From account must have sufficient balance to transfer
    // - Spender must have sufficient allowance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_from != address(0), "Invalid from address");
        require(_to != address(0), "Invalid to address");
        require(_value <= balances[_from], "Invalid balance");
        require(_value <= allowed[_from][msg.sender], "Invalid allowance");

        balances[_from] = balances[_from].sub(_value);
        uint256 burnFee = (_value.mul(1 ether)).div(10**20);
        uint256 balanceFee = _value.sub(burnFee);
        balances[tokenBurnAddress] = balances[tokenBurnAddress].add(burnFee);
        balances[msg.sender] = balances[msg.sender].add(balanceFee);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        burnedTokens = burnedTokens.add(burnFee);
        
        emit Transfer(_from, _to, balanceFee);
        emit Transfer(_from, tokenBurnAddress, burnFee);

        return true;
    }

    // ------------------------------------------------------------------------
    // Token owner can approve for spender to transferFrom(...) tokens
    // from the token owner's account
    //
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
    // recommends that there are no checks for the approval double-spend attack
    // as this should be implemented in user interfaces 
    // ------------------------------------------------------------------------
    function approve(address _spender, uint256 _value) public returns (bool) {
        require(_spender != address(0), "Null address");
        require(_value > 0, "Invalid value");
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // ------------------------------------------------------------------------
    // Mint new tokens
    // ------------------------------------------------------------------------
    function mintTokens (address _receiver, uint256 _amount) public onlyAuth returns (bool) {
        require(_receiver != address(0), "Invalid address");
        require(_amount.mul(10**18) >= 0, "Invalid amount");
        tokenSupply = tokenSupply.add(_amount.mul(10**18));
        balances[_receiver] = balances[_receiver].add(_amount.mul(10**18));
        emit Transfer(address(0), _receiver, _amount.mul(10**18));
        return true;
    }

    // ------------------------------------------------------------------------
    // Bulk buy tokens via ETH
    // ------------------------------------------------------------------------
    function buyTokens () public payable returns (bool) {
        require(pauseBuy == false,'Token buy currently unavailable.');
        require(msg.sender != address(0), "Invalid address");
        require(msg.value > 0, "Invalid amount");
        uint256 tokensToBuy;
        if (msg.value < 1 ether) {
            tokensToBuy = msg.value.mul(bronzePack).div(ethToToken);
        }
        else if (msg.value > 1 ether && msg.value <= 5 ether) {
            tokensToBuy = msg.value.mul(silverPack).div(ethToToken);
        }
        else if (msg.value > 5 ether && msg.value <= 15 ether) {
            tokensToBuy = msg.value.mul(goldPack).div(ethToToken);
        }
        else if (msg.value > 15 ether && msg.value <= 30 ether) {
            tokensToBuy = msg.value.mul(platinumPack).div(ethToToken);
        }
        else {
            tokensToBuy = msg.value.mul(diamondPack).div(ethToToken);
        }

        tokenSupply = tokenSupply.add(tokensToBuy);
        balances[msg.sender] = balances[msg.sender].add(tokensToBuy);
        ownerAddress.transfer(msg.value);
        emit Transfer(address(0), msg.sender, tokensToBuy);
        return true;
    }

    // ------------------------------------------------------------------------
    // Register a new user
    // ------------------------------------------------------------------------
    function checkAndRegisterUser (address _account, uint256 _amount) private {
        require(_amount > 0, 'Amount can not be zero');
        if (!users[_account].isExist) {
            //Create temp instance of User struct
            Users_Details memory user;
            user.register_on = now;
            user.access_expiry = now + (_amount * tokenToTime);
            user.isExist = true;
            users[_account] = user;
            userCount += 1;
        }
        else {
            // Extend access expiry
            extendUserAccess(_account, _amount);
        }
    }

    // ------------------------------------------------------------------------
    // Check user access expiry
    // ------------------------------------------------------------------------
    function getUserAccessExpiry (address _account) public view returns(uint256) {
        //require(users[_account].isExist,'User does not exists');
        if (users[_account].isExist) {
            // Create temp instance of User struct
            Users_Details memory user;
            user = users[_account];
            return user.access_expiry;
        }
        else {
            return 0;
        }
    }

    // ------------------------------------------------------------------------
    // Extend user access expiry
    // ------------------------------------------------------------------------
    function extendUserAccess (address _account, uint256 _amount) private {
        require(users[_account].isExist,'User does not exists');
        // Create temp instance of User struct
        Users_Details memory user;
        uint256 currentExpiry = users[_account].access_expiry;
        uint256 extendedExpiry;
        if (currentExpiry > now) {
            extendedExpiry = currentExpiry + (_amount * tokenToTime);
        }
        else {
            extendedExpiry = now + (_amount * tokenToTime);
        }
        user.isExist = true;
        user.register_on = users[_account].register_on;
        user.access_expiry = extendedExpiry;
        users[_account] = user;
    }

    // ------------------------------------------------------------------------
    // To change contract owner
    // ------------------------------------------------------------------------
    function changeOwner(address payable _newOwnerAddress) public onlyOwner returns (bool) {
        require(_newOwnerAddress != address(0), "Invalid Address");
        ownerAddress = _newOwnerAddress;
        return true;
    }

    // ------------------------------------------------------------------------
    // Resume/Pause Token Buy
    // ------------------------------------------------------------------------
    function startStopBuy (bool _status) public onlyOwner returns (bool) {
        pauseBuy = _status;
        return true;
    }

    // ------------------------------------------------------------------------
    // To change token receiving address
    // ------------------------------------------------------------------------
    function changeTokenRecAdd(address payable _tokenReceivingAddress) public onlyOwner returns (bool) {
        require(_tokenReceivingAddress != address(0), "Invalid Address");
        tokenReceivingAddress = _tokenReceivingAddress;
        return true;
    }

    // ------------------------------------------------------------------------
    // To change token burn address 
    // ------------------------------------------------------------------------
    function changeBurnAddress (address _tokenBurnAddress) public onlyOwner returns (bool) {
        require(_tokenBurnAddress != address(0), "Invalid Address");
        tokenBurnAddress = _tokenBurnAddress;
        return true;
    }


    // ------------------------------------------------------------------------
    // Change ETH to VLT Rates
    // ------------------------------------------------------------------------
    function changePackRates (uint256 _bronzePack, uint256 _silverPack, uint256 _goldPack, uint256 _platinumPack, uint256 _diamondPack) public onlyOwner returns (bool) {
        require(_bronzePack > 0, 'Invalid bronze pack rate');
        require(_silverPack > 0, 'Invalid silver pack rate');
        require(_goldPack > 0, 'Invalid gold pack rate');
        require(_platinumPack > 0, 'Invalid platinum pack rate');
        require(_diamondPack > 0, 'Invalid diamond pack rate');

        bronzePack = _bronzePack;
        silverPack = _silverPack;
        goldPack = _goldPack;
        platinumPack = _platinumPack;
        diamondPack = _diamondPack;
        return true;
    }

    
    // ------------------------------------------------------------------------
    // Change Token to Sec 
    // ------------------------------------------------------------------------
    function changeTokenToTime(uint256 _tokenToTime) public onlyOwner returns (bool) {
        tokenToTime = _tokenToTime;
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Change ETH to Token 
    // ------------------------------------------------------------------------
    function changeEthToToken(uint256 _ethToToken) public onlyOwner returns (bool) {
        ethToToken = _ethToToken;
        return true;
    }

    // ------------------------------------------------------------------------
    // FailSafe function
    // ------------------------------------------------------------------------
    function failSafe() public onlyOwner {
        ownerAddress.transfer(address(this).balance);
    }
    
    // ------------------------------------------------------------------------
    // Change Authorized address
    // ------------------------------------------------------------------------
    function changeAuth(address _newowner, bool status) onlyOwner public  {
       authorized[_newowner] = status;
       if(status == true)
       allAuthorized.push(_newowner);
    }
    
    // ------------------------------------------------------------------------
    // Get Authorized address
    // ------------------------------------------------------------------------
    function getAuth() public view returns(address[] memory)  {
       return allAuthorized;
    }
    
    // ------------------------------------------------------------------------
    //Fallback function
    // ------------------------------------------------------------------------
    function () payable external {
        buyTokens();
    }
}

Read Contract

allAuthorized 0x56b61aae → address
allowance 0xdd62ed3e → uint256
allowed 0x5c658165 → uint256
authorized 0xb9181611 → bool
balanceOf 0x70a08231 → uint256
balances 0x27e235e3 → uint256
bronzePack 0xe93a3594 → uint256
burnedTokens 0x47b5dd54 → uint256
decimals 0x313ce567 → uint8
diamondPack 0xa35e735d → uint256
ethToToken 0x789770f4 → uint256
getAuth 0x08571011 → address[]
getUserAccessExpiry 0x1329e86e → uint256
goldPack 0x1d988891 → uint256
name 0x06fdde03 → string
ownerAddress 0x8f84aa09 → address
pauseBuy 0xa38eb622 → bool
platinumPack 0x938ba2b2 → uint256
silverPack 0x03f1e220 → uint256
symbol 0x95d89b41 → string
tokenBurnAddress 0x3382ddab → address
tokenReceivingAddress 0x3fc929de → address
tokenToTime 0xb8824383 → uint256
totalSupply 0x18160ddd → uint256
userCount 0x07973ccf → uint256
users 0xa87430ba → bool, uint256, uint256

Write Contract 15 functions

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

approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
buyTokens 0xd0febe4c
No parameters
returns: bool
changeAuth 0xf775898d
address _newowner
bool status
changeBurnAddress 0xee3d1706
address _tokenBurnAddress
returns: bool
changeEthToToken 0x69a0bd3a
uint256 _ethToToken
returns: bool
changeOwner 0xa6f9dae1
address _newOwnerAddress
returns: bool
changePackRates 0x65e0c1c2
uint256 _bronzePack
uint256 _silverPack
uint256 _goldPack
uint256 _platinumPack
uint256 _diamondPack
returns: bool
changeTokenRecAdd 0x5ba92f97
address _tokenReceivingAddress
returns: bool
changeTokenToTime 0x0766096e
uint256 _tokenToTime
returns: bool
failSafe 0x0bc6c96e
No parameters
mintTokens 0xf0dda65c
address _receiver
uint256 _amount
returns: bool
startStopBuy 0x069cf298
bool _status
returns: bool
subscribeViaToken 0xa06484be
uint256 _value
returns: bool
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool

Recent Transactions

Transaction index is loading. Only unfinalized transactions are shown while the index starts up.