UNPKG

1.61 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _assign = _interopRequireDefault(require("@babel/runtime/core-js/object/assign"));
6
7var _keys = _interopRequireDefault(require("@babel/runtime/core-js/object/keys"));
8
9// 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.
12const EventEmitter = require('eventemitter3');
13
14const interfaces = require('@polkadot/jsonrpc');
15
16const u8aToHex = require('@polkadot/util/u8a/toHex');
17
18const l = require('@polkadot/util/logger')('api-mock');
19
20const SUBSCRIPTIONS = Array.prototype.concat.apply([], (0, _keys.default)(interfaces).map(section => {
21 return (0, _keys.default)(interfaces[section].public).filter(method => interfaces[section].public[method].isSubscription).map(method => `subscribe_${method}`);
22}));
23const REQUESTS = {
24 'state_getStorage': (storage, params) => {
25 return u8aToHex( // flowlint-next-line unclear-type:off
26 storage[params[0]]);
27 },
28 'system_chain': () => 'mockChain',
29 'system_name': () => 'mockClient',
30 'system_version': () => '9.8.7'
31};
32
33module.exports = function state() {
34 const storage = {};
35 const subscriptions = SUBSCRIPTIONS.reduce((subscriptions, name) => {
36 subscriptions[name] = {
37 callbacks: {},
38 lastValue: null
39 };
40 return subscriptions;
41 }, {});
42 return {
43 emitter: new EventEmitter(),
44 l,
45 requests: (0, _assign.default)({}, REQUESTS),
46 storage,
47 subscriptionId: 0,
48 subscriptionMap: {},
49 subscriptions
50 };
51};
\No newline at end of file