PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/@polkadot/api-derive/staking

Просмотр файла: stakerExposure.js

import { map, switchMap } from 'rxjs';
import { firstMemo, memo } from '../util/index.js';
export function _stakerExposures(instanceId, api) {
    return memo(instanceId, (accountIds, eras, withActive = false) => {
        const stakerIds = accountIds.map((a) => api.registry.createType('AccountId', a).toString());
        return api.derive.staking._erasExposure(eras, withActive).pipe(map((exposures) => stakerIds.map((stakerId) => exposures.map(({ era, nominators: allNominators, validators: allValidators }) => {
            const isValidator = !!allValidators[stakerId];
            const validators = {};
            const nominating = allNominators[stakerId] || [];
            if (isValidator) {
                validators[stakerId] = allValidators[stakerId];
            }
            else if (nominating) {
                nominating.forEach(({ validatorId }) => {
                    validators[validatorId] = allValidators[validatorId];
                });
            }
            return { era, isEmpty: !Object.keys(validators).length, isValidator, nominating, validators };
        }))));
    });
}
export function stakerExposures(instanceId, api) {
    return memo(instanceId, (accountIds, withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking._stakerExposures(accountIds, eras, withActive))));
}
export const stakerExposure = /*#__PURE__*/ firstMemo((api, accountId, withActive) => api.derive.staking.stakerExposures([accountId], withActive));

Выполнить команду


Для локальной разработки. Не используйте в интернете!