UNPKG

@azuro-org/sdk

Version:

One-stop solution for building betting dApps on the Azuro Protocol.

89 lines (88 loc) 3.71 kB
import { type Address, type Hex } from 'viem'; import { type Selection, type GraphBetStatus, type GameData, type BetOrderState } from '@azuro-org/toolkit'; import { type UseInfiniteQueryOptions, type DefaultError, type QueryKey, type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query'; export type QueryParameter<queryFnData = unknown, error = DefaultError, data = queryFnData, queryKey extends QueryKey = QueryKey> = Omit<UseQueryOptions<queryFnData, error, data, queryKey>, 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError' | 'select'> | undefined; export type QueryParameterWithSelect<QueryFnData = unknown, TData = QueryFnData, TError = DefaultError, TQueryKey extends QueryKey = QueryKey> = Omit<UseQueryOptions<QueryFnData, TError, TData, TQueryKey>, 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError'> | undefined; export type WrapperUseQueryResult<D, T> = { data: D; } & Omit<UseQueryResult<T>, 'data'>; export type InfiniteQueryParameters<queryFnData = unknown, error = DefaultError, data = queryFnData, queryKey extends QueryKey = QueryKey, pageParam = number> = Omit<UseInfiniteQueryOptions<queryFnData, error, data, queryKey, pageParam>, 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError' | 'select' | 'initialData' | 'getNextPageParam' | 'initialPageParam'>; export type InfiniteQueryParametersWithSelect<queryFnData = unknown, data = queryFnData, error = DefaultError, queryKey extends QueryKey = QueryKey, pageParam = number> = Omit<UseInfiniteQueryOptions<queryFnData, error, data, queryKey, pageParam>, 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError' | 'initialData' | 'getNextPageParam' | 'initialPageParam'>; declare global { namespace AzuroSDK { interface BetslipItem extends Selection { gameId: string; isExpressForbidden: boolean; } } } export declare enum SportHub { Sports = "sports", Esports = "esports" } export declare enum BetType { Unredeemed = "unredeemed", Pending = "pending", Accepted = "accepted", Settled = "settled", CashedOut = "cashedOut" } export type BetOutcome = { selectionName: string; odds: number; marketName: string; game: GameData; wonOutcomeIds: string[] | null; isLive: boolean; isWin: boolean | null; isLose: boolean | null; isCanceled: boolean; } & Selection; export type Bet = { /** bettorAddressLowerCase_nonce */ orderId: string; actor: Address; affiliate: Address; tokenId: string; freebetId: string | null; isFreebetAmountReturnable: boolean | null; paymaster: Address | null; totalOdds: number; coreAddress: Address; lpAddress: Address; outcomes: BetOutcome[]; txHash: Hex | null; redeemedTxHash: Hex | null; orderState: BetOrderState; /** * graphql bet status, * it can be null for bet with `orderState` in * Created, Placed, Sent, Canceled, Rejected * */ status: GraphBetStatus | null; /** contract error code if bet state is BetState.Rejected */ rejectedErrorCode: string | null; amount: string; possibleWin: number; payout: number | null; createdAt: number; resolvedAt: number | null; redeemedAt?: number | null; cashout?: string; isWin: boolean; isLose: boolean; isRedeemable: boolean; isRedeemed: boolean; isCanceled: boolean; isRejected: boolean; isCashedOut: boolean; }; export type BetsSummary = { toPayout: string; inBets: string; totalPayout: string; totalProfit: string; betsCount: number; wonBetsCount: number; lostBetsCount: number; };