"use strict";
// Copyright 2017-2020 @polkadot/api-derive authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
Object.defineProperty(exports, "__esModule", { value: true });
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const util_1 = require("../util");
/**
 * @description Retrieve the staking overview, including elected and points earned
 */
function overview(api) {
    return util_1.memo(() => rxjs_1.combineLatest([
        api.derive.session.indexes(),
        api.derive.staking.validators()
    ]).pipe(operators_1.switchMap(([{ currentEra, currentIndex, validatorCount }, { currentElected, validators }]) => rxjs_1.combineLatest([
        rxjs_1.of({ currentElected, currentEra, currentIndex, validators, validatorCount }),
        api.query.staking.currentEraPointsEarned()
    ])), operators_1.map(([{ currentElected, currentEra, currentIndex, validators, validatorCount }, eraPoints]) => ({
        currentElected, currentEra, currentIndex, eraPoints, validators, validatorCount
    }))));
}
exports.overview = overview;
