Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // USERCOUNT PROMISE
- var userCount = promisify('userCount');
- userCount.then(function(_userCount) {
- // MAKE SURE THERE ARE RECORDS
- if (_userCount > 0) {
- // LOG FOR CLARITY
- log('Reconds found: ' + _userCount);
- // LOOP THROUGH ALL USERS
- for (var x = 0; x < _userCount; x++) {
- // USER PROMISE
- var user = promisify('user', x);
- // LOG FOR CLARITY
- log('Rendering record #' + x);
- user.then(function(_user) {
- // GENERATE STRING
- var output = _user[0] + '<br>';
- // APPEND SELECTOR CONTENT
- $('body').append(output);
- });
- }
- } else {
- console.log('No records found.')
- }
- });
- function promisify(query, value = null) {
- return new Promise(function(resolve, reject) {
- switch(query) {
- // FETCH NUMBER OF RECORDS
- case 'userCount':
- contract.userCount((err, result) => {
- result = JSON.parse(JSON.stringify(result));
- resolve(result);
- });
- break;
- // FETCH DATA OF USER
- case 'user':
- contract.users(value, (err, result) => {
- result = JSON.parse(JSON.stringify(result));
- resolve(result);
- });
- break;
- // SET RANDOM NUMBER
- case 'setRandomNumber':
- contract.setRandomNumber(value, (error, result) => {
- // STUFF
- });
- break;
- // RANDOM NUMBER EVENT LISTENER
- case 'watchRandomNumber':
- contract.generateNumber((error, result) => {
- // STUFF
- });
- break;
- // FALLBACK
- default:
- log('Error in Switch.')
- break;
- }
- });
- }
- // USER ADDED EVENT
- contract.userAdded(function(error, result) {
- var user = result.args.user;
- log('User "' + user + '" has been added!');
- // GENERATE OUTPUT
- var output = user + '<br>';
- // APPEND SELECTORS OLD CONTENT
- $('body').append(output);
- });
- // RANDOM NUMBER FUNCTIONALITY
- promisify('watchRandomNumber').then(() => {
- log('Random number needed!');
- var randomNumber = Math.floor((Math.random() * 10) + 1);
- promisify('setRandomNumber', randomNumber).then(() => {
- log('Random number set to: ' + randomNumber);
- });
- });
- // SHORTHAND
- function log(stuff) {
- console.log(stuff);
- }
- pragma solidity ^0.4.2;
- contract Main {
- // VARIABLES
- mapping(uint256 => User) public users;
- uint256 public userCount;
- uint256 public maxPlayers;
- uint256 public randomNumber;
- // EVENTS
- event generateNumber();
- event userAdded(string user);
- event fullGame();
- struct User {
- string username;
- address owner;
- uint256 joined;
- }
- function add(string _username) public {
- if (userCount < maxPlayers) {
- users[userCount].username = _username;
- users[userCount].owner = msg.sender;
- users[userCount].joined = now;
- userCount++;
- userAdded(_username);
- if (userCount == maxPlayers) {
- generateNumber();
- finish();
- }
- } else {
- fullGame();
- }
- }
- function setRandomNumber(uint256 _number) public {
- randomNumber = _number;
- }
- function finish() public view returns(uint256) {
- return randomNumber;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement