Creates a combo (parlay) bet by submitting signed bet data to the Azuro API. This function sends the combo bet order to the relayer which will then place the bet on-chain.

Usage

import { getComboBetTypedData, createBet } from '@azuro-org/toolkit'
 
 
const typedData = getComboBetTypedData({
  account: '0x...',
  minOdds: '...',
  amount: '...',
  nonce: '...',
  clientData: {...},
  bets: [ {...}, {...} ],
})
 
const signature = await walletClient.data.signTypedData(typedData)
 
const createdOrder: CreateBetResponse = await createBet({
  account: '0x...',
  minOdds: '...',
  amount: '...',
  nonce: '...',
  clientData: {...},
  bets: [ {...}, {...} ],
  signature,
})

Props

{
  account: Address
  amount: string | bigint
  minOdds: string | bigint
  nonce: string | number | bigint
  clientData: BetClientData
  bets: {
    conditionId: string | bigint
    outcomeId: string | number | bigint
  }[]
  signature: Hex // signed typed data
  bonusId?: string // freebet id to place bet with
}
type BetClientData = {
  attention: string
  affiliate: Address
  core: Address
  expiresAt: number
  chainId: ChainId
  relayerFeeAmount: string
  isBetSponsored: boolean
  isFeeSponsored: boolean
  isSponsoredBetReturnable: boolean
}

Return Value

type CreateBetResponse = {
  id: string
  state: BetOrderState
  errorMessage?: string
  error?: string
}
 
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',
}