aboutsummaryrefslogtreecommitdiffstats
path: root/runTimer.js
blob: f16098db9f42db64ddeea9201395bf2d8518f9a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
const Web3 = require('@cobinhood/web3');
const { mnemonicToSeed } = require('bip39');
const { fromMasterSeed } = require('ethereumjs-wallet/hdkey');
const { mnemonic } = require('./secret');
const lottery = require('./build/contracts/Lottery.json');

const address = '0xd6141c8099670fe22a67eea3224d559c5d05aa55';

const web3 = new Web3('https://testnet-rpc.dexon.org');
// const times = [
//   1555570800, // 4/18 15:00
//   1555581600, // 4/18 18:00
//   1555592400, // 4/18 21:00
//   1555603200, // 4/19 0:00
//   1555614000, // 4/19 3:00
//   1555624800, // 4/19 6:00
//   1555635600, // 4/19 9:00
//   1555646400, // 4/19 12:00
//   1555657200, // 4/19 15:00
//   1555668000, // 4/19 18:00
//   1555678800, // 4/19 21:00
//   1555689600, // 4/20 0:00
//   1555700400, // 4/20 3:00
//   1555711200, // 4/20 6:00
//   1555722000, // 4/20 9:00
//   1555732800, // 4/20 12:00
//   1555743600, // 4/20 15:00
//   1555754400, // 4/20 18:00
//   1555765200, // 4/20 21:00
//   1555776000, // 4/21 0:00
//   1555786800, // 4/21 3:00
//   1555797600, // 4/21 6:00
//   1555808400, // 4/21 9:00
//   1555819200, // 4/21 12:00
//   1555830000, // 4/21 15:00
//   1555840800, // 4/21 18:00
//   1555851600, // 4/21 21:00
//   1555862400, // 4/22 0:00
//   1555873200, // 4/22 3:00
//   1555884000, // 4/22 6:00
//   1555894800, // 4/22 9:00
//   1555905600, // 4/22 12:00
//   1555916400, // 4/22 15:00
//   1555927200, // 4/22 18:00
//   1555938000, // 4/22 21:00
//   1555948800, // 4/23 0:00
//   1555959600, // 4/23 3:00
//   1555970400, // 4/23 6:00
//   1555981200, // 4/23 9:00
//   1555992000, // 4/23 12:00
//   1556002800, // 4/23 15:00
//   1556013600, // 4/23 18:00
//   1556024400, // 4/23 21:00
//   1556035200, // 4/24 0:00
//   1556046000, // 4/24 3:00
//   1556056800, // 4/24 6:00
//   1556067600, // 4/24 9:00
//   1556078400, // 4/24 12:00
//   1556089200, // 4/24 15:00
//   1556100000, // 4/24 18:00
//   1556110800, // 4/24 21:00
//   1556121600, // 4/25 0:00
//   1556132400, // 4/25 3:00
//   1556143200, // 4/25 6:00
//   1556154000, // 4/25 9:00
//   1556164800, // 4/25 12:00
// ];

const times = [
  1554636900,
  1554636910,
  1554636920,
];

let account;
let contract;

const runTime = (time) => {
  if ((time + 5) > (Date.now() / 1000)) {
    setTimeout(() => runTime(time), 5000);
    return;
  }

  contract.methods.reveal(time).send({
    from: account.address,
    gas: 1000000,
  });

  console.log('Revealed for: ', time);
};

mnemonicToSeed(mnemonic)
  .then((seed) => {
    const hdWallet = fromMasterSeed(seed);
    const key = hdWallet.derivePath('m/44\'/237\'/0\'/0/0');
    const privateKey = `0x${key._hdkey._privateKey.toString('hex')}`;

    web3.eth.accounts.wallet.add(privateKey);
    account = web3.eth.accounts.privateKeyToAccount(privateKey);
    contract = new web3.eth.Contract(lottery.abi, address);

    times.forEach(runTime);
  });