Coinflip

Properties:

type TemplateOptions = {
  scene?: {
    backgroundImage?: string;
    backgroundColor?: string;
  };
};
 
interface TemplateWithWeb3Props extends BaseGameProps {
  options: TemplateOptions;
  minWager?: number;
  maxWager?: number;
  hideBetHistory?: boolean;
  onAnimationStep?: (step: number) => void;
  onAnimationCompleted?: (result: CoinFlipGameResult[]) => void;
  betControllerClassName?: string;
}

Example

'use client';
 
import { GameType } from '@winrlabs/games';
import { useModalsStore, useToast } from '@winrlabs/ui';
import { CoinFlipGame } from '@winrlabs/web3-games';
 
export default function CoinFlipPage() {
  const { toast } = useToast();
 
  const { checkProgressChanges } = useProgressCheck();
 
  const { openModal } = useModalsStore();
 
  const { minWager, maxWager } = useGetWagerInfo(GameType.COINFLIP);
 
  return (
    <>
      <CoinFlipGame
        options={{
          scene: {
            backgroundImage: 'url(/images/game-assets/coin-flip/coin-flip-bg.png)',
          },
        }}
        onAnimationCompleted={() => {
          checkProgressChanges();
 
          refetchHistory();
        }}
        onError={(e) => {
          toast({
            title: 'Error',
            description: e || 'Something went wrong',
            variant: 'destructive',
          });
        }}
        onLogin={() => openModal('login')}
        minWager={minWager}
        maxWager={maxWager}
      />
    </>
  );
}