///
///
import { PublicKey } from '@solana/web3.js';
export declare enum PriceStatus {
Unknown = 0,
Trading = 1,
Halted = 2,
Auction = 3,
Ignored = 4
}
export declare enum CorpAction {
NoCorpAct = 0
}
export declare enum PriceType {
Unknown = 0,
Price = 1
}
export declare enum DeriveType {
Unknown = 0,
Volatility = 1
}
export declare enum AccountType {
Unknown = 0,
Mapping = 1,
Product = 2,
Price = 3,
Test = 4,
Permission = 5
}
export type Base = {
magic: number;
version: number;
type: AccountType;
size: number;
};
export type MappingData = Base & {
nextMappingAccount: PublicKey | null;
productAccountKeys: PublicKey[];
};
export type Product = {
[index: string]: string;
};
export type ProductData = Base & {
priceAccountKey: PublicKey | null;
product: Product;
};
export type Price = {
priceComponent: bigint;
price: number;
confidenceComponent: bigint;
confidence: number;
status: PriceStatus;
corporateAction: CorpAction;
publishSlot: number;
};
export type PriceComponent = {
publisher: PublicKey;
aggregate: Price;
latest: Price;
};
export type Ema = {
valueComponent: bigint;
value: number;
numerator: bigint;
denominator: bigint;
};
export type PriceData = Base & {
priceType: PriceType;
exponent: number;
numComponentPrices: number;
numQuoters: number;
lastSlot: bigint;
validSlot: bigint;
emaPrice: Ema;
emaConfidence: Ema;
timestamp: bigint;
minPublishers: number;
drv2: number;
drv3: number;
drv4: number;
productAccountKey: PublicKey;
nextPriceAccountKey: PublicKey | null;
previousSlot: bigint;
previousPriceComponent: bigint;
previousPrice: number;
previousConfidenceComponent: bigint;
previousConfidence: number;
previousTimestamp: bigint;
priceComponents: PriceComponent[];
aggregate: Price;
price: number | undefined;
confidence: number | undefined;
status: PriceStatus;
};
export type PermissionData = Base & {
masterAuthority: PublicKey;
dataCurationAuthority: PublicKey;
securityAuthority: PublicKey;
};