Retrieves all bet orders for a specific bettor address with optional filtering. Supports pagination and filtering by state, result, affiliate, and redemption status.
Usage
import { getBetsByBettor, BetOrderResult } from '@azuro-org/toolkit'
const chainId = 137
const bettor = '0x...'
// Get the latest 100 bet orders in any state
const allBets = await getBetsByBettor({ chainId, bettor })
// Get only redeemable bets
const redeemableBets = await getBetsByBettor({
chainId,
bettor,
result: [BetOrderResult.Won, BetOrderResult.Canceled],
isRedeemed: false,
limit: 1000,
})Props
type GetBetsByBettorParams = {
chainId: ChainId
bettor: Address
affiliate?: Address
result?: BetOrderResult | BetOrderResult[]
state?: BetOrderState | BetOrderState[]
isRedeemed?: boolean
offset?: number
/** default: 100 */
limit?: number
}export enum BetOrderState {
/** First status when created */
Created = 'Created',
/** Bet is included in the calculation of potential loss/wins */
Placed = 'Placed',
/** The relayer has been taken into processing to send the bet to the contracts */
Sent = 'Sent',
/** Bet successfully accepted in the contracts */
Accepted = 'Accepted',
/** An error occurred during the contracts checks */
Rejected = 'Rejected',
/** The process of canceling the bet. The bet placed in the contracts still has the "GraphBetStatus.Accepted" status */
PendingCancel = 'PendingCancel',
/** Cancellation error. The bet placed in the contracts still has the "GraphBetStatus.Accepted" status */
CancelFailed = 'CancelFailed',
/** Bet is canceled */
Canceled = 'Canceled',
/** The bet is settled (won or lost) */
Settled = 'Settled',
}
enum BetOrderResult {
Won = 'Won',
Lost = 'Lost',
Canceled = 'Canceled',
}Return Value
Returns BetOrderData[] array or null if no bets found (404 response).
type BetOrderData = {
id: string
state: BetOrderState
environment: Environment
betType: 'ORDINARY' | 'COMBO'
core: Address
bettor: Address
owner: Address
affiliate: Address
amount: number
payout: number | null
odds: number
bonusId: string | null
isFreebet: boolean
betId: number | null
txHash: Hex | null
margin: string
settledMargin: string | null
result: BetOrderResult | null
createdAt: ISOTimestamp
updatedAt: ISOTimestamp
settledAt: ISOTimestamp | null
redeemedAt: ISOTimestamp | null
conditions: BetOrderConditionData[]
meta: BetMetaData | null
error: string | null
errorMessage: string | null
}type BetOrderConditionData = {
conditionId: string
outcomeId: number
orderId: string
gameId: string
/**
* State of the game at the moment of bet placing, to determine whether the bet is Live or not.
* */
gameState: GameState.Live | GameState.Prematch
conditionMargin: string
selectionMargin: string
settledSelectionMargin: string | null
result: BetConditionStatus | null
/**
* Formatted odds of the condition, e.g. "1.55"
* */
price: string
/**
* Formatted amount,
* e.g. "18.5"
*
* in COMBO bets, it can have more fractional digits than bet token decimals,
* e.g. "18.057553956834532374" for 6 decimals USDT
* */
potentialAmount: string | null
potentialLoss: string | null
}