///
///
import { PublicKey } from '@solana/web3.js';
import { SourceRef } from '@sonarwatch/portfolio-core';
import BigNumber from 'bignumber.js';
export type TokenInfo = {
decimals: number;
mint: string;
};
export type DetailedTokenInfo = TokenInfo & {
address: string;
chainId: number;
name: string;
symbol: string;
logoURI: string;
};
export type Quarry = {
index: number;
isReplica: boolean;
mergePool: string;
primaryToken: TokenInfo;
primaryTokenInfo: DetailedTokenInfo;
quarry: string;
replicaMint: string;
slug: string;
stakedToken: TokenInfo;
replicaQuarries: {
quarry: string;
}[];
};
export type RewardersApiRes = {
[rewarder: string]: Omit;
};
export type RewarderInfo = {
address: string;
id: string;
name: string;
};
export type Rewarder = {
rewarder: string;
authority: string;
info?: RewarderInfo;
mintWrapper: string;
quarries: Quarry[];
rewardsToken: TokenInfo;
rewardsTokenInfo: DetailedTokenInfo;
slug: string;
};
export type QuarryAndMint = {
key: PublicKey;
rewardsMint: PublicKey;
};
export type QuarryPDA = {
primaryQuarry: PublicKey;
mm: PublicKey;
rewarder: PublicKey;
replicas: {
rewardsMint: PublicKey;
replicaMMMiner: PublicKey;
rewarder: PublicKey;
replicaQuarry: PublicKey;
}[];
ownerMiner: PublicKey;
mmMiner: PublicKey;
rewardsToken: PublicKey;
};
export type Redeemer = {
iouMint: string;
redemptionMint: string;
};
export type Position = {
ref: string;
sourceRefs: SourceRef[];
primaryRewarder: {
slug: string;
name?: string;
};
rewardsTokenInfo: DetailedTokenInfo[];
rewardsBalance: BigNumber[];
stakedTokenInfo: DetailedTokenInfo;
stakedBalance: string;
};