Developer Hub
🔮 For applications
SDK
Cashout
useCashout

This hook creates a cashout order and monitors its status

ℹ️

You can find more information Here.

Usage

import { useCashout } from '@azuro-org/sdk'
 
const bet = {...}
 
const { submit, calculationQuery } = useCashout({
  bet,
  EIP712Attention: '...',
})
 
submit() // run cashout
 
const { data, error, isFetching: isCalculationFetching, refetch } = calculationQuery
const { cashoutAmount, approveExpiredAt } = data || {}
ℹ️

You can find a usage example in our demo (opens in a new tab).

Props

{
  bet: Pick<Bet, 'tokenId' | 'outcomes'>
  chainId?: ChainId
  EIP712Attention?: string
  onSuccess?(receipt?: TransactionReceipt): void
  onError?(err?: Error): void
}
type Selection = {
  conditionId: string
  outcomeId: string
  coreAddress: string
}

Return Value

{
  submit: () => Promise<void> // function used to trigger the cashout action or token spending approval
  calculationQuery: UseQueryResult<GetCalculatedCashout>
  approveTx: {
    isPending: approveTx.isPending
    isProcessing: approveReceipt.isLoading
  }
  cashoutTx: {
    data: cashoutTx.data
    receipt: cashoutReceipt.data
    isPending: cashoutTx.isPending
    isProcessing: cashoutReceipt.isLoading
  }
  isAllowanceFetching: allowanceTx.isLoading
  isCashoutAvailable
  isApproveRequired
}
import { type UseQueryResult } from '@tanstack/react-query'
 
 
type GetCalculatedCashout = {
  calculationId: string // calculation id, needed for createCashout
  account: string
  environment: Environment
  tokenId: string // bet token id from graph
  cashoutAmount: string
  multiplier: string
  expiredAt: number // cashout expired at
  approveExpiredAt: number // sigh cashout type data expired at
  isLive: boolean
} | null