Types
TypeScript type definitions for the SDK.
Initialization Types
InitializeSDKParams
Parameters for creating an SDK instance.
typescript
interface InitializeSDKParams {
connection: Connection;
wallet?: IWallet;
skipPreflight?: boolean;
commitment?: Commitment;
maxRetries?: number;
}IWallet
Wallet adapter interface.
typescript
type IWallet = {
publicKey: PublicKey;
signTransaction<T extends Transaction | VersionedTransaction>(
transaction: T
): Promise<T>;
signAllTransactions<T extends Transaction | VersionedTransaction>(
transactions: T[]
): Promise<T[]>;
};Transaction Types
BaseTransactionParams
Common parameters for all transaction methods.
typescript
interface BaseTransactionParams {
payerOverride?: PublicKey;
signers?: Keypair[];
confirmOptions?: ConfirmOptions;
preinstructions?: TransactionInstruction[];
feePayerOverride?: PublicKey;
}ConfirmOptions
Solana transaction confirmation options.
typescript
interface ConfirmOptions {
skipPreflight?: boolean;
commitment?: Commitment;
preflightCommitment?: Commitment;
maxRetries?: number;
minContextSlot?: number;
}Bet Types
InitializeBetParams
Parameters for creating a bet.
typescript
interface InitializeBetParams extends BaseTransactionParams {
question: string;
expectedUserCount: number;
minimumVoteCount: number;
}PlaceWagerParams
Parameters for placing a wager.
typescript
interface PlaceWagerParams extends BaseTransactionParams {
bet: PublicKey;
amount?: number; // Human-readable (e.g., 10 for 10 USDC)
rawAmount?: number; // Raw lamports (e.g., 10_000_000)
side: Outcome;
}InitiateVoteParams
Parameters for initiating voting.
typescript
interface InitiateVoteParams extends BaseTransactionParams {
bet: PublicKey;
}PlaceVoteParams
Parameters for casting a vote.
typescript
interface PlaceVoteParams extends BaseTransactionParams {
bet: PublicKey;
outcome: Outcome;
}SettleBetParams
Parameters for settling a bet.
typescript
interface SettleBetParams extends BaseTransactionParams {
bet: PublicKey;
}SettleBetBatchParams
Parameters for batch settlement.
typescript
interface SettleBetBatchParams extends BaseTransactionParams {
bet: PublicKey;
batchNumber: number;
usersPerBatch: number;
}TryCancelWagerParams
Parameters for canceling a wager.
typescript
interface TryCancelWagerParams extends BaseTransactionParams {
bet: PublicKey;
}Game Types
CreateGameParams
typescript
interface CreateGameParams extends BaseTransactionParams {
expectedUserCount: number;
}PlaceGameWagerParams
typescript
interface PlaceGameWagerParams extends BaseTransactionParams {
game: PublicKey;
amount: number;
}CreateGameAndPlaceWagerParams
typescript
interface CreateGameAndPlaceWagerParams extends BaseTransactionParams {
expectedUserCount: number;
amount: number;
}SubmitScoreParams
typescript
interface SubmitScoreParams extends BaseTransactionParams {
game: PublicKey;
score: number;
}SettleGameParams
typescript
interface SettleGameParams extends BaseTransactionParams {
game: PublicKey;
}ExpireGameParams
typescript
interface ExpireGameParams extends BaseTransactionParams {
game: PublicKey;
}Mapped Types
MappedBet
typescript
interface MappedBet {
creator: string;
createdAt: number;
updatedAt: number;
resolvedAt: number;
distributedAt: number;
voteInitiatedAt: number;
status: string;
resolvedOutcome: string;
question: string;
expectedUserCount: number;
minimumVoteCount: number;
totalOiFor: number;
totalOiAgainst: number;
poolAddress: string;
wagers: MappedWager[];
votes: MappedVote[];
poolBump: number;
wagerId: number;
isCreatorResolver: boolean;
settledUserCount: number;
totalBatchesRequired: number;
}MappedWager
typescript
interface MappedWager {
user: string;
amount: number;
outcome: string;
updatedAt: number;
status: string;
isVoteInitiator: boolean;
}MappedVote
typescript
interface MappedVote {
user: string;
outcome: string;
createdAt: number;
}MappedUser
typescript
interface MappedUser {
totalWagersCount: number;
totalWageredAmount: number;
inWagerAmount: number;
nextWagerId: number;
nextGameId: number;
}MappedProtocol
typescript
interface MappedProtocol {
protocolBump: number;
updateAuthority: string;
updateBump: number;
withdrawAuthority: string;
totalWagersCount: number;
totalWageredAmount: number;
totalUsersCount: number;
totalFeesGeneratedAmount: number;
feeVaultAddress: string;
feeVaultBalance: number;
feeVaultLastUpdated: number;
feePercentage: number;
usdcMint: string;
totalUniqueBets: number;
totalGamesCount: number;
totalWageredGamesAmount: number;
}MappedGame
typescript
interface MappedGame {
id: number;
creator: string;
createdAt: number;
escrow: string;
escrowBump: number;
status: MappedGameStatus;
expectedPlayerCount: number;
playerCount: number;
wagers: MappedGameWager[];
}