///
import { _ChainInfo } from '@soul-wallet/chain-list/types';
import { NominationInfo, NominatorMetadata, StakingStatus, StakingType, UnstakingInfo } from '../../../../background/KoniTypes';
import { _SubstrateInflationParams } from '../../../../services/chain-service/constants';
import { ApiPromise } from '@polkadot/api';
import { BN } from '@polkadot/util';
export interface PalletNominationPoolsPoolMember {
poolId: number;
points: number;
lasRecordedRewardCounter: number;
unbondingEras: Record;
}
export interface PalletDappsStakingDappInfo {
address: string;
name: string;
gitHubUrl: string;
tags: string[];
url: string;
imagesUrl: string[];
}
export interface PalletDappsStakingUnlockingChunk {
amount: number;
unlockEra: number;
}
export interface PalletDappsStakingAccountLedger {
locked: number;
unbondingInfo: {
unlockingChunks: PalletDappsStakingUnlockingChunk[];
};
}
export interface BlockHeader {
parentHash: string;
number: number;
stateRoot: string;
extrinsicsRoot: string;
}
export interface ParachainStakingStakeOption {
owner: string;
amount: number;
}
export interface ParachainStakingCandidateMetadata {
bond: string;
delegationCount: number;
totalCounted: string;
lowestTopDelegationAmount: string;
status: any | 'Active';
}
export declare enum PalletParachainStakingRequestType {
REVOKE = "revoke",
DECREASE = "decrease",
BOND_LESS = "bondLess"
}
export interface PalletParachainStakingDelegationRequestsScheduledRequest {
delegator: string;
whenExecutable: number;
action: Record;
}
export interface PalletParachainStakingDelegationInfo {
owner: string;
amount: number;
}
export interface PalletParachainStakingDelegator {
id: string;
delegations: PalletParachainStakingDelegationInfo[];
total: number;
lessTotal: number;
status: number;
}
export interface PalletStakingExposureItem {
who: string;
value: number;
}
export interface PalletStakingExposure {
total: number;
own: number;
others: PalletStakingExposureItem[];
}
export interface PalletIdentityRegistration {
judgements: any[];
deposit: number;
info: {
display: {
Raw: string;
};
web: {
Raw: string;
};
twitter: {
Raw: string;
};
riot: {
Raw: string;
};
};
}
export interface ValidatorExtraInfo {
commission: string;
blocked: false;
identity?: string;
isVerified: boolean;
}
export interface Unlocking {
remainingEras: BN;
value: BN;
}
export interface TernoaStakingRewardsStakingRewardsData {
sessionEraPayout: string;
sessionExtraRewardPayout: string;
}
export declare function parsePoolStashAddress(api: ApiPromise, index: number, poolId: number, poolsPalletId: string): string;
export declare function transformPoolName(input: string): string;
export declare function parseIdentity(identityInfo: PalletIdentityRegistration | null): string | undefined;
export declare function getInflationParams(networkKey: string): _SubstrateInflationParams;
export declare function calcInflationUniformEraPayout(totalIssuance: BN, yearlyInflationInTokens: number): number;
export declare function calcInflationRewardCurve(minInflation: number, stakedFraction: number, idealStake: number, idealInterest: number, falloff: number): number;
export declare function calculateInflation(totalEraStake: BN, totalIssuance: BN, numAuctions: number, networkKey: string): number;
export declare function calculateChainStakedReturn(inflation: number, totalEraStake: BN, totalIssuance: BN, networkKey: string): number;
export declare function calculateAlephZeroValidatorReturn(chainStakedReturn: number, commission: number): number;
export declare function calculateTernoaValidatorReturn(rewardPerValidator: number, validatorStake: number, commission: number): number;
export declare function calculateValidatorStakedReturn(chainStakedReturn: number, totalValidatorStake: BN, avgStake: BN, commission: number): number;
export declare function getCommission(commissionString: string): number;
export interface InflationConfig {
expect: {
min: string;
ideal: string;
max: string;
};
annual: {
min: string;
ideal: string;
max: string;
};
round: {
min: string;
ideal: string;
max: string;
};
}
export declare function getParaCurrentInflation(totalStaked: number, inflationConfig: InflationConfig): number;
export interface TuringOptimalCompoundFormat {
period: string;
apy: string;
}
export declare function isShowNominationByValidator(chain: string): 'showByValue' | 'showByValidator' | 'mixed';
export declare function getBondedValidators(nominations: NominationInfo[]): {
nominationCount: number;
bondedValidators: string[];
};
export declare function isUnstakeAll(selectedValidator: string, nominations: NominationInfo[], unstakeAmount: string): boolean;
export declare enum StakingAction {
STAKE = "STAKE",
UNSTAKE = "UNSTAKE",
WITHDRAW = "WITHDRAW",
CLAIM_REWARD = "CLAIM_REWARD",
CANCEL_UNSTAKE = "CANCEL_UNSTAKE"
}
export declare function getStakingAvailableActionsByChain(chain: string, type: StakingType): StakingAction[];
export declare function getStakingAvailableActionsByNominator(nominatorMetadata: NominatorMetadata, unclaimedReward?: string): StakingAction[];
export declare function isActionFromValidator(stakingType: StakingType, chain: string): boolean;
export declare function getWithdrawalInfo(nominatorMetadata: NominatorMetadata): UnstakingInfo | undefined;
export declare function getStakingStatusByNominations(bnTotalActiveStake: BN, nominationList: NominationInfo[]): StakingStatus;
export declare function getValidatorLabel(chain: string): "dApp" | "Validator" | "Collator";
export declare const getMinStakeErrorMessage: (chainInfo: _ChainInfo, bnMinStake: BN) => string;
export declare const getMaxValidatorErrorMessage: (chainInfo: _ChainInfo, max: number) => string;
export declare const getExistUnstakeErrorMessage: (chain: string, isStakeMore?: boolean) => string;