PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/@polkadot/api-derive/parachains
Просмотр файла: info.js
import { map, of } from 'rxjs';
import { objectSpread } from '@polkadot/util';
import { memo } from '../util/index.js';
import { didUpdateToBool } from './util.js';
function parseActive(id, active) {
const found = active.find(([paraId]) => paraId === id);
if (found && found[1].isSome) {
const [collatorId, retriable] = found[1].unwrap();
return objectSpread({ collatorId }, retriable.isWithRetries
? {
isRetriable: true,
retries: retriable.asWithRetries.toNumber()
}
: {
isRetriable: false,
retries: 0
});
}
return null;
}
function parseCollators(id, collatorQueue) {
return collatorQueue.map((queue) => {
const found = queue.find(([paraId]) => paraId === id);
return found ? found[1] : null;
});
}
function parse(id, [active, retryQueue, selectedThreads, didUpdate, info, pendingSwap, heads, relayDispatchQueue]) {
if (info.isNone) {
return null;
}
return {
active: parseActive(id, active),
didUpdate: didUpdateToBool(didUpdate, id),
heads,
id,
info: objectSpread({ id }, info.unwrap()),
pendingSwapId: pendingSwap.unwrapOr(null),
relayDispatchQueue,
retryCollators: parseCollators(id, retryQueue),
selectedCollators: parseCollators(id, selectedThreads)
};
}
export function info(instanceId, api) {
return memo(instanceId, (id) => api.query['registrar'] && api.query['parachains']
? api.queryMulti([
api.query['registrar']['active'],
api.query['registrar']['retryQueue'],
api.query['registrar']['selectedThreads'],
api.query['parachains']['didUpdate'],
[api.query['registrar']['paras'], id],
[api.query['registrar']['pendingSwap'], id],
[api.query['parachains']['heads'], id],
[api.query['parachains']['relayDispatchQueue'], id]
])
.pipe(map((result) => parse(api.registry.createType('ParaId', id), result)))
: of(null));
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!