UNPKG

@triadxyz/triad-protocol

Version:

<div align="center"> <h1>Triad Protocol</h1> </div>

292 lines (291 loc) 6.09 kB
import { Commitment, PublicKey } from '@solana/web3.js'; export type RpcOptions = { skipPreflight?: boolean; microLamports?: number; computeBudget?: number; commitment?: Commitment; }; export type Pool = { address: string; id: number; question: string; authority: string; isFast: boolean; isFastMarketActive: boolean; }; export type Market = { address: string; bump: number; authority: string; marketId: string; hypePrice: string; flopPrice: string; hypeLiquidity: string; flopLiquidity: string; hypeShares: string; flopShares: string; volume: string; mint: string; updateTs: string; resolvedTs: string; nextOrderId: string; feeBps: number; isAllowedToPayout: boolean; payoutFeeAvailable: string; payoutFeeClaimed: string; marketFeeAvailable: string; marketFeeClaimed: string; marketStart: string; marketEnd: string; question: string; winningDirection: WinningDirection; marketLiquidityAtStart: string; payoutFee: number; customer: string; poolId: number; feeRecipient: string; }; export type UserTrade = { user: string; totalDeposits: string; totalWithdraws: string; orders: Order[]; nonce: string; poseidon: string; isSubUser: boolean; }; export type Order = { ts: string; orderId: string; marketId: string; orderStatus: OrderStatus; price: string; totalShares: string; filledShares: string; orderType: OrderType; orderDirection: OrderDirection; orderSide: OrderSide; userNonce: string; authority: string; createdAt: string; isTrdPayout: boolean; }; export type BookOrder = { id: string; price: string; totalShares: string; filledShares: string; authority: string; orderDirection: OrderDirection; orderSide: OrderSide; userNonce: string; linkedBookOrderId: string; }; export declare enum WinningDirection { HYPE = "Hype", DRAW = "Draw", FLOP = "Flop", NONE = "None" } export declare enum OrderDirection { HYPE = "hype", FLOP = "flop" } export declare enum OrderStatus { INIT = "init", OPEN = "open", CLOSED = "closed", CLAIMED = "claimed", LIQUIDATED = "liquidated", WAITING = "waiting" } export declare enum OrderType { LIMIT = "limit", MARKET = "market" } export declare enum OrderSide { BID = "bid", ASK = "ask" } export type OrderDirectionEncoded = { hype: {}; } | { flop: {}; }; export type OrderTypeEncoded = { limit: {}; } | { market: {}; }; export type OrderSideEncoded = { bid: {}; } | { ask: {}; }; export type OrderStatusEncoded = { init: {}; } | { open: {}; } | { closed: {}; } | { claimed: {}; } | { liquidated: {}; } | { waiting: {}; }; export type WinningDirectionEncoded = { hype: {}; } | { flop: {}; } | { draw: {}; } | { none: {}; }; export type PlaceBidOrderArgs = { marketId: number; orders: { amount: number; price: number; orderDirection: OrderDirectionEncoded; }[]; isTrdPayout: boolean; }; export type PlaceAskOrderArgs = { marketId: number; orders: { amount: number; price: number; bidOrderId: number; userNonce: number; }[]; }; export type InitializeMarketArgs = { marketId: number; startTime: number; endTime: number; question: string; feeBps: number; customer: PublicKey | null; }; export type CreateCustomerArgs = { id: number; name: string; authority: PublicKey; feeRecipient: PublicKey; }; export type OpenOrderArgs = { marketId: number; amount: number; token: string; direction: OrderDirectionEncoded; mint: PublicKey; }; export type CreateMarketArgs = { markets: { marketId: number; startTime: number; endTime: number; question: string; feeBps: number; payoutFee: number; }[]; customer: PublicKey; poolId?: number; }; export type CreatePoolArgs = { poolId: number; question?: string; startTime: number; endTime: number; feeBps: number; payoutFee: number; customer: PublicKey; markets: { marketId: number; question: string; }[]; isFast?: boolean; }; export type CancelBidOrderArgs = { marketId: number; orders: { orderId: number; userNonce: number; orderDirection: OrderDirectionEncoded; }[]; }; export type CancelAskOrderArgs = { marketId: number; orders: { orderId: number; userNonce: number; orderDirection: OrderDirectionEncoded; }[]; }; export type MarketBidOrderArgs = { marketId: number; amount: number; orderDirection: OrderDirectionEncoded; feeBps: number; isTrdPayout: boolean; }; export type MarketAskOrderArgs = { marketId: number; orders: { shares: number; bidOrderId: number; userNonce: number; }[]; orderDirection: OrderDirectionEncoded; isTrdPayout: boolean; feeBps: number; }; export type CollectMarketFeeArgs = { markets: { marketAddress: PublicKey; customerId: number; customerFeeRecipient: PublicKey; }[]; }; export type Customer = { id: number; authority: string; name: string; feeRecipient: string; feeBps: number; isVerified: boolean; address: string; }; export type StakeVault = { name: string; collection: string; authority: string; slots: number; amount: number; isLocked: boolean; tokenMint: string; amountPaid: number; nftStaked: number; tokenDecimals: number; tokenStaked: number; week: number; initTs: number; endTs: number; }; export type Stake = { authority: string; initTs: number; checkedTs: number; claimed: number; available: number; amount: number; }; export type Unstake = { address: string; authority: string; amount: number; withdrawTs: number; };