import * as anchor from "@project-serum/anchor"; import { Program, web3 } from "@project-serum/anchor"; import { MarketProxy } from "@project-serum/serum"; import { EuroPrimitive } from "./euro_primitive"; /** * Derives the pool or root authority for the program. * @param program * @returns */ export declare const derivePoolAuthority: (program: Program) => Promise<[anchor.web3.PublicKey, number]>; /** * Derive the EuroMeta account address from it's unique params. * * @param program * @param underlyingMint * @param stableMint * @param underlyingAmountPerContract * @param strikePrice */ export declare const deriveEuroMeta: (program: Program, underlyingMint: anchor.web3.PublicKey, stableMint: anchor.web3.PublicKey, expiration: anchor.BN, underlyingAmountPerContract: anchor.BN, strikePrice: anchor.BN, priceDecimals: number) => Promise<[anchor.web3.PublicKey, number]>; /** * Derive the ExpirationData for an underlying mint and oracles * * @param program * @param underlyingMint * @param expiration * @param oracleAddress * @param priceDecimals * @returns */ export declare const deriveExpirationData: (program: Program, underlyingMint: anchor.web3.PublicKey, expiration: anchor.BN, oracleAddress: anchor.web3.PublicKey, priceDecimals: number) => Promise<[anchor.web3.PublicKey, number]>; /** * * @param program * @returns */ export declare const deriveUnderlyingPoolKey: (program: Program, underlyingMint: anchor.web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; /** * * @param program * @param stableMint * @returns */ export declare const deriveStablePoolKey: (program: Program, stableMint: anchor.web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const deriveCallOptionMint: (program: Program, euroMetaKey: anchor.web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const deriveCallWriterMint: (program: Program, euroMetaKey: anchor.web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const derivePutOptionMint: (program: Program, euroMetaKey: anchor.web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const derivePutWriterMint: (program: Program, euroMetaKey: anchor.web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; /** * * Derive the Serum market address for a given option token and the price * currency that asset will trade in (usually the USDC mint). * * @param program * @param optionMintKey * @param priceCurrencyKey * @returns */ export declare const deriveSerumMarketAddress: (program: Program, optionMintKey: web3.PublicKey, priceCurrencyKey: web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const deriveMarketAuthority: (program: Program, dexProgramId: web3.PublicKey, serumMarketKey: web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const deriveRequestQueue: (program: Program, optionMintKey: web3.PublicKey, priceCurrencyKey: web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const deriveCoinVault: (program: Program, optionMintKey: web3.PublicKey, priceCurrencyKey: web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const derivePCVault: (program: Program, optionMarketKey: web3.PublicKey, priceCurrencyKey: web3.PublicKey) => Promise<[anchor.web3.PublicKey, number]>; export declare const deriveOpenOrdersAddress: (program: Program, dexProgramId: web3.PublicKey, marketProxy: MarketProxy) => Promise<[anchor.web3.PublicKey, number]>; /** * Given an OptionMarket address and DEX program, generate the Serum market key, * market authority, and authority bump seed. * * @param {Program} program - PsyOptions American V1 Anchor program * @param {PublicKey} optionMintKey - The key for the option token mint * @param {PublicKey} dexProgramId - Serum DEX public key * @returns */ export declare const getMarketAndAuthorityInfo: (program: Program, optionMintKey: web3.PublicKey, dexProgramId: web3.PublicKey, priceCurrencyKey: web3.PublicKey) => Promise<{ serumMarketKey: web3.PublicKey; marketAuthority: web3.PublicKey; marketAuthorityBump: number; }>; //# sourceMappingURL=pdas.d.ts.map