PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@polkadot/api-derive/cjs/crowdloan
Просмотр файла: ownContributions.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ownContributions = ownContributions;
const rxjs_1 = require("rxjs");
const util_1 = require("@polkadot/util");
const index_js_1 = require("../util/index.js");
const util_js_1 = require("./util.js");
function _getValues(api, childKey, keys) {
// We actually would love to use multi-keys https://github.com/paritytech/substrate/issues/9203
return (0, rxjs_1.combineLatest)(keys.map((k) => api.rpc.childstate.getStorage(childKey, k))).pipe((0, rxjs_1.map)((values) => values
.map((v) => api.registry.createType('Option<StorageData>', v))
.map((o) => o.isSome
? api.registry.createType('Balance', o.unwrap())
: api.registry.createType('Balance'))
.reduce((all, b, index) => (0, util_1.objectSpread)(all, { [keys[index]]: b }), {})));
}
function _watchOwnChanges(api, paraId, childkey, keys) {
return api.query.system.events().pipe((0, rxjs_1.switchMap)((events) => {
const changes = (0, util_js_1.extractContributed)(paraId, events);
const filtered = keys.filter((k) => changes.added.includes(k) ||
changes.removed.includes(k));
return filtered.length
? _getValues(api, childkey, filtered)
: rxjs_1.EMPTY;
}), (0, rxjs_1.startWith)({}));
}
function _contributions(api, paraId, childKey, keys) {
return (0, rxjs_1.combineLatest)([
_getValues(api, childKey, keys),
_watchOwnChanges(api, paraId, childKey, keys)
]).pipe((0, rxjs_1.map)(([all, latest]) => (0, util_1.objectSpread)({}, all, latest)));
}
function ownContributions(instanceId, api) {
return (0, index_js_1.memo)(instanceId, (paraId, keys) => api.derive.crowdloan.childKey(paraId).pipe((0, rxjs_1.switchMap)((childKey) => childKey && keys.length
? _contributions(api, paraId, childKey, keys)
: (0, rxjs_1.of)({}))));
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!