@parcl-finance/product-sdk
Version:
TypeScript SDK for interacting with Parcl's product APIs
104 lines • 8.23 kB
TypeScript
import { Address } from "@project-serum/anchor";
import { VersionedTransaction } from "@solana/web3.js";
import { AddLiquidityQuote, AddLiquidityQuoteParams, AddLiquidityTransactionPayload, AirdropInfo, CloseLpPositionTransactionPayload, CloseMarginAccountTransactionPayload, ClosePositionQuote, ClosePositionQuoteParams, ClosePositionQuotePayload, ClosePositionTransactionPayload, CreateMarginAccountTransactionPayload, DepositMarginTransactionPayload, EpochPeriod, FormattedStakingBalanceResponse, GetLiquidationHistoryParams, GetLiquidationHistoryParamsV2, GetLpHistoryParams, GetLpHistoryParamsV2, GetMarginTransferHistoryParams, GetMarginTransferHistoryParamsV2, GetTradeHistoryParams, GetTradeHistoryParamsV2, LiquidationEventV2, LiquidationHistory, LiquidationSnapshot, LpAccountInfo, LpAccountParams, LpPositionInfo, LpPositionParams, LpPositionsInfo, LpPositionsParams, MarginAccountId, MarginAccountInfo, MarginAccountParams, MarginAccountsInfo, MarginAccountsParams, MarginTransferEvent, ModifyLiquidityEvent, ModifyPositionQuote, ModifyPositionQuoteParams, ModifyPositionQuotePayload, ModifyPositionTransactionPayload, PositionModificationLimitsQuote, PositionModificationLimitsQuoteParams, PositionModificationLimitsQuotePayload, RemoveLiquidityQuote, RemoveLiquidityQuoteParams, RemoveLiquidityTransactionPayload, SettlementRequestInfo, StakingAddresses, TradeEvent, TradeEventV2, TransactionHistory, TransactionHistoryV2, TransferEvent, UpgradeLpAccountTransactionPayload, UserCommunicationMethods, UserCommunicationMethodsUpdate, UserConfig, UserMarginAccountIds, UserMarginAccountIdsUpdate, UserSettings, UserSettingsUpdate, WithdrawMarginQuote, WithdrawMarginQuoteParams, WithdrawMarginTransactionPayload } from "./types";
export declare class User {
private _baseUrl;
user?: Address;
private headers;
private client;
private expressClient;
constructor({ baseUrl, user, accessToken, env }: UserConfig);
setUser(user: Address): void;
get baseUrl(): string;
isHighRisk(refresh?: boolean): Promise<boolean>;
getSolBalance(refresh?: boolean): Promise<string>;
getCollateralBalance(refresh?: boolean): Promise<string>;
getPrclBalance(refresh?: boolean): Promise<string>;
getMarginAccount(params: MarginAccountParams): Promise<MarginAccountInfo>;
getMarginAccounts(params?: MarginAccountsParams): Promise<MarginAccountsInfo>;
getLpAccount(params?: LpAccountParams): Promise<LpAccountInfo>;
getLpPosition(params: LpPositionParams): Promise<LpPositionInfo>;
getLpPositions(params?: LpPositionsParams): Promise<LpPositionsInfo>;
getSettlementRequests(): Promise<SettlementRequestInfo[]>;
getUpgradeLpAccount(payload?: UpgradeLpAccountTransactionPayload): Promise<VersionedTransaction>;
getAddLiquidityTransaction(payload: AddLiquidityTransactionPayload): Promise<VersionedTransaction>;
getRemoveLiquidityTransaction(payload: RemoveLiquidityTransactionPayload): Promise<VersionedTransaction>;
getCloseLpPositionTransaction(payload: CloseLpPositionTransactionPayload): Promise<VersionedTransaction>;
getCreateMarginAccountTransaction(payload?: CreateMarginAccountTransactionPayload): Promise<{
marginAccountId: MarginAccountId;
tx: VersionedTransaction;
}>;
getDepositMarginTransaction(payload: DepositMarginTransactionPayload): Promise<VersionedTransaction>;
getWithdrawMarginTransaction(payload: WithdrawMarginTransactionPayload): Promise<VersionedTransaction>;
getModifyPositionTransaction(payload: ModifyPositionTransactionPayload): Promise<VersionedTransaction>;
getClosePositionTransaction(payload: ClosePositionTransactionPayload): Promise<VersionedTransaction>;
getCloseMarginAccountTransaction(payload: CloseMarginAccountTransactionPayload): Promise<VersionedTransaction>;
getProcessSettlementRequestsTransactions(): Promise<VersionedTransaction[]>;
getAddLiquidityQuote(params: AddLiquidityQuoteParams): Promise<AddLiquidityQuote>;
getRemoveLiquidityQuote(params: RemoveLiquidityQuoteParams): Promise<RemoveLiquidityQuote>;
getWithdrawMarginQuote(params: WithdrawMarginQuoteParams): Promise<WithdrawMarginQuote>;
getModifyPositionQuote(payload: ModifyPositionQuotePayload, params?: ModifyPositionQuoteParams): Promise<ModifyPositionQuote>;
getClosePositionQuote(payload: ClosePositionQuotePayload, params?: ClosePositionQuoteParams): Promise<ClosePositionQuote>;
getPositionModificationLimitsQuote(payload: PositionModificationLimitsQuotePayload, params?: PositionModificationLimitsQuoteParams): Promise<PositionModificationLimitsQuote>;
updateProfileSettings(settingsUpdate: UserSettingsUpdate, accessToken?: string): Promise<UserSettings>;
getProfileSettings(refresh?: boolean, accessToken?: string): Promise<UserSettings>;
getProfileCommunicationMethods(refresh?: boolean, accessToken?: string): Promise<UserCommunicationMethods>;
updateProfileCommunicationMethods(communicationMethodsUpdate: UserCommunicationMethodsUpdate, accessToken?: string): Promise<UserCommunicationMethods>;
getMarginAccountIds(refresh?: boolean, accessToken?: string): Promise<UserMarginAccountIds>;
updateMarginAccountIds(marginAccountIdsUpdate: UserMarginAccountIdsUpdate, accessToken?: string): Promise<UserMarginAccountIds>;
removeMarginAccountId(marginAccountId: MarginAccountId, accessToken?: string): Promise<UserMarginAccountIds>;
getLiquidationHistory(params?: GetLiquidationHistoryParams, accessToken?: string): Promise<LiquidationHistory>;
getTradeHistory(params: GetTradeHistoryParams, accessToken?: string): Promise<TransactionHistory<TradeEvent>>;
getLpHistory(params: GetLpHistoryParams, accessToken?: string): Promise<TransactionHistory<ModifyLiquidityEvent>>;
getMarginTransferHistory(params: GetMarginTransferHistoryParams, accessToken?: string): Promise<TransactionHistory<MarginTransferEvent>>;
isOnboarded(accessToken?: string): Promise<boolean>;
onboard(accessToken?: string): Promise<boolean>;
getAirdropEventSummary(accessToken?: string): Promise<AirdropInfo>;
getStakingAddresses(): Promise<StakingAddresses>;
getStakingBalance(): Promise<FormattedStakingBalanceResponse>;
getStakingCurrentEpochPeriod(): Promise<EpochPeriod>;
getStakingLockedEpochPeriod(unlockingEpoch: number): Promise<EpochPeriod>;
getStakingLockedEpochPeriodEstimate({ addOneEpoch, }: {
addOneEpoch: boolean;
}): Promise<EpochPeriod>;
getCreateStakingAccountTransactions(): Promise<VersionedTransaction[]>;
getStakeTransactions(stakingAmount: number, createAccount?: boolean): Promise<VersionedTransaction[]>;
getUnStakeTransactions(stakingAmount: number): Promise<VersionedTransaction[]>;
getStakingWithdrawTransactions(stakingAmount: number): Promise<VersionedTransaction[]>;
getHistoricalPortfolio({ userAddress, }: {
userAddress: Address;
}): Promise<HistoricalPortfolioResponse>;
getLiquidationHistoryV2(params?: GetLiquidationHistoryParamsV2): Promise<TransactionHistoryV2<LiquidationEventV2>>;
getTradeHistoryV2(params: GetTradeHistoryParamsV2): Promise<TransactionHistoryV2<TradeEventV2>>;
getLpHistoryV2(params: GetLpHistoryParamsV2): Promise<TransactionHistoryV2<ModifyLiquidityEvent>>;
getMarginTransferHistoryV2(params: GetMarginTransferHistoryParamsV2): Promise<TransactionHistoryV2<MarginTransferEvent>>;
getHoaImage({ user }: {
user: string;
}): Promise<string>;
}
export type HistoricalPortfolioResponse = {
rollup: PortfolioPnlSnapshot[];
portfolioPnlByDate: Record<string, PortfolioPnlSnapshot[]>;
liquidationsByDateByAccount: Record<string, LiquidationSnapshot[]>;
marginTransfersByDateByAccount: Record<string, TransferEvent[]>;
};
export type NetInvestmentEpoch = {
date: string;
totalPnl: number;
netInvested: number;
portfolioValue: number;
};
export type LiquidationEvent = {
date: string;
owner: string;
totalLiquidatedMargin: number;
marginAccountId: string;
signature: string;
};
export type PortfolioPnlSnapshot = {
date: string;
portfolioValue: number;
netInvested: number;
totalPnl: number;
};
//# sourceMappingURL=user.d.ts.map