@polkadot/api-provider
Version:
Transport providers for the API
55 lines (46 loc) • 1.62 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = state;
require("core-js/modules/web.dom.iterable");
var _eventemitter = _interopRequireDefault(require("eventemitter3"));
var _index = _interopRequireDefault(require("@polkadot/jsonrpc/index"));
var _toHex = _interopRequireDefault(require("@polkadot/util/u8a/toHex"));
var _logger = _interopRequireDefault(require("@polkadot/util/logger"));
// Copyright 2017-2018 @polkadot/api-provider authors & contributors
// This software may be modified and distributed under the terms
// of the ISC license. See the LICENSE file for details.
const l = (0, _logger.default)('api-mock');
const SUBSCRIPTIONS = Array.prototype.concat.apply([], Object.values(_index.default).map(area => Object.values(area.methods).filter(method => method.isSubscription).map(({
method,
section
}) => `${section}_${method}`)));
const REQUESTS = {
'state_getStorage': (storage, params) => {
return (0, _toHex.default)(storage[params[0]]);
},
'system_chain': () => 'mockChain',
'system_name': () => 'mockClient',
'system_version': () => '9.8.7'
};
function state() {
const db = {};
const subscriptions = SUBSCRIPTIONS.reduce((subs, name) => {
subs[name] = {
callbacks: {},
lastValue: null
};
return subs;
}, {});
return {
emitter: new _eventemitter.default.EventEmitter(),
l,
requests: Object.assign({}, REQUESTS),
db,
subscriptionId: 0,
subscriptionMap: {},
subscriptions
};
}