UNPKG

1.58 kBJavaScriptView Raw
1'use strict';
2
3var _values = require('babel-runtime/core-js/object/values');
4
5var _values2 = _interopRequireDefault(_values);
6
7function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
9var BN = require('bn.js'); // Copyright 2017-2018 Jaco Greeff
10// This software may be modified and distributed under the terms
11// of the ISC license. See the LICENSE file for details.
12
13
14var headerEncode = require('@polkadot/primitives-json/header/encode');
15var bnToU8a = require('@polkadot/util/bn/toU8a');
16var randomAsU8a = require('@polkadot/util-crypto/random/asU8a');
17
18function makeBlockHeader(prevNumber) {
19 var blockNumber = prevNumber.addn(1);
20
21 return {
22 digest: {
23 logs: []
24 },
25 extrinsicsRoot: randomAsU8a(),
26 number: blockNumber,
27 parentHash: prevNumber.eqn(-1) ? new Uint8Array(32) : bnToU8a(prevNumber, 256),
28 stateRoot: bnToU8a(blockNumber, 256)
29 };
30}
31
32module.exports = function mocks(_ref) {
33 var subscriptions = _ref.subscriptions;
34
35 var newHead = makeBlockHeader(new BN(-1));
36
37 var updateSubs = function updateSubs(method, value) {
38 subscriptions[method].lastValue = value;
39
40 (0, _values2.default)(subscriptions[method].callbacks).forEach(function (cb) {
41 try {
42 // flowlint-next-line unclear-type:off
43 cb(null, value);
44 } catch (error) {
45 console.error('Error on \'' + method + '\' subscription', error);
46 }
47 });
48 };
49
50 setInterval(function () {
51 newHead = makeBlockHeader(newHead.number);
52
53 updateSubs('subscribe_newHead', headerEncode(newHead));
54 }, 5000);
55};
\No newline at end of file