{"version":3,"sources":["../src/abis/v2/casino/bank.ts","../src/abis/v2/casino/cointoss.ts","../src/abis/v2/casino/dice.ts","../src/abis/v2/casino/roulette.ts","../src/abis/v2/casino/keno.ts","../src/abis/v2/casino/game.ts","../src/abis/v2/casino/weightedGame.ts","../src/data/chains.ts","../src/data/casino.ts","../src/constants.ts","../src/data/tokens.ts","../src/errors/betSwirlError.ts","../src/errors/codes.ts","../src/errors/types.ts","../src/utils/chains.ts","../src/utils/tokens.ts","../src/utils/format.ts","../src/utils/wallet.ts","../src/utils/api.ts","../src/utils/index.ts","../src/data/subgraphs/protocol/documents/types.ts","../src/data/subgraphs/protocol/documents/fragments/bet.ts","../src/data/subgraphs/protocol/documents/bet.ts","../src/data/subgraphs/protocol/documents/bets.ts","../src/utils/subgraphs.ts","../src/data/subgraphs/protocol/clients/common.ts","../src/data/subgraphs/protocol/clients/bet.ts","../src/data/subgraphs/protocol/documents/fragments/token.ts","../src/data/subgraphs/protocol/documents/token.ts","../src/data/subgraphs/protocol/documents/tokens.ts","../src/data/subgraphs/protocol/clients/token.ts","../src/data/api/freebet/campaigns.ts","../src/data/api/freebet/bets.ts","../src/data/api/leaderboard/leaderboards.ts","../src/entities/casino/game.ts","../src/entities/casino/dice.ts","../src/entities/casino/keno.ts","../src/entities/casino/roulette.ts","../src/entities/casino/weightedGame.ts","../src/utils/bet.ts","../src/entities/casino/cointoss.ts","../src/abis/v2/casino/freebet.ts","../src/read/common/gasPrice.ts","../src/read/common/chainlinkVrfCost.ts","../src/read/common/tokenMetadata.ts","../src/actions/common/approve.ts","../src/actions/casino/game.ts","../src/actions/casino/cointoss.ts","../src/actions/casino/dice.ts","../src/actions/casino/roulette.ts","../src/actions/casino/keno.ts","../src/entities/casino/wheel.ts","../src/entities/casino/plinko.ts","../src/actions/casino/weightedGame.ts","../src/actions/casino/wheel.ts","../src/actions/casino/plinko.ts","../src/abis/v2/leaderboard/leaderboard.ts","../src/read/casino/bank.ts","../src/read/casino/game.ts","../src/read/casino/cointoss.ts","../src/read/casino/dice.ts","../src/read/casino/roulette.ts","../src/read/casino/keno.ts","../src/read/casino/weightedGame.ts","../src/read/casino/wheel.ts","../src/read/casino/plinko.ts","../src/read/leaderboard/leaderboard.ts","../src/actions/leaderboard/leaderboard.ts","../src/actions/api/leaderboard/leaderboards.ts","../src/provider/client.ts","../src/provider/wallet.ts","../src/provider/viemWallet.ts","../src/provider/viemClient.ts"],"names":["polygon","polygonAmoy","avalanche","avalancheFuji","arbitrum","arbitrumSepolia","bsc","bscTestnet","mainnet","sepolia","base","baseSepolia","gnosis","CASINO_GAME_TYPE","CASINO_GAME_SUBGRAPH_TYPE","CASINO_GAME_LABEL_TYPE","zeroAddress","Decimal","formatUnits","FORMAT_TYPE","Bet_OrderBy","OrderDirection","gql","InMemoryCache","getAddress","CasinoBetFilterStatus","ApolloClient","FREEBET_CAMPAIGN_STATUS","LEADERBOARD_STATUS","LEADERBOARD_TYPE","LEADERBOARD_CASINO_RULES_SOURCE","LEADERBOARD_CASINO_RULES_GAME","LEADERBOARD_SPORT_RULES_SOURCE","LEADERBOARD_SPORT_RULES_BET_TYPE","encodeAbiParameters","parseAbiParameters","KENO_INPUT_BUNDLE","ROULETTE_INPUT_BUNDLE","numbers","COINTOSS_FACE","GAS_PRICE_TYPE","encodeFunctionData","erc20Abi","ALLOWANCE_TYPE","decodeEventLog","getLogs","rolledBet"],"mappings":"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","file":"index.cjs","sourcesContent":["export const bankAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"treasuryAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"teamWalletAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"wrappedGasToken\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidValue\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenExists\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenNotExists\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenNotPaused\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"splitSum\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"WrongHouseEdgeSplit\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"added\",\n        type: \"bool\",\n      },\n    ],\n    name: \"AddToken\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"affiliateAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"AffiliateRevenuesDistribution\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"bank\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"dividend\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"treasury\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"team\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"affiliate\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliateAddress\",\n        type: \"address\",\n      },\n    ],\n    name: \"AllocateHouseEdgeAmount\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"newBalance\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"CashIn\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Deposit\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"newBalance\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"profit\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Payout\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"treasuryAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"teamAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"ProtocolRevenuesDistribution\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"previousAdminRole\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"newAdminRole\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"RoleAdminChanged\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"sender\",\n        type: \"address\",\n      },\n    ],\n    name: \"RoleGranted\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"sender\",\n        type: \"address\",\n      },\n    ],\n    name: \"RoleRevoked\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"allowed\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetAllowedToken\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousBalanceRisk\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"balanceRisk\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetBalanceRisk\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"paused\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetPausedToken\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"previousTeamWallet\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"teamWallet\",\n        type: \"address\",\n      },\n    ],\n    name: \"SetTeamWallet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"bank\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"dividend\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"affiliate\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"treasury\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"team\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetTokenHouseEdgeSplit\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"previousBankrollProvider\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"bankrollProvider\",\n        type: \"address\",\n      },\n    ],\n    name: \"TokenBankrollProviderTransferAccepted\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"newBankrollProvider\",\n        type: \"address\",\n      },\n    ],\n    name: \"TokenBankrollProviderTransferStarted\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"Withdraw\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"WithdrawDividend\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"DEFAULT_ADMIN_ROLE\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"DIVIDEND_MANAGER_ROLE\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"GAME_ROLE\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"TREASURY_WALLET\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"acceptTokenBankrollProviderTransfer\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"added\",\n        type: \"bool\",\n      },\n    ],\n    name: \"addToken\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"affiliateAmounts\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"tokenAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"fees\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    name: \"cashIn\",\n    outputs: [],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"deposit\",\n    outputs: [],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getBalance\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getBankrollProvider\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"tokenAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"multiplier\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"getBetRequirements\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"isAllowedToken\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxBetAmount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"multiplier\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"getMaxBetAmount\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"multiplier\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"getMaxBetCount\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"getRoleAdmin\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"index\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"getRoleMember\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"getRoleMemberCount\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getTokens\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"uint8\",\n            name: \"decimals\",\n            type: \"uint8\",\n          },\n          {\n            internalType: \"address\",\n            name: \"tokenAddress\",\n            type: \"address\",\n          },\n          {\n            internalType: \"string\",\n            name: \"name\",\n            type: \"string\",\n          },\n          {\n            internalType: \"string\",\n            name: \"symbol\",\n            type: \"string\",\n          },\n          {\n            components: [\n              {\n                internalType: \"bool\",\n                name: \"allowed\",\n                type: \"bool\",\n              },\n              {\n                internalType: \"bool\",\n                name: \"paused\",\n                type: \"bool\",\n              },\n              {\n                internalType: \"uint16\",\n                name: \"balanceRisk\",\n                type: \"uint16\",\n              },\n              {\n                internalType: \"address\",\n                name: \"bankrollProvider\",\n                type: \"address\",\n              },\n              {\n                internalType: \"address\",\n                name: \"pendingBankrollProvider\",\n                type: \"address\",\n              },\n              {\n                components: [\n                  {\n                    internalType: \"uint16\",\n                    name: \"bank\",\n                    type: \"uint16\",\n                  },\n                  {\n                    internalType: \"uint16\",\n                    name: \"dividend\",\n                    type: \"uint16\",\n                  },\n                  {\n                    internalType: \"uint16\",\n                    name: \"affiliate\",\n                    type: \"uint16\",\n                  },\n                  {\n                    internalType: \"uint16\",\n                    name: \"treasury\",\n                    type: \"uint16\",\n                  },\n                  {\n                    internalType: \"uint16\",\n                    name: \"team\",\n                    type: \"uint16\",\n                  },\n                  {\n                    internalType: \"uint256\",\n                    name: \"dividendAmount\",\n                    type: \"uint256\",\n                  },\n                  {\n                    internalType: \"uint256\",\n                    name: \"affiliateAmount\",\n                    type: \"uint256\",\n                  },\n                  {\n                    internalType: \"uint256\",\n                    name: \"treasuryAmount\",\n                    type: \"uint256\",\n                  },\n                  {\n                    internalType: \"uint256\",\n                    name: \"teamAmount\",\n                    type: \"uint256\",\n                  },\n                ],\n                internalType: \"struct IBankAdmin.HouseEdgeSplitAndAllocation\",\n                name: \"houseEdgeSplitAndAllocation\",\n                type: \"tuple\",\n              },\n            ],\n            internalType: \"struct IBankAdmin.Token\",\n            name: \"token\",\n            type: \"tuple\",\n          },\n        ],\n        internalType: \"struct IBankAdmin.TokenMetadata[]\",\n        name: \"\",\n        type: \"tuple[]\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"grantRole\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasRole\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"profit\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"fees\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    name: \"payout\",\n    outputs: [],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"renounceRole\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"revokeRole\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"allowed\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setAllowedToken\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"balanceRisk\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setBalanceRisk\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"bank\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"dividend\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliate\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"treasury\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"team\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdgeSplit\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"paused\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setPausedToken\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"teamWallet_\",\n        type: \"address\",\n      },\n    ],\n    name: \"setTeamWallet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"setTokenBankrollProviderTransfer\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes4\",\n        name: \"interfaceId\",\n        type: \"bytes4\",\n      },\n    ],\n    name: \"supportsInterface\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"teamWallet\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"allowed\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"paused\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"balanceRisk\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"address\",\n        name: \"bankrollProvider\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"pendingBankrollProvider\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"uint16\",\n            name: \"bank\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"dividend\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"affiliate\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"treasury\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"team\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"dividendAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"affiliateAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"treasuryAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"teamAmount\",\n            type: \"uint256\",\n          },\n        ],\n        internalType: \"struct IBankAdmin.HouseEdgeSplitAndAllocation\",\n        name: \"houseEdgeSplitAndAllocation\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"withdraw\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"tokenAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawAffiliateRevenues\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"tokenAddress\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawDividend\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"withdrawDividends\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"tokenAddress\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawProtocolRevenues\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","export const coinTossAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"bankAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkCoordinatorAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkWrapperAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"wrappedGasToken\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ForbiddenToken\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidMaxCallGas\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidVRFSubId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFulfilled\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotPendingBet\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetCount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongGasValueToCoverVRFFee\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetRefunded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"DistributeTokenVRFFees\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Paused\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"chargedVRFCost\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"face\",\n        type: \"bool\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"betCount\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"PlaceBet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"totalBetAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"face\",\n        type: \"bool\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool[]\",\n        name: \"rolled\",\n        type: \"bool[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Roll\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetAffiliateHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: false,\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetChainlinkConfig\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"previousRefundTime\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"refundTime\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"SetRefundTime\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"SetVRFCallbackGasBase\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetVRFSubId\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Unpaused\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"BANK\",\n    outputs: [\n      {\n        internalType: \"contract IBankGame\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"_affiliateHouseEdges\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"bets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"resolved\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"timestamp\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"coinTossBets\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"bool\",\n            name: \"face\",\n            type: \"bool\",\n          },\n          {\n            internalType: \"bool[]\",\n            name: \"rolled\",\n            type: \"bool[]\",\n          },\n        ],\n        internalType: \"struct ICoinToss.CoinTossBet\",\n        name: \"\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getAffiliateHouseEdge\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getChainlinkConfig\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"chainlinkCoordinator\",\n        type: \"address\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"getChainlinkVRFCost\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasPendingBets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"refundBet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"refundTime\",\n    outputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliateHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setAffiliateHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"setRefundTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setVRFCallbackGasBase\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setVRFSubId\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"togglePause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"pendingCount\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"VRFFees\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bool\",\n        name: \"face\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wager\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes\",\n        name: \"bet\",\n        type: \"bytes\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wagerWithData\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawTokenVRFFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","export const diceAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"bankAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkCoordinatorAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkWrapperAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"wrappedGasToken\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint8\",\n        name: \"minCap\",\n        type: \"uint8\",\n      },\n      {\n        internalType: \"uint8\",\n        name: \"maxCap\",\n        type: \"uint8\",\n      },\n    ],\n    name: \"CapNotInRange\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ForbiddenToken\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidMaxCallGas\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidVRFSubId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFulfilled\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotPendingBet\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetCount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongGasValueToCoverVRFFee\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetRefunded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"DistributeTokenVRFFees\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Paused\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"chargedVRFCost\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint8\",\n        name: \"cap\",\n        type: \"uint8\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"betCount\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"PlaceBet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"totalBetAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint8\",\n        name: \"cap\",\n        type: \"uint8\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint8[]\",\n        name: \"rolled\",\n        type: \"uint8[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Roll\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetAffiliateHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: false,\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetChainlinkConfig\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"previousRefundTime\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"refundTime\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"SetRefundTime\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"SetVRFCallbackGasBase\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetVRFSubId\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Unpaused\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"BANK\",\n    outputs: [\n      {\n        internalType: \"contract IBankGame\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"_affiliateHouseEdges\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"bets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"resolved\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"timestamp\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"diceBets\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"uint8\",\n            name: \"cap\",\n            type: \"uint8\",\n          },\n          {\n            internalType: \"uint8[]\",\n            name: \"rolled\",\n            type: \"uint8[]\",\n          },\n        ],\n        internalType: \"struct IDice.DiceBet\",\n        name: \"\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getAffiliateHouseEdge\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getChainlinkConfig\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"chainlinkCoordinator\",\n        type: \"address\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"getChainlinkVRFCost\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasPendingBets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"refundBet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"refundTime\",\n    outputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliateHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setAffiliateHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"setRefundTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setVRFCallbackGasBase\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setVRFSubId\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"togglePause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"pendingCount\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"VRFFees\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint8\",\n        name: \"cap\",\n        type: \"uint8\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wager\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes\",\n        name: \"bet\",\n        type: \"bytes\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wagerWithData\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawTokenVRFFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","export const rouletteAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"bankAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkCoordinatorAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkWrapperAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"wrappedGasToken\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ForbiddenToken\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidMaxCallGas\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidVRFSubId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFulfilled\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotPendingBet\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NumbersNotInRange\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetCount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongGasValueToCoverVRFFee\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetRefunded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"DistributeTokenVRFFees\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Paused\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"chargedVRFCost\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint40\",\n        name: \"numbers\",\n        type: \"uint40\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"betCount\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"PlaceBet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"totalBetAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint40\",\n        name: \"numbers\",\n        type: \"uint40\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint8[]\",\n        name: \"rolled\",\n        type: \"uint8[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Roll\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetAffiliateHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: false,\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetChainlinkConfig\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"previousRefundTime\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"refundTime\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"SetRefundTime\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"SetVRFCallbackGasBase\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetVRFSubId\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Unpaused\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"BANK\",\n    outputs: [\n      {\n        internalType: \"contract IBankGame\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"_affiliateHouseEdges\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"bets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"resolved\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"timestamp\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getAffiliateHouseEdge\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getChainlinkConfig\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"chainlinkCoordinator\",\n        type: \"address\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"getChainlinkVRFCost\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasPendingBets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"refundBet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"refundTime\",\n    outputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"rouletteBets\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"uint40\",\n            name: \"numbers\",\n            type: \"uint40\",\n          },\n          {\n            internalType: \"uint8[]\",\n            name: \"rolled\",\n            type: \"uint8[]\",\n          },\n        ],\n        internalType: \"struct IRoulette.RouletteBet\",\n        name: \"\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliateHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setAffiliateHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"setRefundTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setVRFCallbackGasBase\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setVRFSubId\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"togglePause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"pendingCount\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"VRFFees\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint40\",\n        name: \"numbers\",\n        type: \"uint40\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wager\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes\",\n        name: \"bet\",\n        type: \"bytes\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wagerWithData\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawTokenVRFFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","export const kenoAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"bankAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkCoordinatorAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkWrapperAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"wrappedGasToken\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ForbiddenToken\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidMaxCallGas\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidSettings\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidVRFSubId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFulfilled\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotPendingBet\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NumbersNotInRange\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TooManyNumbersPlayed\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetCount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongGasValueToCoverVRFFee\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetRefunded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"DistributeTokenVRFFees\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Paused\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"chargedVRFCost\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint40\",\n        name: \"numbers\",\n        type: \"uint40\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"betCount\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"PlaceBet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"totalBetAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint40\",\n        name: \"numbers\",\n        type: \"uint40\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint40[]\",\n        name: \"rolled\",\n        type: \"uint40[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Roll\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetAffiliateHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: false,\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetChainlinkConfig\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"previousRefundTime\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"refundTime\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"SetRefundTime\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"SetVRFCallbackGasBase\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetVRFSubId\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint128\",\n        name: \"newBiggestNumber\",\n        type: \"uint128\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint128\",\n        name: \"newMaxNumbers\",\n        type: \"uint128\",\n      },\n    ],\n    name: \"TokenConfigUpdated\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Unpaused\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"BANK\",\n    outputs: [\n      {\n        internalType: \"contract IBankGame\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"_affiliateHouseEdges\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"bets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"resolved\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"timestamp\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"played\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"matchCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"gain\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"_factor\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"gains\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"biggestNumber\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxNumbersPlayed\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[][]\",\n        name: \"_gainsTable\",\n        type: \"uint256[][]\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getAffiliateHouseEdge\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getChainlinkConfig\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"chainlinkCoordinator\",\n        type: \"address\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"getChainlinkVRFCost\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"seed\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"getNumbersOutOfRandomWord\",\n    outputs: [\n      {\n        internalType: \"uint40\",\n        name: \"\",\n        type: \"uint40\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasPendingBets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"kenoBets\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"uint40\",\n            name: \"numbers\",\n            type: \"uint40\",\n          },\n          {\n            internalType: \"uint40[]\",\n            name: \"rolled\",\n            type: \"uint40[]\",\n          },\n        ],\n        internalType: \"struct IKeno.KenoBet\",\n        name: \"\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"refundBet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"refundTime\",\n    outputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliateHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setAffiliateHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"setRefundTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setVRFCallbackGasBase\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setVRFSubId\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"togglePause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokenConfigurations\",\n    outputs: [\n      {\n        internalType: \"uint128\",\n        name: \"biggestNumber\",\n        type: \"uint128\",\n      },\n      {\n        internalType: \"uint128\",\n        name: \"maxNumbersPlayed\",\n        type: \"uint128\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"pendingCount\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"VRFFees\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint128\",\n        name: \"newBiggestNumber\",\n        type: \"uint128\",\n      },\n      {\n        internalType: \"uint128\",\n        name: \"newMaxNumbers\",\n        type: \"uint128\",\n      },\n    ],\n    name: \"updateTokenConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint40\",\n        name: \"numbers\",\n        type: \"uint40\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wager\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes\",\n        name: \"bet\",\n        type: \"bytes\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wagerWithData\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawTokenVRFFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","export const casinoGameAbi = [\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ForbiddenToken\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidMaxCallGas\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidVRFSubId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFulfilled\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotPendingBet\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetCount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongGasValueToCoverVRFFee\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetRefunded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"DistributeTokenVRFFees\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Paused\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetAffiliateHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: false,\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetChainlinkConfig\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"previousRefundTime\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"refundTime\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"SetRefundTime\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"SetVRFCallbackGasBase\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetVRFSubId\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Unpaused\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"BANK\",\n    outputs: [\n      {\n        internalType: \"contract IBankGame\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"_affiliateHouseEdges\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"bets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"resolved\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"timestamp\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getAffiliateHouseEdge\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getChainlinkConfig\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"chainlinkCoordinator\",\n        type: \"address\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"getChainlinkVRFCost\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasPendingBets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"refundBet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"refundTime\",\n    outputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliateHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setAffiliateHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"setRefundTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setVRFCallbackGasBase\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setVRFSubId\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"togglePause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"pendingCount\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"VRFFees\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawTokenVRFFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","export const wheelAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"bankAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkCoordinatorAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"chainlinkWrapperAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"wrappedGasToken\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint8\",\n        name: \"maxColors_\",\n        type: \"uint8\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint32\",\n        name: \"id\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"ConfigNotExists\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ForbiddenToken\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"HouseEdgeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidConfig\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidMaxCallGas\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidParam\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidVRFSubId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFulfilled\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotPendingBet\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TokenHasPendingBets\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"minBetCount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"UnderMinBetCount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongGasValueToCoverVRFFee\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"user\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"BetRefunded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"DistributeTokenVRFFees\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"configId\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64[]\",\n        name: \"weights\",\n        type: \"uint64[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64[]\",\n        name: \"multipliers\",\n        type: \"uint64[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"gameId\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"GameConfigAdded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Paused\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"chargedVRFCost\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"configId\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"betCount\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"PlaceBet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"totalBetAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"configId\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint8[]\",\n        name: \"rolled\",\n        type: \"uint8[]\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Roll\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetAffiliateHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: false,\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"SetChainlinkConfig\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"previousHouseEdge\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"SetHouseEdge\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousMaxCallGas\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"maxCallGas\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetMaxCallGas\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint8\",\n        name: \"previousMaxColors\",\n        type: \"uint8\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint8\",\n        name: \"maxColors\",\n        type: \"uint8\",\n      },\n    ],\n    name: \"SetMaxColors\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"previousRefundTime\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint64\",\n        name: \"refundTime\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"SetRefundTime\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"SetVRFCallbackGasBase\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"SetVRFSubId\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Unpaused\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"BANK\",\n    outputs: [\n      {\n        internalType: \"contract IBankGame\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"WRAPPED\",\n    outputs: [\n      {\n        internalType: \"contract IWrapped\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"_affiliateHouseEdges\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64[]\",\n        name: \"weights_\",\n        type: \"uint64[]\",\n      },\n      {\n        internalType: \"uint64[]\",\n        name: \"multipliers_\",\n        type: \"uint64[]\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"gameId\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"addGameConfig\",\n    outputs: [\n      {\n        internalType: \"uint32\",\n        name: \"configId\",\n        type: \"uint32\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"bets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"resolved\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"timestamp\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"payout\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopGain\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"stopLoss\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"configsCount\",\n    outputs: [\n      {\n        internalType: \"uint32\",\n        name: \"\",\n        type: \"uint32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint32\",\n        name: \"configId\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"gameConfigs\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"uint72[]\",\n            name: \"weightRanges\",\n            type: \"uint72[]\",\n          },\n          {\n            internalType: \"uint64[]\",\n            name: \"multipliers\",\n            type: \"uint64[]\",\n          },\n          {\n            internalType: \"uint64\",\n            name: \"maxMultiplier\",\n            type: \"uint64\",\n          },\n          {\n            internalType: \"uint32\",\n            name: \"gameId\",\n            type: \"uint32\",\n          },\n        ],\n        internalType: \"struct IWheel.GameConfig\",\n        name: \"\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"getAffiliateHouseEdge\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"getChainlinkConfig\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"chainlinkCoordinator\",\n        type: \"address\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"betCount\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"getChainlinkVRFCost\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasPendingBets\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxCallGas\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"maxColors\",\n    outputs: [\n      {\n        internalType: \"uint8\",\n        name: \"\",\n        type: \"uint8\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"refundBet\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"refundTime\",\n    outputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"affiliateHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setAffiliateHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"contract IVRFV2PlusWrapperCustom\",\n        name: \"chainlinkWrapper\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasExtraBet\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"setHouseEdge\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"maxCallGas_\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setMaxCallGas\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint8\",\n        name: \"maxColors_\",\n        type: \"uint8\",\n      },\n    ],\n    name: \"setMaxColors\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"refundTime_\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"setRefundTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setVRFCallbackGasBase\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"subId\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setVRFSubId\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"togglePause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokens\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"houseEdge\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint64\",\n        name: \"pendingCount\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"VRFCallbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"VRFFees\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint32\",\n        name: \"configId\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wager\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes\",\n        name: \"bet\",\n        type: \"bytes\",\n      },\n      {\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"betAmount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"betCount\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopGain\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"stopLoss\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"maxHouseEdge\",\n            type: \"uint16\",\n          },\n        ],\n        internalType: \"struct IGamePlayer.BetData\",\n        name: \"betData\",\n        type: \"tuple\",\n      },\n    ],\n    name: \"wagerWithData\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"wheelBets\",\n    outputs: [\n      {\n        components: [\n          {\n            internalType: \"uint32\",\n            name: \"configId\",\n            type: \"uint32\",\n          },\n          {\n            internalType: \"uint8[]\",\n            name: \"rolled\",\n            type: \"uint8[]\",\n          },\n        ],\n        internalType: \"struct IWheel.WheelBet\",\n        name: \"\",\n        type: \"tuple\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawTokenVRFFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n\nexport const weightedGameAbi = wheelAbi;\n","import {\n  type Chain,\n  arbitrum,\n  arbitrumSepolia,\n  avalanche,\n  avalancheFuji,\n  base,\n  baseSepolia,\n  bsc,\n  bscTestnet,\n  gnosis,\n  mainnet,\n  polygon,\n  polygonAmoy,\n  sepolia,\n} from \"viem/chains\";\nimport type { Token } from \"../interfaces\";\n\nexport type ChainId = keyof typeof chainById;\n\nexport const chainByKey = {\n  polygon,\n  polygonAmoy,\n  avalanche,\n  avalancheFuji,\n  arbitrum,\n  arbitrumSepolia,\n  bsc,\n  bscTestnet,\n  mainnet,\n  sepolia,\n  base,\n  baseSepolia,\n  gnosis,\n} as const;\n\nexport const chains = Object.values(chainByKey) as unknown as readonly [Chain, ...Chain[]];\n\nexport const chainById = {\n  [polygon.id]: polygon,\n  [polygonAmoy.id]: polygonAmoy,\n  [avalanche.id]: avalanche,\n  [avalancheFuji.id]: avalancheFuji,\n  [arbitrum.id]: arbitrum,\n  [arbitrumSepolia.id]: arbitrumSepolia,\n  [bsc.id]: bsc,\n  [bscTestnet.id]: bscTestnet,\n  [mainnet.id]: mainnet,\n  [sepolia.id]: sepolia,\n  [base.id]: base,\n  [baseSepolia.id]: baseSepolia,\n  [gnosis.id]: gnosis,\n} as const;\n\nexport const slugById = {\n  [polygon.id as number]: \"polygon\",\n  [polygonAmoy.id as number]: \"amoy\",\n  [avalanche.id as number]: \"avalanche\",\n  [avalancheFuji.id as number]: \"fuji\",\n  [arbitrum.id as number]: \"arbitrum\",\n  [arbitrumSepolia.id as number]: \"arbitrum-sepolia\",\n  [bsc.id as number]: \"bnb-chain\",\n  [bscTestnet.id as number]: \"bnb-chain-testnet\",\n  [mainnet.id as number]: \"ethereum\",\n  [sepolia.id as number]: \"sepolia\",\n  [base.id as number]: \"base\",\n  [baseSepolia.id as number]: \"base-sepolia\",\n  [gnosis.id as number]: \"gnosis\",\n} as const;\n\nexport const wrappedGasTokenById: Record<number, Token[\"address\"]> = {\n  [polygon.id]: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n  [polygonAmoy.id]: \"0x52eF3d68BaB452a294342DC3e5f464d7f610f72E\",\n  [avalanche.id]: \"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7\",\n  [avalancheFuji.id]: \"0xd00ae08403B9bbb9124bB305C09058E32C39A48c\",\n  [arbitrum.id]: \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\",\n  [arbitrumSepolia.id]: \"0x187De399100aA962F209Aa78621F5138ACA6111f\",\n  [bsc.id]: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n  [bscTestnet.id]: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n  [mainnet.id]: \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n  [sepolia.id]: \"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9\",\n  [base.id]: \"0x4200000000000000000000000000000000000006\",\n  [baseSepolia.id]: \"0x4200000000000000000000000000000000000006\",\n  [gnosis.id]: \"0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1\",\n};\n","import type { ExtractAbiEvent } from \"abitype\";\nimport { type Abi, type Chain, type Hex } from \"viem\";\nimport { coinTossAbi } from \"../abis/v2/casino/cointoss\";\nimport { diceAbi } from \"../abis/v2/casino/dice\";\nimport { kenoAbi } from \"../abis/v2/casino/keno\";\nimport { rouletteAbi } from \"../abis/v2/casino/roulette\";\nimport { weightedGameAbi } from \"../abis/v2/casino/weightedGame\";\nimport { chainByKey } from \"./chains\";\n\nexport const MAX_HOUSE_EGDE = 3500;\nexport const MAX_SDK_HOUSE_EGDE = 1000;\n\nexport type CasinoChainId = keyof typeof casinoChainById;\n\nexport type CasinoChain = {\n  id: CasinoChainId;\n  viemChain: Chain;\n  options: {\n    pollingInterval: number;\n  };\n  contracts: {\n    bank: Hex;\n    games: {\n      [key in CASINO_GAME_TYPE]?: { address: Hex; abi: Abi };\n    };\n    leaderboard?: Hex;\n    freebet?: Hex;\n  };\n  graphql: {\n    endpoint: string;\n    defaultEndpoint: string;\n  };\n  defaultAffiliate: Hex;\n};\n\nexport enum CASINO_GAME_TYPE {\n  COINTOSS = \"coin-toss\",\n  DICE = \"dice\",\n  ROULETTE = \"roulette\",\n  KENO = \"keno\",\n  WHEEL = \"wheel\",\n  PLINKO = \"plinko\",\n  CUSTOM_WEIGHTED_GAME = \"custom-weighted-game\",\n}\n\nexport type NORMAL_CASINO_GAME_TYPE =\n  | CASINO_GAME_TYPE.COINTOSS\n  | CASINO_GAME_TYPE.DICE\n  | CASINO_GAME_TYPE.ROULETTE\n  | CASINO_GAME_TYPE.KENO\n  | CASINO_GAME_TYPE.PLINKO;\n\nexport type WEIGHTED_CASINO_GAME_TYPE =\n  | CASINO_GAME_TYPE.WHEEL\n  | CASINO_GAME_TYPE.PLINKO\n  | CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME;\n\nexport const NORMAL_GAME_TYPES = [\n  CASINO_GAME_TYPE.COINTOSS,\n  CASINO_GAME_TYPE.DICE,\n  CASINO_GAME_TYPE.ROULETTE,\n  CASINO_GAME_TYPE.KENO,\n  CASINO_GAME_TYPE.PLINKO,\n];\n\nexport const WEIGHTED_CASINO_GAME_TYPES = [\n  CASINO_GAME_TYPE.WHEEL,\n  CASINO_GAME_TYPE.PLINKO,\n  CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME,\n];\n\nexport enum CASINO_GAME_SUBGRAPH_TYPE {\n  COINTOSS = \"CoinToss\",\n  DICE = \"Dice\",\n  ROULETTE = \"Roulette\",\n  KENO = \"Keno\",\n  WHEEL = \"Wheel\",\n  PLINKO = \"Plinko\",\n  CUSTOM_WEIGHTED_GAME = \"CUSTOM_WEIGHTED_GAME\",\n}\n\nexport enum CASINO_GAME_LABEL_TYPE {\n  COINTOSS = \"Coin Toss\",\n  DICE = \"Dice\",\n  ROULETTE = \"Roulette\",\n  KENO = \"Keno\",\n  WHEEL = \"Wheel\",\n  PLINKO = \"Plinko\",\n  CUSTOM_WEIGHTED_GAME = \"Custom game\",\n}\n\nconst _extractRollEvent = <T extends Abi>(abi: T) =>\n  [\n    abi.find((e): e is ExtractAbiEvent<T, \"Roll\"> => e.type === \"event\" && e.name === \"Roll\")!,\n  ] as const;\n\nconst COINTOSS_ROLL_ABI = _extractRollEvent(coinTossAbi);\nconst DICE_ROLL_ABI = _extractRollEvent(diceAbi);\nconst ROULETTE_ROLL_ABI = _extractRollEvent(rouletteAbi);\nconst KENO_ROLL_ABI = _extractRollEvent(kenoAbi);\nconst WEIGHTED_GAME_ROLL_ABI = _extractRollEvent(weightedGameAbi);\n\nexport const CASINO_GAME_ROLL_ABI: Record<\n  CASINO_GAME_TYPE,\n  | typeof COINTOSS_ROLL_ABI\n  | typeof DICE_ROLL_ABI\n  | typeof ROULETTE_ROLL_ABI\n  | typeof KENO_ROLL_ABI\n  | typeof WEIGHTED_GAME_ROLL_ABI\n> = {\n  [CASINO_GAME_TYPE.COINTOSS]: COINTOSS_ROLL_ABI,\n  [CASINO_GAME_TYPE.DICE]: DICE_ROLL_ABI,\n  [CASINO_GAME_TYPE.ROULETTE]: ROULETTE_ROLL_ABI,\n  [CASINO_GAME_TYPE.KENO]: KENO_ROLL_ABI,\n  [CASINO_GAME_TYPE.WHEEL]: WEIGHTED_GAME_ROLL_ABI,\n  [CASINO_GAME_TYPE.PLINKO]: WEIGHTED_GAME_ROLL_ABI,\n  [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: WEIGHTED_GAME_ROLL_ABI,\n};\n\nconst _extractPlaceBetEvent = <T extends Abi>(abi: T) =>\n  [\n    abi.find(\n      (e): e is ExtractAbiEvent<T, \"PlaceBet\"> => e.type === \"event\" && e.name === \"PlaceBet\",\n    )!,\n  ] as const;\n\nconst COINTOSS_PLACE_BET_ABI = _extractPlaceBetEvent(coinTossAbi);\nconst DICE_PLACE_BET_ABI = _extractPlaceBetEvent(diceAbi);\nconst ROULETTE_PLACE_BET_ABI = _extractPlaceBetEvent(rouletteAbi);\nconst KENO_PLACE_BET_ABI = _extractPlaceBetEvent(kenoAbi);\nconst WEIGHTED_GAME_PLACE_BET_ABI = _extractPlaceBetEvent(weightedGameAbi);\n\nexport const CASINO_GAME_PLACE_BET_ABI: Record<\n  CASINO_GAME_TYPE,\n  | typeof COINTOSS_PLACE_BET_ABI\n  | typeof DICE_PLACE_BET_ABI\n  | typeof ROULETTE_PLACE_BET_ABI\n  | typeof KENO_PLACE_BET_ABI\n  | typeof WEIGHTED_GAME_PLACE_BET_ABI\n> = {\n  [CASINO_GAME_TYPE.COINTOSS]: COINTOSS_PLACE_BET_ABI,\n  [CASINO_GAME_TYPE.DICE]: DICE_PLACE_BET_ABI,\n  [CASINO_GAME_TYPE.ROULETTE]: ROULETTE_PLACE_BET_ABI,\n  [CASINO_GAME_TYPE.KENO]: KENO_PLACE_BET_ABI,\n  [CASINO_GAME_TYPE.WHEEL]: WEIGHTED_GAME_PLACE_BET_ABI,\n  [CASINO_GAME_TYPE.PLINKO]: WEIGHTED_GAME_PLACE_BET_ABI,\n  [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: WEIGHTED_GAME_PLACE_BET_ABI,\n};\n\nconst arbitrumSepoliaData: CasinoChain = {\n  id: chainByKey.arbitrumSepolia.id,\n  viemChain: chainByKey.arbitrumSepolia,\n  options: {\n    pollingInterval: 200,\n  },\n  contracts: {\n    bank: \"0x3ca54e047aE5f9141b49c6817aa7994CDc589d19\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xF68762683515f6670Fe661bff4Fe469A1A459904\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0x0Ff6EEfc86a79aE2239399ceC4C826099391B046\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x044c7E3Cd069d3e12D37686E92B85799E36fa7e4\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xA78465DE64F302568cbb869698413a60681d2Fe8\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xd021018E82eE105Feb7f50a0534DC0a3e6776F32\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xd021018E82eE105Feb7f50a0534DC0a3e6776F32\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xd021018E82eE105Feb7f50a0534DC0a3e6776F32\",\n        abi: weightedGameAbi,\n      },\n    },\n    leaderboard: \"0xf8e7EE248BE53C8b428542E9bc498D78fea09Ee4\",\n    freebet: \"0xBf34537E0648724713740267c72826A8f08ECadA\",\n  },\n  graphql: {\n    endpoint:\n      \"https://api.studio.thegraph.com/query/80936/betswirl-arbitrum-sepolia-v2/version/latest\",\n    defaultEndpoint:\n      \"https://api.studio.thegraph.com/query/80936/betswirl-arbitrum-sepolia-v2/version/latest\",\n  },\n  defaultAffiliate: \"0x057BcBF736DADD774A8A45A185c1697F4cF7517D\",\n};\n\nconst avalancheFujiData: CasinoChain = {\n  id: chainByKey.avalancheFuji.id,\n  viemChain: chainByKey.avalancheFuji,\n  options: {\n    pollingInterval: 500,\n  },\n  contracts: {\n    bank: \"0x25bED5A341218Df801a64951d02d3c968E84a6d4\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xE25b810B1A3d7DCff051abcdc109466d32b4F2a1\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0x5856B199ae1c51296cB17d29D65Da702FE0DA12a\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x91f6A418E2B4535f1828836d2DEa93E99d49836e\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xEC5800455EeFE3A193778747EeAfF38221bFdFe4\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xEaFBA4d8a062b4C41775FED9Ced52633c89DFca0\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xEaFBA4d8a062b4C41775FED9Ced52633c89DFca0\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xEaFBA4d8a062b4C41775FED9Ced52633c89DFca0\",\n        abi: weightedGameAbi,\n      },\n    },\n    leaderboard: \"0xbB613c35D539eE86AB600e376117887A006d028f\",\n    freebet: \"0xf341aa5e54E9536BDac0928d4Dbba3E09A8f774E\",\n  },\n  graphql: {\n    endpoint: \"https://api.studio.thegraph.com/query/80936/betswirl-fuji-v2/version/latest\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/80936/betswirl-fuji-v2/version/latest\",\n  },\n  defaultAffiliate: \"0x057BcBF736DADD774A8A45A185c1697F4cF7517D\",\n};\n\nconst polygonAmoyData: CasinoChain = {\n  id: chainByKey.polygonAmoy.id,\n  viemChain: chainByKey.polygonAmoy,\n  options: {\n    pollingInterval: 500,\n  },\n  contracts: {\n    bank: \"0x89D47048152581633579450DC4888C931CD4c28C\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xE14E752c6Ef78fB54da5A28ff7C9f808534603e9\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0xC2fc743768A1a842dD2CfA121359b8545B9876cA\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x5F628ccd0D5929B16fF6E239D8BB8C81F1b0feD9\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0x77A654D0895baF09c42314FBb4b18822Ec3c1DD0\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xd300a3757dDBb3Eafb8fb3e401a5eb60e4a571b1\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xd300a3757dDBb3Eafb8fb3e401a5eb60e4a571b1\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xd300a3757dDBb3Eafb8fb3e401a5eb60e4a571b1\",\n        abi: weightedGameAbi,\n      },\n    },\n    leaderboard: \"0x143DB52C913143345B6a24D8f22f1a8BEaC19e16\",\n    freebet: \"0xfBE92f62bd32B3b6c2335D757049f190752f5292\",\n  },\n  graphql: {\n    endpoint: \"https://api.studio.thegraph.com/query/80936/betswirl-amoy-v2/version/latest\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/80936/betswirl-amoy-v2/version/latest\",\n  },\n  defaultAffiliate: \"0x057BcBF736DADD774A8A45A185c1697F4cF7517D\",\n};\n\nconst baseSepoliaData: CasinoChain = {\n  id: chainByKey.baseSepolia.id,\n  viemChain: chainByKey.baseSepolia,\n  options: {\n    pollingInterval: 200,\n  },\n  contracts: {\n    bank: \"0x637D401554875a330264e910A3778DAf549F2021\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0x76e982a4823bEd3ed77d8E0b4c3FAa616385a286\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0x431c7E0856C0DEf20e50A809cBDdEcF5F8dD6142\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x441b191bc9253ab4E16D7d90E99650bb71D0E4f4\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xb5C9f183C1E5D2e9d0CA0679D7149ea075E0e82F\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0x011e537eB2313fc0096a87AA4ACC3750f712Ce2D\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0x011e537eB2313fc0096a87AA4ACC3750f712Ce2D\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0x011e537eB2313fc0096a87AA4ACC3750f712Ce2D\",\n        abi: weightedGameAbi,\n      },\n    },\n    leaderboard: \"0xd60Fac02E78e2a4E37501053ab3E822E330dd970\",\n    freebet: \"0xcBa83991C4D6A8c75FA7Aac02AAE202Ed0E44224\",\n  },\n  graphql: {\n    endpoint: \"https://api.studio.thegraph.com/query/80936/betswirl-base-sepolia-v2/version/latest\",\n    defaultEndpoint:\n      \"https://api.studio.thegraph.com/query/80936/betswirl-base-sepolia-v2/version/latest\",\n  },\n  defaultAffiliate: \"0x057BcBF736DADD774A8A45A185c1697F4cF7517D\",\n};\n\nconst arbitrumData: CasinoChain = {\n  id: chainByKey.arbitrum.id,\n  viemChain: chainByKey.arbitrum,\n  options: {\n    pollingInterval: 200,\n  },\n  contracts: {\n    bank: \"0x8FB3110015FBCAA469ee45B64dcd2BdF544B9CFA\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xAa4D2931a9fE14c3dec8AC3f12923Cbb535C0e5f\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0xC3Dff2489F8241729B824e23eD01F986fcDf8ec3\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x6678e3B4AB2a8C8Cdd068F132C21293CcBda33cb\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xc3428E4FEb5C770Db51DCb9B1C08223B10994a89\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n    },\n    freebet: \"0x7a1EFD33f41150E3247F14209b2a733bc6B1cb7a\",\n    leaderboard: \"0x0E5C8EA20a1EB26e5dDE5AFab5279F546dB92a79\",\n  },\n  graphql: {\n    endpoint:\n      \"https://gateway.thegraph.com/api/{key}/deployments/id/QmWFXojReSDay6LBfkvgqqsfu11QCrNwQnSa1j3DgZT17i\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/1726/betswirl-arbitrum-one/v2.2.0\",\n  },\n  defaultAffiliate: \"0xf14C79a7fA22c1f97C779F573c9bF39b6b43381c\",\n};\n\nconst avalancheData: CasinoChain = {\n  id: chainByKey.avalanche.id,\n  viemChain: chainByKey.avalanche,\n  options: {\n    pollingInterval: 500,\n  },\n  contracts: {\n    bank: \"0x8FB3110015FBCAA469ee45B64dcd2BdF544B9CFA\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xAa4D2931a9fE14c3dec8AC3f12923Cbb535C0e5f\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0xC3Dff2489F8241729B824e23eD01F986fcDf8ec3\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x6678e3B4AB2a8C8Cdd068F132C21293CcBda33cb\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xc3428E4FEb5C770Db51DCb9B1C08223B10994a89\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n    },\n    freebet: \"0x7a1EFD33f41150E3247F14209b2a733bc6B1cb7a\",\n    leaderboard: \"0x0E5C8EA20a1EB26e5dDE5AFab5279F546dB92a79\",\n  },\n  graphql: {\n    endpoint:\n      \"https://gateway.thegraph.com/api/{key}/deployments/id/QmYDbKdk8cnYn6jkCgVagLvER73N9DcNc12dttyUKB6CGy\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/1726/betswirl-avalanche/v2.2.0\",\n  },\n  defaultAffiliate: \"0x1a75280F832280Af93f588f715a5Fb4Ca7918430\",\n};\n\nconst polygonData: CasinoChain = {\n  id: chainByKey.polygon.id,\n  viemChain: chainByKey.polygon,\n  options: {\n    pollingInterval: 1000,\n  },\n  contracts: {\n    bank: \"0x8FB3110015FBCAA469ee45B64dcd2BdF544B9CFA\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xAa4D2931a9fE14c3dec8AC3f12923Cbb535C0e5f\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0xC3Dff2489F8241729B824e23eD01F986fcDf8ec3\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x6678e3B4AB2a8C8Cdd068F132C21293CcBda33cb\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xc3428E4FEb5C770Db51DCb9B1C08223B10994a89\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n    },\n    freebet: \"0x7a1EFD33f41150E3247F14209b2a733bc6B1cb7a\",\n    leaderboard: \"0x0E5C8EA20a1EB26e5dDE5AFab5279F546dB92a79\",\n  },\n  graphql: {\n    endpoint:\n      \"https://gateway.thegraph.com/api/{key}/deployments/id/QmemAqAdjsbNQUtaMmJX54yS6Zg1uGx1bohWMYd3MV3Gmn\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/1726/betswirl-polygon/v2.2.0\",\n  },\n  defaultAffiliate: \"0xfA695010bF9e757a1abCd2703259F419217aa756\",\n};\n\nconst bscData: CasinoChain = {\n  id: chainByKey.bsc.id,\n  viemChain: chainByKey.bsc,\n  options: {\n    pollingInterval: 500,\n  },\n  contracts: {\n    bank: \"0x8FB3110015FBCAA469ee45B64dcd2BdF544B9CFA\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xAa4D2931a9fE14c3dec8AC3f12923Cbb535C0e5f\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0xC3Dff2489F8241729B824e23eD01F986fcDf8ec3\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x6678e3B4AB2a8C8Cdd068F132C21293CcBda33cb\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xc3428E4FEb5C770Db51DCb9B1C08223B10994a89\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n    },\n    freebet: \"0x7a1EFD33f41150E3247F14209b2a733bc6B1cb7a\",\n    leaderboard: \"0x0E5C8EA20a1EB26e5dDE5AFab5279F546dB92a79\",\n  },\n  graphql: {\n    endpoint:\n      \"https://gateway.thegraph.com/api/{key}/deployments/id/QmZq1G2kXuRWuzTkZivDxdEyHffkbmgMSqFcBmBnfYrVSS\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/1726/betswirl-bnb-chain/v2.2.0\",\n  },\n  defaultAffiliate: \"0xCD25325a6eF20BC5dF9bceAc0cC22a48d2e8f6eF\",\n};\n\nconst baseData: CasinoChain = {\n  id: chainByKey.base.id,\n  viemChain: chainByKey.base,\n  options: {\n    pollingInterval: 200,\n  },\n  contracts: {\n    bank: \"0x8FB3110015FBCAA469ee45B64dcd2BdF544B9CFA\",\n    games: {\n      [CASINO_GAME_TYPE.DICE]: {\n        address: \"0xAa4D2931a9fE14c3dec8AC3f12923Cbb535C0e5f\",\n        abi: diceAbi,\n      },\n      [CASINO_GAME_TYPE.COINTOSS]: {\n        address: \"0xC3Dff2489F8241729B824e23eD01F986fcDf8ec3\",\n        abi: coinTossAbi,\n      },\n      [CASINO_GAME_TYPE.ROULETTE]: {\n        address: \"0x6678e3B4AB2a8C8Cdd068F132C21293CcBda33cb\",\n        abi: rouletteAbi,\n      },\n      [CASINO_GAME_TYPE.KENO]: {\n        address: \"0xc3428E4FEb5C770Db51DCb9B1C08223B10994a89\",\n        abi: kenoAbi,\n      },\n      [CASINO_GAME_TYPE.WHEEL]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.PLINKO]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n      [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: {\n        address: \"0xdec2A4f75c5fAE4a09c83975681CE1Dd1dff764b\",\n        abi: weightedGameAbi,\n      },\n    },\n    freebet: \"0x7a1EFD33f41150E3247F14209b2a733bc6B1cb7a\",\n    leaderboard: \"0x0E5C8EA20a1EB26e5dDE5AFab5279F546dB92a79\",\n  },\n  graphql: {\n    endpoint:\n      \"https://gateway.thegraph.com/api/{key}/deployments/id/QmRdCiCM3gKcrdfiSxxRkqSLvS4ApU3iHKmPMhqiUWAuLK\",\n    defaultEndpoint: \"https://api.studio.thegraph.com/query/1726/betswirl-base/v2.2.0\",\n  },\n  defaultAffiliate: \"0xBf1998e1F1cD52fBfb63e7E646bb39c091A7B70A\",\n};\n\nexport const casinoChainById = {\n  [chainByKey.arbitrumSepolia.id]: arbitrumSepoliaData,\n  [chainByKey.avalancheFuji.id]: avalancheFujiData,\n  [chainByKey.polygonAmoy.id]: polygonAmoyData,\n  [chainByKey.baseSepolia.id]: baseSepoliaData,\n  [chainByKey.arbitrum.id]: arbitrumData,\n  [chainByKey.avalanche.id]: avalancheData,\n  [chainByKey.polygon.id]: polygonData,\n  [chainByKey.bsc.id]: bscData,\n  [chainByKey.base.id]: baseData,\n} as const;\n\nexport const casinoChains = Object.values(casinoChainById) as unknown as readonly [\n  CasinoChain,\n  ...CasinoChain[],\n];\n\nexport const casinoChainIds: CasinoChainId[] = casinoChains.map(\n  (chain) => chain.viemChain.id as CasinoChainId,\n);\n\nexport const labelCasinoGameByType = {\n  [CASINO_GAME_TYPE.COINTOSS]: CASINO_GAME_LABEL_TYPE.COINTOSS,\n  [CASINO_GAME_TYPE.DICE]: CASINO_GAME_LABEL_TYPE.DICE,\n  [CASINO_GAME_TYPE.ROULETTE]: CASINO_GAME_LABEL_TYPE.ROULETTE,\n  [CASINO_GAME_TYPE.KENO]: CASINO_GAME_LABEL_TYPE.KENO,\n  [CASINO_GAME_TYPE.WHEEL]: CASINO_GAME_LABEL_TYPE.WHEEL,\n  [CASINO_GAME_TYPE.PLINKO]: CASINO_GAME_LABEL_TYPE.PLINKO,\n  [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: CASINO_GAME_LABEL_TYPE.CUSTOM_WEIGHTED_GAME,\n} as const;\n\nexport const typeBySubgraphCasinoGame = {\n  [CASINO_GAME_SUBGRAPH_TYPE.COINTOSS]: CASINO_GAME_TYPE.COINTOSS,\n  [CASINO_GAME_SUBGRAPH_TYPE.DICE]: CASINO_GAME_TYPE.DICE,\n  [CASINO_GAME_SUBGRAPH_TYPE.ROULETTE]: CASINO_GAME_TYPE.ROULETTE,\n  [CASINO_GAME_SUBGRAPH_TYPE.KENO]: CASINO_GAME_TYPE.KENO,\n  [CASINO_GAME_SUBGRAPH_TYPE.WHEEL]: CASINO_GAME_TYPE.WHEEL,\n  [CASINO_GAME_SUBGRAPH_TYPE.PLINKO]: CASINO_GAME_TYPE.PLINKO,\n  [CASINO_GAME_SUBGRAPH_TYPE.CUSTOM_WEIGHTED_GAME]: CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME,\n} as const;\n\nexport const subgraphGameByType = {\n  [CASINO_GAME_TYPE.COINTOSS]: CASINO_GAME_SUBGRAPH_TYPE.COINTOSS,\n  [CASINO_GAME_TYPE.DICE]: CASINO_GAME_SUBGRAPH_TYPE.DICE,\n  [CASINO_GAME_TYPE.ROULETTE]: CASINO_GAME_SUBGRAPH_TYPE.ROULETTE,\n  [CASINO_GAME_TYPE.KENO]: CASINO_GAME_SUBGRAPH_TYPE.KENO,\n  [CASINO_GAME_TYPE.WHEEL]: CASINO_GAME_SUBGRAPH_TYPE.WHEEL,\n  [CASINO_GAME_TYPE.PLINKO]: CASINO_GAME_SUBGRAPH_TYPE.PLINKO,\n  [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: CASINO_GAME_SUBGRAPH_TYPE.CUSTOM_WEIGHTED_GAME,\n} as const;\n\n// Could be increased in the future if we increase vrfCallbackGasExtraBet value in smart contracts\n// This limit is a static limit, you need to Math.min(static limit, dynamic limit)\nexport const maxGameBetCountByType = {\n  [CASINO_GAME_TYPE.COINTOSS]: 100,\n  [CASINO_GAME_TYPE.DICE]: 200,\n  [CASINO_GAME_TYPE.ROULETTE]: 200,\n  [CASINO_GAME_TYPE.KENO]: 125,\n  [CASINO_GAME_TYPE.WHEEL]: 100,\n  [CASINO_GAME_TYPE.PLINKO]: 100,\n  [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: 100,\n} as const;\n","import { zeroAddress } from \"viem\";\n\nexport const BP_VALUE = 10000;\nexport const DEFAULT_ADMIN_ROLE =\n  \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\nexport const DEFAULT_PAGE = 1;\nexport const DEFAULT_ITEMS_PER_PAGE = 25;\nexport const GAS_TOKEN_ADDRESS = zeroAddress;\nexport const BETSWIRL_BASE_URL = \"https://betswirl.com\";\n\nexport const BETSWIRL_API_URL = \"https://api.betswirl.com/api\";\nexport const BETWIRL_TEST_API_URL = \"https://api-dev.betswirl.com/api\";\n","import type { Hex } from \"viem\";\n\nexport const BETS_ADDRESS = \"0x94025780a1aB58868D9B2dBBB775f44b32e8E6e5\" as Hex;\n","export class BetSwirlError extends Error {\n  public code: string;\n  public context?: Record<string, any>;\n\n  constructor(message: string, code: string, context?: Record<string, any>) {\n    super(message);\n    this.name = \"BetSwirlError\";\n    this.code = code;\n    this.context = context;\n  }\n}\n","export const ERROR_CODES = {\n  CHAIN: {\n    UNSUPPORTED_CHAIN: \"UNSUPPORTED_CHAIN\",\n    UNSUPPORTED_GAME: \"UNSUPPORTED_GAME\",\n    CHAIN_ID_MISMATCH: \"CHAIN_ID_MISMATCH\",\n  },\n  TRANSACTION: {\n    TOKEN_APPROVAL_ERROR: \"TOKEN_APPROVAL_ERROR\",\n    TOKEN_METADATA_ERROR: \"TOKEN_METADATA_ERROR\",\n  },\n  READ: {\n    CHAINLINK_VRF_COST_ERROR: \"CHAINLINK_VRF_COST_ERROR\",\n  },\n  GAME: {\n    PLACE_BET_ERROR: \"PLACE_BET_ERROR\",\n    PLACE_FREEBET_ERROR: \"PLACE_FREEBET_ERROR\",\n    PLACE_BET_EVENT_NOT_FOUND: \"PLACE_BET_EVENT_NOT_FOUND\",\n    ROLL_EVENT_ERROR: \"ROLL_EVENT_ERROR\",\n    ROLL_EVENT_TIMEOUT: \"ROLL_EVENT_TIMEOUT\",\n    GET_PAUSED_ERROR: \"GET_PAUSED_ERROR\",\n    GET_TOKEN_ERROR: \"GET_TOKEN_ERROR\",\n    GET_AFFILIATE_HOUSE_EDGE_ERROR: \"GET_AFFILIATE_HOUSE_EDGE_ERROR\",\n    GET_KENO_CONFIGURATION_ERROR: \"GET_KENO_CONFIGURATION_ERROR\",\n    GET_WEIGHTED_GAME_CONFIGURATION_ERROR: \"GET_WEIGHTED_GAME_CONFIGURATION_ERROR\",\n  },\n  BANK: {\n    GET_TOKENS_ERROR: \"GET_TOKENS_ERROR\",\n    GET_BET_REQUIREMENTS_ERROR: \"GET_BET_REQUIREMENTS_ERROR\",\n  },\n  SUBGRAPH: {\n    FETCH_BET_ERROR: \"FETCH_BET_ERROR\",\n    FETCH_BETS_ERROR: \"FETCH_BETS_ERROR\",\n    FETCH_TOKENS_ERROR: \"FETCH_TOKENS_ERROR\",\n    FETCH_TOKEN_ERROR: \"FETCH_TOKEN_ERROR\",\n  },\n  WALLET: {\n    ACCOUNT_MISSING: \"ACCOUNT_MISSING\",\n    GET_TRANSACTION_RECEIPT_ERROR: \"GET_TRANSACTION_RECEIPT_ERROR\",\n  },\n  LEADERBOARD: {\n    TOO_MANY_BETS: \"TOO_MANY_BETS\",\n    GET_CLAIMABLE_AMOUNT_ERROR: \"GET_CLAIMABLE_AMOUNT_ERROR\",\n    UNSUPPORTED_CHAIN: \"UNSUPPORTED_CHAIN\",\n    NO_CLAIMABLE_AMOUNT: \"NO_CLAIMABLE_AMOUNT\",\n  },\n} as const;\n","import type { ApolloError } from \"@apollo/client/core/index.js\";\nimport { BetSwirlError } from \"./betSwirlError\";\n\nexport class ChainError extends BetSwirlError {\n  constructor(message: string, code: string, context?: Record<string, any>) {\n    super(message, code, context);\n    this.name = \"ChainError\";\n  }\n}\n\nexport class TransactionError extends BetSwirlError {\n  constructor(message: string, code: string, context?: Record<string, any>) {\n    super(message, code, context);\n    this.name = \"TransactionError\";\n  }\n}\n\nexport class ConfigurationError extends BetSwirlError {\n  constructor(message: string, code: string, context?: Record<string, any>) {\n    super(message, code, context);\n    this.name = \"ConfigurationError\";\n  }\n}\n\nexport class SubgraphError extends BetSwirlError {\n  public apolloError: ApolloError;\n  constructor(\n    message: string,\n    code: string,\n    apolloError: ApolloError,\n    context?: Record<string, any>,\n  ) {\n    const errorContext = context ? { ...context, apolloError } : { apolloError };\n    super(message, code, errorContext);\n    this.name = \"SubgraphError\";\n    this.apolloError = apolloError;\n  }\n}\n","import { casinoChainById } from \"../data/casino\";\nimport type { CasinoChainId } from \"../data/casino\";\nimport { ERROR_CODES } from \"../errors/codes\";\nimport { ChainError } from \"../errors/types\";\nimport type { BetSwirlWallet } from \"../provider\";\n\nexport function getCasinoChainId(\n  wallet: BetSwirlWallet,\n  ...overridedChainIds: Array<number | undefined>\n): CasinoChainId {\n  const chainId = overridedChainIds?.find((id) => id !== undefined) || wallet.getChainId();\n  if (chainId && !(chainId in casinoChainById)) {\n    throw new ChainError(\n      `Chain ID ${chainId} is not compatible with casino games`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_CHAIN,\n      {\n        chainId,\n        supportedChains: Object.keys(casinoChainById),\n      },\n    );\n  }\n  return chainId as CasinoChainId;\n}\n","import { type Address, zeroAddress } from \"viem\";\nimport { GAS_TOKEN_ADDRESS } from \"../constants\";\nimport { casinoChainById, chainById } from \"../data\";\nimport type { CasinoChainId, ChainId } from \"../data\";\nimport type { RawToken, Token } from \"../interfaces\";\n\ntype ChainNativeCurrency = {\n  name: string;\n  symbol: string;\n  decimals: number;\n};\nexport function chainNativeCurrencyToToken(nativeCurrency: ChainNativeCurrency): Token {\n  return {\n    symbol: nativeCurrency.symbol,\n    address: zeroAddress,\n    decimals: nativeCurrency.decimals,\n  };\n}\n\nexport function formatTokenUrl(tokenAddress: Address, chainId: ChainId) {\n  const chain = chainById[chainId];\n  return `${chain.blockExplorers?.default.url}/token/${tokenAddress}`;\n}\n\nexport function rawTokenToToken(rawToken: RawToken, casinoChainId: CasinoChainId): Token {\n  const casinoChain = casinoChainById[casinoChainId];\n  return {\n    address: rawToken.tokenAddress,\n    symbol:\n      rawToken.tokenAddress === GAS_TOKEN_ADDRESS\n        ? casinoChain.viemChain.nativeCurrency.symbol\n        : rawToken.symbol,\n    decimals: rawToken.decimals,\n  };\n}\n","import Decimal from \"decimal.js\";\nimport { formatUnits } from \"viem\";\n\n/**\n * Formats a number or string representation of a number into a more readable string format,\n * with support for large numbers and optional control over decimal places and minimum displayable values.\n *\n * @param {string | number} input - The number or string representation of a number to be formatted.\n * @param {number} [maxDecimals=2] - The maximum number of decimal places to display after the decimal point.\n * @param {number} [minValue=1e-5] - The minimum value to display. Values smaller than this threshold will be shown as \"< minValue\".\n * @param {number} [trailingDecimals=2] - The number of decimal places to retain even if they are trailing zeros.\n *\n * @returns {string} - The formatted number as a string, potentially with a suffix indicating large numbers (e.g., \"M\" for million, \"B\" for billion).\n *\n * @example\n * // Small number with default params\n * formatAmount(123.456); // returns \"123.46\"\n *\n * @example\n * // Small number with max decimals\n * formatAmount(123.456, 1); // returns \"123.5\"\n *\n * @example\n * // Small number with a min value\n * formatAmount(0.000004, 2, 1e-5); // returns \"< 0.00001\"\n *\n * @example\n * // Large number with default params\n * formatAmount(123456789); // returns \"123.46M\"\n *\n * @example\n * // Large numbers with 4 decimals & trailing zeros\n * formatAmount(123.4000, 4, 1e-5, 4); // returns \"123.4000\"\n *\n * @example\n * // Large number with 3 decimals BUT 2 traling zeros\n * formatAmount(1500000000, 3, 1e-5, 2); // returns \"1.50B\"\n */\nfunction _formatAmount(\n  input: string | number,\n  maxDecimals = 2, // Maximum decimals after the dot\n  minValue = 1e-5, // Minimum displayable value\n  trailingDecimals = 2, // Maximum decimals after the dot to keep even if they are trailing zero\n): string {\n  const amount = new Decimal(input);\n  // Check min value\n  if (amount.gt(0) && amount.lt(minValue)) {\n    return `<${minValue}`;\n  }\n\n  let divisor = new Decimal(1);\n  let suffix = \"\";\n  // If number if larger or equals to 1 million, then format it\n  if (amount.gte(1e6)) {\n    const suffixes = [\"M\", \"B\", \"T\", \"Qa\", \"Qi\", \"Sx\", \"Sp\"];\n    const thresholds = [1e6, 1e9, 1e12, 1e15, 1e18, 1e21, 1e24];\n    // Find the most appropriate suffix\n    const index = thresholds.findIndex((threshold) =>\n      amount.lt(new Decimal(threshold).times(1000)),\n    );\n    divisor = new Decimal(thresholds[index]!);\n    suffix = suffixes[index]!;\n  }\n\n  // Format the number with max decimals\n  let formattedNumber = amount.div(divisor).toFixed(maxDecimals);\n\n  // Remove some trailing zeros if needed\n  if (trailingDecimals < maxDecimals) {\n    const [integerPart, decimalPart] = formattedNumber.split(\".\");\n    if (decimalPart) {\n      const significantPart = decimalPart.slice(0, trailingDecimals);\n      // Remove all trailing zeros in the trailed part\n      const trailedPart = decimalPart.slice(trailingDecimals).replace(/0+$/, \"\");\n      formattedNumber = Number(decimalPart)\n        ? `${integerPart}.${significantPart}${trailedPart}`\n        : (integerPart ?? \"0\");\n    }\n  }\n  const finalFormattedNumber = formattedNumber + suffix;\n  // If string equals zero, returns \"0\" to avoid to have \"0.00\", etc\n  return Number(finalFormattedNumber) === 0 ? \"0\" : finalFormattedNumber;\n}\n\nexport function formatAmount(\n  amount: string | number | undefined,\n  formatType: FORMAT_TYPE = FORMAT_TYPE.STANDARD,\n) {\n  const value = amount || 0;\n  const { maxDecimals, minValue, trailingDecimals } = formatTypes[formatType];\n  return _formatAmount(value, maxDecimals, minValue, trailingDecimals);\n}\n\nexport function formatRawAmount(\n  rawAmount: bigint | undefined,\n  decimals = 18,\n  formatType: FORMAT_TYPE = FORMAT_TYPE.STANDARD,\n) {\n  const value = rawAmount || 0n;\n  const amount = formatUnits(BigInt(value), decimals);\n  return formatAmount(amount, formatType);\n}\ninterface FormatOptions {\n  maxDecimals: number;\n  minValue: number;\n  trailingDecimals: number;\n}\n\nexport enum FORMAT_TYPE {\n  MINIFY = \"minify\",\n  STANDARD = \"standard\",\n  PRECISE = \"precise\",\n  FULL_PRECISE = \"full_precise\",\n}\n\nexport const formatTypes: Record<FORMAT_TYPE, FormatOptions> = {\n  [FORMAT_TYPE.MINIFY]: {\n    maxDecimals: 2,\n    minValue: 1e-2,\n    trailingDecimals: 0,\n  },\n  [FORMAT_TYPE.STANDARD]: {\n    maxDecimals: 4,\n    minValue: 1e-4,\n    trailingDecimals: 2,\n  },\n  [FORMAT_TYPE.PRECISE]: { maxDecimals: 9, minValue: 1e-9, trailingDecimals: 2 },\n  [FORMAT_TYPE.FULL_PRECISE]: {\n    maxDecimals: 18,\n    minValue: 1e-18,\n    trailingDecimals: 3,\n  },\n};\n","import type { Hash } from \"viem\";\nimport { ERROR_CODES, TransactionError } from \"../errors\";\nimport type { BetSwirlWallet } from \"../provider\";\n\nexport async function getTransactionReceiptWithRetry(\n  wallet: BetSwirlWallet,\n  txHash: Hash,\n  retries: number[] = [\n    250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3500, 4000, 4500, 5000,\n  ],\n) {\n  let lastError: Error | undefined;\n\n  for (const delay of retries) {\n    try {\n      const receipt = wallet.getTransactionReceipt(txHash);\n      return receipt;\n    } catch (error) {\n      lastError = error as Error;\n      await new Promise((resolve) => setTimeout(resolve, delay));\n    }\n  }\n\n  throw new TransactionError(\n    \"Get transaction recript failfor all retries\",\n    ERROR_CODES.WALLET.GET_TRANSACTION_RECEIPT_ERROR,\n    {\n      hash: txHash,\n      chainId: wallet.getChainId(),\n      retries,\n    },\n  );\n}\n","import { BETSWIRL_API_URL, BETWIRL_TEST_API_URL } from \"../constants\";\n\nexport const getBetSwirlApiUrl = (isTestMode = false) => {\n  return isTestMode ? BETWIRL_TEST_API_URL : BETSWIRL_API_URL;\n};\n","import type { Address, Hash } from \"viem\";\nimport { BETSWIRL_BASE_URL } from \"../constants\";\nimport { CASINO_GAME_TYPE, type ChainId, chainById, slugById } from \"../data\";\n\nexport * from \"./chains\";\nexport * from \"./tokens\";\nexport * from \"./bet\";\nexport * from \"./format\";\nexport * from \"./wallet\";\nexport * from \"./api\";\n\nexport function bigIntFormatter(_key: string | number, value: any) {\n  if (typeof value === \"bigint\") {\n    return value.toString();\n  }\n  return value;\n}\n\nexport function truncate(fullStr: string, strLen: number, separator = \"...\") {\n  if (fullStr.length <= strLen) return fullStr;\n\n  const frontChars = Math.ceil(strLen / 2);\n  const backChars = Math.floor(strLen / 2);\n\n  return fullStr.slice(0, frontChars) + separator + fullStr.slice(fullStr.length - backChars);\n}\n\nexport function formatAccountUrl(account: Address, chainId: ChainId) {\n  const chain = chainById[chainId];\n  return `${chain.blockExplorers?.default.url}/address/${account}`;\n}\n\nexport function formatTxnUrl(tx: Hash, chainId: ChainId) {\n  const chain = chainById[chainId];\n  return `${chain.blockExplorers?.default.url}/tx/${tx}`;\n}\n\nexport function getBetSwirlBetUrl(\n  betId: bigint | string,\n  game: CASINO_GAME_TYPE,\n  chainId: ChainId,\n) {\n  return `${BETSWIRL_BASE_URL}/${slugById[chainId]}/casino/${game}/${betId.toString()}`;\n}\n\nexport function generateRandomHexColor(): string {\n  const randomRGBValue = () =>\n    Math.floor(Math.random() * 256)\n      .toString(16)\n      .padStart(2, \"0\");\n  return `#${randomRGBValue()}${randomRGBValue()}${randomRGBValue()}`;\n}\n","export type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n  ID: { input: string; output: string; }\n  String: { input: string; output: string; }\n  Boolean: { input: boolean; output: boolean; }\n  Int: { input: number; output: number; }\n  Float: { input: number; output: number; }\n  BigDecimal: { input: any; output: any; }\n  BigInt: { input: any; output: any; }\n  Bytes: { input: any; output: any; }\n  Int8: { input: any; output: any; }\n  Timestamp: { input: any; output: any; }\n};\n\nexport type Affiliate = {\n  __typename?: 'Affiliate';\n  affiliatedGameTokens: Array<AffiliateGameToken>;\n  affiliatedTokens: Array<AffiliateToken>;\n  affiliatedUserTokens: Array<AffiliateUserToken>;\n  affiliatedUsers: Array<AffiliateUser>;\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  bets: Array<Bet>;\n  firstBetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  id: Scalars['Bytes']['output'];\n  lastBetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  leaderboardAffiliatedTokens: Array<LeaderboardAffiliateToken>;\n  leaderboardAffiliatedUserTokens: Array<LeaderboardAffiliateUserToken>;\n  leaderboardAffiliatedUsers: Array<LeaderboardAffiliateUser>;\n  leaderboards?: Maybe<Array<Leaderboard>>;\n  pvpAffiliatedGameTokens: Array<PvPAffiliateGameToken>;\n  pvpAffiliatedTokens: Array<PvPAffiliateToken>;\n  pvpAffiliatedUserTokens: Array<PvPAffiliateUserToken>;\n  pvpBets: Array<PvPBet>;\n  seatCount: Scalars['BigInt']['output'];\n  totalFreebetCount: Scalars['BigInt']['output'];\n  totalLeaderboards: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n  winSeatCount: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type AffiliateAffiliatedGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateGameToken_Filter>;\n};\n\n\nexport type AffiliateAffiliatedTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateToken_Filter>;\n};\n\n\nexport type AffiliateAffiliatedUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateUserToken_Filter>;\n};\n\n\nexport type AffiliateAffiliatedUsersArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateUser_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateUser_Filter>;\n};\n\n\nexport type AffiliateBetsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Bet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<Bet_Filter>;\n};\n\n\nexport type AffiliateLeaderboardAffiliatedTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n};\n\n\nexport type AffiliateLeaderboardAffiliatedUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n};\n\n\nexport type AffiliateLeaderboardAffiliatedUsersArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUser_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateUser_Filter>;\n};\n\n\nexport type AffiliateLeaderboardsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Leaderboard_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<Leaderboard_Filter>;\n};\n\n\nexport type AffiliatePvpAffiliatedGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPAffiliateGameToken_Filter>;\n};\n\n\nexport type AffiliatePvpAffiliatedTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPAffiliateToken_Filter>;\n};\n\n\nexport type AffiliatePvpAffiliatedUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPAffiliateUserToken_Filter>;\n};\n\n\nexport type AffiliatePvpBetsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPBet_Filter>;\n};\n\nexport type AffiliateGameToken = {\n  __typename?: 'AffiliateGameToken';\n  affiliate: Affiliate;\n  affiliateToken: AffiliateToken;\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  game: Scalars['String']['output'];\n  houseEdge?: Maybe<Scalars['Int']['output']>;\n  id: Scalars['ID']['output'];\n  totalFreebetCount: Scalars['BigInt']['output'];\n  totalFreebetWagered: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type AffiliateGameToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_?: InputMaybe<AffiliateToken_Filter>;\n  affiliateToken_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<AffiliateGameToken_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  game?: InputMaybe<Scalars['String']['input']>;\n  game_contains?: InputMaybe<Scalars['String']['input']>;\n  game_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_gt?: InputMaybe<Scalars['String']['input']>;\n  game_gte?: InputMaybe<Scalars['String']['input']>;\n  game_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_lt?: InputMaybe<Scalars['String']['input']>;\n  game_lte?: InputMaybe<Scalars['String']['input']>;\n  game_not?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  houseEdge?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  houseEdge_lt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_lte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<AffiliateGameToken_Filter>>>;\n  totalFreebetCount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum AffiliateGameToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateToken = 'affiliateToken',\n  AffiliateTokenBetCount = 'affiliateToken__betCount',\n  AffiliateTokenBetTxnCount = 'affiliateToken__betTxnCount',\n  AffiliateTokenId = 'affiliateToken__id',\n  AffiliateTokenTotalEarned = 'affiliateToken__totalEarned',\n  AffiliateTokenTotalFreebetCount = 'affiliateToken__totalFreebetCount',\n  AffiliateTokenTotalFreebetWagered = 'affiliateToken__totalFreebetWagered',\n  AffiliateTokenTotalPayout = 'affiliateToken__totalPayout',\n  AffiliateTokenTotalWagered = 'affiliateToken__totalWagered',\n  AffiliateTokenWinTxnCount = 'affiliateToken__winTxnCount',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Game = 'game',\n  HouseEdge = 'houseEdge',\n  Id = 'id',\n  TotalFreebetCount = 'totalFreebetCount',\n  TotalFreebetWagered = 'totalFreebetWagered',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type AffiliateToken = {\n  __typename?: 'AffiliateToken';\n  affiliate: Affiliate;\n  affiliateGameTokens: Array<AffiliateGameToken>;\n  affiliateUserTokens: Array<AffiliateUserToken>;\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  id: Scalars['ID']['output'];\n  token: Token;\n  totalEarned: Scalars['BigInt']['output'];\n  totalFreebetCount: Scalars['BigInt']['output'];\n  totalFreebetWagered: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type AffiliateTokenAffiliateGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateGameToken_Filter>;\n};\n\n\nexport type AffiliateTokenAffiliateUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateUserToken_Filter>;\n};\n\nexport type AffiliateToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateGameTokens_?: InputMaybe<AffiliateGameToken_Filter>;\n  affiliateUserTokens_?: InputMaybe<AffiliateUserToken_Filter>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<AffiliateToken_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<AffiliateToken_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<Token_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalEarned?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalEarned_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum AffiliateToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateGameTokens = 'affiliateGameTokens',\n  AffiliateUserTokens = 'affiliateUserTokens',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Id = 'id',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenBalancesDayDataLength = 'token__balancesDayDataLength',\n  TokenBankAmount = 'token__bankAmount',\n  TokenBetCount = 'token__betCount',\n  TokenBetTxnCount = 'token__betTxnCount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenPartnerAmount = 'token__partnerAmount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUserCount = 'token__userCount',\n  TokenWinTxnCount = 'token__winTxnCount',\n  TotalEarned = 'totalEarned',\n  TotalFreebetCount = 'totalFreebetCount',\n  TotalFreebetWagered = 'totalFreebetWagered',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type AffiliateUser = {\n  __typename?: 'AffiliateUser';\n  affiliate: Affiliate;\n  affiliateUserTokens: Array<AffiliateUserToken>;\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  firstBetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  firstFreebetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  id: Scalars['ID']['output'];\n  isFirstBetAFreebet: Scalars['Boolean']['output'];\n  lastBetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  lastFreebetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  pvpAffiliateUserTokens: Array<PvPAffiliateUserToken>;\n  seatCount: Scalars['BigInt']['output'];\n  totalFreebetCount: Scalars['BigInt']['output'];\n  user: User;\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n  winSeatCount: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type AffiliateUserAffiliateUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<AffiliateUserToken_Filter>;\n};\n\n\nexport type AffiliateUserPvpAffiliateUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPAffiliateUserToken_Filter>;\n};\n\nexport type AffiliateUserToken = {\n  __typename?: 'AffiliateUserToken';\n  affiliate: Affiliate;\n  affiliateToken: AffiliateToken;\n  affiliateUser: AffiliateUser;\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  id: Scalars['ID']['output'];\n  totalFreebetCount: Scalars['BigInt']['output'];\n  totalFreebetWagered: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  totalWageredAfterFirstFreebet: Scalars['BigInt']['output'];\n  totalWageredAfterLastFreebet: Scalars['BigInt']['output'];\n  totalWageredBeforeFirstFreebet: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type AffiliateUserToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_?: InputMaybe<AffiliateToken_Filter>;\n  affiliateToken_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_?: InputMaybe<AffiliateUser_Filter>;\n  affiliateUser_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateUser_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateUser_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<AffiliateUserToken_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<AffiliateUserToken_Filter>>>;\n  totalFreebetCount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWageredAfterFirstFreebet_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterFirstFreebet_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWageredAfterLastFreebet?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterLastFreebet_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterLastFreebet_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterLastFreebet_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWageredAfterLastFreebet_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterLastFreebet_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterLastFreebet_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredAfterLastFreebet_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWageredBeforeFirstFreebet?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredBeforeFirstFreebet_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredBeforeFirstFreebet_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredBeforeFirstFreebet_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWageredBeforeFirstFreebet_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredBeforeFirstFreebet_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredBeforeFirstFreebet_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWageredBeforeFirstFreebet_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum AffiliateUserToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateToken = 'affiliateToken',\n  AffiliateTokenBetCount = 'affiliateToken__betCount',\n  AffiliateTokenBetTxnCount = 'affiliateToken__betTxnCount',\n  AffiliateTokenId = 'affiliateToken__id',\n  AffiliateTokenTotalEarned = 'affiliateToken__totalEarned',\n  AffiliateTokenTotalFreebetCount = 'affiliateToken__totalFreebetCount',\n  AffiliateTokenTotalFreebetWagered = 'affiliateToken__totalFreebetWagered',\n  AffiliateTokenTotalPayout = 'affiliateToken__totalPayout',\n  AffiliateTokenTotalWagered = 'affiliateToken__totalWagered',\n  AffiliateTokenWinTxnCount = 'affiliateToken__winTxnCount',\n  AffiliateUser = 'affiliateUser',\n  AffiliateUserBetCount = 'affiliateUser__betCount',\n  AffiliateUserBetTxnCount = 'affiliateUser__betTxnCount',\n  AffiliateUserFirstBetTimestamp = 'affiliateUser__firstBetTimestamp',\n  AffiliateUserFirstFreebetTimestamp = 'affiliateUser__firstFreebetTimestamp',\n  AffiliateUserId = 'affiliateUser__id',\n  AffiliateUserIsFirstBetAFreebet = 'affiliateUser__isFirstBetAFreebet',\n  AffiliateUserLastBetTimestamp = 'affiliateUser__lastBetTimestamp',\n  AffiliateUserLastFreebetTimestamp = 'affiliateUser__lastFreebetTimestamp',\n  AffiliateUserSeatCount = 'affiliateUser__seatCount',\n  AffiliateUserTotalFreebetCount = 'affiliateUser__totalFreebetCount',\n  AffiliateUserWagerAndJoinTxnCount = 'affiliateUser__wagerAndJoinTxnCount',\n  AffiliateUserWinSeatCount = 'affiliateUser__winSeatCount',\n  AffiliateUserWinTxnCount = 'affiliateUser__winTxnCount',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Id = 'id',\n  TotalFreebetCount = 'totalFreebetCount',\n  TotalFreebetWagered = 'totalFreebetWagered',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  TotalWageredAfterFirstFreebet = 'totalWageredAfterFirstFreebet',\n  TotalWageredAfterLastFreebet = 'totalWageredAfterLastFreebet',\n  TotalWageredBeforeFirstFreebet = 'totalWageredBeforeFirstFreebet',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type AffiliateUser_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateUserTokens_?: InputMaybe<AffiliateUserToken_Filter>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<AffiliateUser_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstBetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstBetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstFreebetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  firstFreebetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstFreebetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstFreebetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstFreebetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstFreebetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstFreebetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  firstFreebetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  isFirstBetAFreebet?: InputMaybe<Scalars['Boolean']['input']>;\n  isFirstBetAFreebet_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  isFirstBetAFreebet_not?: InputMaybe<Scalars['Boolean']['input']>;\n  isFirstBetAFreebet_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  lastBetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  lastBetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  lastFreebetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  lastFreebetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastFreebetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastFreebetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  lastFreebetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastFreebetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastFreebetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  lastFreebetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<AffiliateUser_Filter>>>;\n  pvpAffiliateUserTokens_?: InputMaybe<PvPAffiliateUserToken_Filter>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum AffiliateUser_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateUserTokens = 'affiliateUserTokens',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  FirstBetTimestamp = 'firstBetTimestamp',\n  FirstFreebetTimestamp = 'firstFreebetTimestamp',\n  Id = 'id',\n  IsFirstBetAFreebet = 'isFirstBetAFreebet',\n  LastBetTimestamp = 'lastBetTimestamp',\n  LastFreebetTimestamp = 'lastFreebetTimestamp',\n  PvpAffiliateUserTokens = 'pvpAffiliateUserTokens',\n  SeatCount = 'seatCount',\n  TotalFreebetCount = 'totalFreebetCount',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount',\n  WinSeatCount = 'winSeatCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type Affiliate_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliatedGameTokens_?: InputMaybe<AffiliateGameToken_Filter>;\n  affiliatedTokens_?: InputMaybe<AffiliateToken_Filter>;\n  affiliatedUserTokens_?: InputMaybe<AffiliateUserToken_Filter>;\n  affiliatedUsers_?: InputMaybe<AffiliateUser_Filter>;\n  and?: InputMaybe<Array<InputMaybe<Affiliate_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  bets_?: InputMaybe<Bet_Filter>;\n  firstBetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstBetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  lastBetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  lastBetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  leaderboardAffiliatedTokens_?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n  leaderboardAffiliatedUserTokens_?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n  leaderboardAffiliatedUsers_?: InputMaybe<LeaderboardAffiliateUser_Filter>;\n  leaderboards_?: InputMaybe<Leaderboard_Filter>;\n  or?: InputMaybe<Array<InputMaybe<Affiliate_Filter>>>;\n  pvpAffiliatedGameTokens_?: InputMaybe<PvPAffiliateGameToken_Filter>;\n  pvpAffiliatedTokens_?: InputMaybe<PvPAffiliateToken_Filter>;\n  pvpAffiliatedUserTokens_?: InputMaybe<PvPAffiliateUserToken_Filter>;\n  pvpBets_?: InputMaybe<PvPBet_Filter>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalFreebetCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalFreebetCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboards?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboards_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum Affiliate_OrderBy {\n  AffiliatedGameTokens = 'affiliatedGameTokens',\n  AffiliatedTokens = 'affiliatedTokens',\n  AffiliatedUserTokens = 'affiliatedUserTokens',\n  AffiliatedUsers = 'affiliatedUsers',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Bets = 'bets',\n  FirstBetTimestamp = 'firstBetTimestamp',\n  Id = 'id',\n  LastBetTimestamp = 'lastBetTimestamp',\n  LeaderboardAffiliatedTokens = 'leaderboardAffiliatedTokens',\n  LeaderboardAffiliatedUserTokens = 'leaderboardAffiliatedUserTokens',\n  LeaderboardAffiliatedUsers = 'leaderboardAffiliatedUsers',\n  Leaderboards = 'leaderboards',\n  PvpAffiliatedGameTokens = 'pvpAffiliatedGameTokens',\n  PvpAffiliatedTokens = 'pvpAffiliatedTokens',\n  PvpAffiliatedUserTokens = 'pvpAffiliatedUserTokens',\n  PvpBets = 'pvpBets',\n  SeatCount = 'seatCount',\n  TotalFreebetCount = 'totalFreebetCount',\n  TotalLeaderboards = 'totalLeaderboards',\n  UserCount = 'userCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount',\n  WinSeatCount = 'winSeatCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport enum Aggregation_Interval {\n  Day = 'day',\n  Hour = 'hour'\n}\n\nexport type Bet = {\n  __typename?: 'Bet';\n  affiliate?: Maybe<Affiliate>;\n  betAmount?: Maybe<Scalars['BigInt']['output']>;\n  betCount: Scalars['BigInt']['output'];\n  betTimestamp: Scalars['BigInt']['output'];\n  betTxnHash: Scalars['Bytes']['output'];\n  chargedVRFFees: Scalars['BigInt']['output'];\n  consumedLinkVRFFees?: Maybe<Scalars['BigInt']['output']>;\n  consumedNativeVRFFees?: Maybe<Scalars['BigInt']['output']>;\n  freebetId?: Maybe<Scalars['BigInt']['output']>;\n  gameAddress: Scalars['Bytes']['output'];\n  gameId: Scalars['String']['output'];\n  gameToken: GameToken;\n  houseEdge: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  inputValue: Scalars['BigInt']['output'];\n  isFreebet: Scalars['Boolean']['output'];\n  kenoBet?: Maybe<KenoBet>;\n  payout?: Maybe<Scalars['BigInt']['output']>;\n  payoutMultiplier?: Maybe<Scalars['BigDecimal']['output']>;\n  refunded: Scalars['Boolean']['output'];\n  resolved: Scalars['Boolean']['output'];\n  rollTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  rollTxnHash?: Maybe<Scalars['Bytes']['output']>;\n  rolled?: Maybe<Array<Scalars['BigInt']['output']>>;\n  stopGain: Scalars['BigInt']['output'];\n  stopLoss: Scalars['BigInt']['output'];\n  totalBetAmount?: Maybe<Scalars['BigInt']['output']>;\n  user: User;\n  weightedGameBet?: Maybe<WeightedGameBet>;\n};\n\nexport type Bet_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<Bet_Filter>>>;\n  betAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnHash?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  betTxnHash_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_not?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  betTxnHash_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  chargedVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  chargedVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  freebetId?: InputMaybe<Scalars['BigInt']['input']>;\n  freebetId_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  freebetId_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  freebetId_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  freebetId_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  freebetId_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  freebetId_not?: InputMaybe<Scalars['BigInt']['input']>;\n  freebetId_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  gameAddress?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  gameAddress_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_not?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  gameId?: InputMaybe<Scalars['String']['input']>;\n  gameId_contains?: InputMaybe<Scalars['String']['input']>;\n  gameId_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_gt?: InputMaybe<Scalars['String']['input']>;\n  gameId_gte?: InputMaybe<Scalars['String']['input']>;\n  gameId_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameId_lt?: InputMaybe<Scalars['String']['input']>;\n  gameId_lte?: InputMaybe<Scalars['String']['input']>;\n  gameId_not?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameId_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken?: InputMaybe<Scalars['String']['input']>;\n  gameToken_?: InputMaybe<GameToken_Filter>;\n  gameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  houseEdge?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  houseEdge_lt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_lte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  inputValue?: InputMaybe<Scalars['BigInt']['input']>;\n  inputValue_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  inputValue_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  inputValue_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  inputValue_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  inputValue_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  inputValue_not?: InputMaybe<Scalars['BigInt']['input']>;\n  inputValue_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  isFreebet?: InputMaybe<Scalars['Boolean']['input']>;\n  isFreebet_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  isFreebet_not?: InputMaybe<Scalars['Boolean']['input']>;\n  isFreebet_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  kenoBet_?: InputMaybe<KenoBet_Filter>;\n  or?: InputMaybe<Array<InputMaybe<Bet_Filter>>>;\n  payout?: InputMaybe<Scalars['BigInt']['input']>;\n  payoutMultiplier?: InputMaybe<Scalars['BigDecimal']['input']>;\n  payoutMultiplier_gt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  payoutMultiplier_gte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  payoutMultiplier_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  payoutMultiplier_lt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  payoutMultiplier_lte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  payoutMultiplier_not?: InputMaybe<Scalars['BigDecimal']['input']>;\n  payoutMultiplier_not_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  payout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  payout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  refunded?: InputMaybe<Scalars['Boolean']['input']>;\n  refunded_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  refunded_not?: InputMaybe<Scalars['Boolean']['input']>;\n  refunded_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  resolved?: InputMaybe<Scalars['Boolean']['input']>;\n  resolved_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  resolved_not?: InputMaybe<Scalars['Boolean']['input']>;\n  resolved_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  rollTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rollTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rollTxnHash?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  rollTxnHash_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_not?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  rolled?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rolled_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rolled_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rolled_not?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rolled_not_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rolled_not_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  stopGain?: InputMaybe<Scalars['BigInt']['input']>;\n  stopGain_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  stopGain_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  stopGain_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  stopGain_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  stopGain_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  stopGain_not?: InputMaybe<Scalars['BigInt']['input']>;\n  stopGain_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  stopLoss?: InputMaybe<Scalars['BigInt']['input']>;\n  stopLoss_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  stopLoss_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  stopLoss_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  stopLoss_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  stopLoss_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  stopLoss_not?: InputMaybe<Scalars['BigInt']['input']>;\n  stopLoss_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalBetAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalBetAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalBetAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalBetAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalBetAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalBetAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalBetAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalBetAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  weightedGameBet_?: InputMaybe<WeightedGameBet_Filter>;\n};\n\nexport enum Bet_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  BetAmount = 'betAmount',\n  BetCount = 'betCount',\n  BetTimestamp = 'betTimestamp',\n  BetTxnHash = 'betTxnHash',\n  ChargedVrfFees = 'chargedVRFFees',\n  ConsumedLinkVrfFees = 'consumedLinkVRFFees',\n  ConsumedNativeVrfFees = 'consumedNativeVRFFees',\n  FreebetId = 'freebetId',\n  GameAddress = 'gameAddress',\n  GameId = 'gameId',\n  GameToken = 'gameToken',\n  GameTokenBetCount = 'gameToken__betCount',\n  GameTokenBetTxnCount = 'gameToken__betTxnCount',\n  GameTokenDayDataLength = 'gameToken__dayDataLength',\n  GameTokenGame = 'gameToken__game',\n  GameTokenHouseEdge = 'gameToken__houseEdge',\n  GameTokenId = 'gameToken__id',\n  GameTokenTotalPayout = 'gameToken__totalPayout',\n  GameTokenTotalWagered = 'gameToken__totalWagered',\n  GameTokenUserCount = 'gameToken__userCount',\n  GameTokenWinTxnCount = 'gameToken__winTxnCount',\n  HouseEdge = 'houseEdge',\n  Id = 'id',\n  InputValue = 'inputValue',\n  IsFreebet = 'isFreebet',\n  KenoBet = 'kenoBet',\n  KenoBetId = 'kenoBet__id',\n  Payout = 'payout',\n  PayoutMultiplier = 'payoutMultiplier',\n  Refunded = 'refunded',\n  Resolved = 'resolved',\n  RollTimestamp = 'rollTimestamp',\n  RollTxnHash = 'rollTxnHash',\n  Rolled = 'rolled',\n  StopGain = 'stopGain',\n  StopLoss = 'stopLoss',\n  TotalBetAmount = 'totalBetAmount',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  WeightedGameBet = 'weightedGameBet',\n  WeightedGameBetId = 'weightedGameBet__id'\n}\n\nexport type BlockChangedFilter = {\n  number_gte: Scalars['Int']['input'];\n};\n\nexport type Block_Height = {\n  hash?: InputMaybe<Scalars['Bytes']['input']>;\n  number?: InputMaybe<Scalars['Int']['input']>;\n  number_gte?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CoinTossBattleBet = {\n  __typename?: 'CoinTossBattleBet';\n  bet?: Maybe<PvPBet>;\n  face: Scalars['Boolean']['output'];\n  id: Scalars['ID']['output'];\n  rolled?: Maybe<Scalars['Boolean']['output']>;\n  winner?: Maybe<Scalars['Bytes']['output']>;\n};\n\nexport type CoinTossBattleBet_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<CoinTossBattleBet_Filter>>>;\n  bet?: InputMaybe<Scalars['String']['input']>;\n  bet_?: InputMaybe<PvPBet_Filter>;\n  bet_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_gt?: InputMaybe<Scalars['String']['input']>;\n  bet_gte?: InputMaybe<Scalars['String']['input']>;\n  bet_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_lt?: InputMaybe<Scalars['String']['input']>;\n  bet_lte?: InputMaybe<Scalars['String']['input']>;\n  bet_not?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  face?: InputMaybe<Scalars['Boolean']['input']>;\n  face_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  face_not?: InputMaybe<Scalars['Boolean']['input']>;\n  face_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<CoinTossBattleBet_Filter>>>;\n  rolled?: InputMaybe<Scalars['Boolean']['input']>;\n  rolled_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  rolled_not?: InputMaybe<Scalars['Boolean']['input']>;\n  rolled_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  winner?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  winner_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_not?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  winner_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n};\n\nexport enum CoinTossBattleBet_OrderBy {\n  Bet = 'bet',\n  BetBetAmount = 'bet__betAmount',\n  BetBetId = 'bet__betId',\n  BetBetLaunchedTimestamp = 'bet__betLaunchedTimestamp',\n  BetBetLaunchedTxnHash = 'bet__betLaunchedTxnHash',\n  BetBetTimestamp = 'bet__betTimestamp',\n  BetCanceled = 'bet__canceled',\n  BetChargedVrfFees = 'bet__chargedVRFFees',\n  BetConsumedLinkVrfFees = 'bet__consumedLinkVRFFees',\n  BetConsumedNativeVrfFees = 'bet__consumedNativeVRFFees',\n  BetGameAddress = 'bet__gameAddress',\n  BetGameId = 'bet__gameId',\n  BetHouseEdge = 'bet__houseEdge',\n  BetId = 'bet__id',\n  BetPayout = 'bet__payout',\n  BetPot = 'bet__pot',\n  BetRefunded = 'bet__refunded',\n  BetResolved = 'bet__resolved',\n  BetRollTimestamp = 'bet__rollTimestamp',\n  BetRollTxnHash = 'bet__rollTxnHash',\n  Face = 'face',\n  Id = 'id',\n  Rolled = 'rolled',\n  Winner = 'winner'\n}\n\nexport type GameToken = {\n  __typename?: 'GameToken';\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  dayData?: Maybe<Array<GameTokenDayData>>;\n  dayDataLength: Scalars['Int']['output'];\n  game: Scalars['String']['output'];\n  houseEdge: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  token: Token;\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type GameTokenDayDataArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<GameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<GameTokenDayData_Filter>;\n};\n\nexport type GameTokenDayData = {\n  __typename?: 'GameTokenDayData';\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  consumedLinkVRFFees: Scalars['BigInt']['output'];\n  consumedNativeVRFFees: Scalars['BigInt']['output'];\n  date: Scalars['Int']['output'];\n  gameToken: GameToken;\n  id: Scalars['ID']['output'];\n  totalChargedVRFFees: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type GameTokenDayData_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<GameTokenDayData_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  date?: InputMaybe<Scalars['Int']['input']>;\n  date_gt?: InputMaybe<Scalars['Int']['input']>;\n  date_gte?: InputMaybe<Scalars['Int']['input']>;\n  date_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  date_lt?: InputMaybe<Scalars['Int']['input']>;\n  date_lte?: InputMaybe<Scalars['Int']['input']>;\n  date_not?: InputMaybe<Scalars['Int']['input']>;\n  date_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  gameToken?: InputMaybe<Scalars['String']['input']>;\n  gameToken_?: InputMaybe<GameToken_Filter>;\n  gameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<GameTokenDayData_Filter>>>;\n  totalChargedVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalChargedVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum GameTokenDayData_OrderBy {\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  ConsumedLinkVrfFees = 'consumedLinkVRFFees',\n  ConsumedNativeVrfFees = 'consumedNativeVRFFees',\n  Date = 'date',\n  GameToken = 'gameToken',\n  GameTokenBetCount = 'gameToken__betCount',\n  GameTokenBetTxnCount = 'gameToken__betTxnCount',\n  GameTokenDayDataLength = 'gameToken__dayDataLength',\n  GameTokenGame = 'gameToken__game',\n  GameTokenHouseEdge = 'gameToken__houseEdge',\n  GameTokenId = 'gameToken__id',\n  GameTokenTotalPayout = 'gameToken__totalPayout',\n  GameTokenTotalWagered = 'gameToken__totalWagered',\n  GameTokenUserCount = 'gameToken__userCount',\n  GameTokenWinTxnCount = 'gameToken__winTxnCount',\n  Id = 'id',\n  TotalChargedVrfFees = 'totalChargedVRFFees',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  UserCount = 'userCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type GameToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<GameToken_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  dayDataLength?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayDataLength_lt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_lte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayData_?: InputMaybe<GameTokenDayData_Filter>;\n  game?: InputMaybe<Scalars['String']['input']>;\n  game_contains?: InputMaybe<Scalars['String']['input']>;\n  game_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_gt?: InputMaybe<Scalars['String']['input']>;\n  game_gte?: InputMaybe<Scalars['String']['input']>;\n  game_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_lt?: InputMaybe<Scalars['String']['input']>;\n  game_lte?: InputMaybe<Scalars['String']['input']>;\n  game_not?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  houseEdge?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  houseEdge_lt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_lte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<GameToken_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<Token_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum GameToken_OrderBy {\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  DayData = 'dayData',\n  DayDataLength = 'dayDataLength',\n  Game = 'game',\n  HouseEdge = 'houseEdge',\n  Id = 'id',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenBalancesDayDataLength = 'token__balancesDayDataLength',\n  TokenBankAmount = 'token__bankAmount',\n  TokenBetCount = 'token__betCount',\n  TokenBetTxnCount = 'token__betTxnCount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenPartnerAmount = 'token__partnerAmount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUserCount = 'token__userCount',\n  TokenWinTxnCount = 'token__winTxnCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  UserCount = 'userCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type KenoBet = {\n  __typename?: 'KenoBet';\n  bet: Bet;\n  config: KenoConfig;\n  id: Scalars['ID']['output'];\n};\n\nexport type KenoBet_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<KenoBet_Filter>>>;\n  bet?: InputMaybe<Scalars['String']['input']>;\n  bet_?: InputMaybe<Bet_Filter>;\n  bet_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_gt?: InputMaybe<Scalars['String']['input']>;\n  bet_gte?: InputMaybe<Scalars['String']['input']>;\n  bet_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_lt?: InputMaybe<Scalars['String']['input']>;\n  bet_lte?: InputMaybe<Scalars['String']['input']>;\n  bet_not?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config?: InputMaybe<Scalars['String']['input']>;\n  config_?: InputMaybe<KenoConfig_Filter>;\n  config_contains?: InputMaybe<Scalars['String']['input']>;\n  config_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_ends_with?: InputMaybe<Scalars['String']['input']>;\n  config_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_gt?: InputMaybe<Scalars['String']['input']>;\n  config_gte?: InputMaybe<Scalars['String']['input']>;\n  config_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  config_lt?: InputMaybe<Scalars['String']['input']>;\n  config_lte?: InputMaybe<Scalars['String']['input']>;\n  config_not?: InputMaybe<Scalars['String']['input']>;\n  config_not_contains?: InputMaybe<Scalars['String']['input']>;\n  config_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  config_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  config_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  config_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_starts_with?: InputMaybe<Scalars['String']['input']>;\n  config_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<KenoBet_Filter>>>;\n};\n\nexport enum KenoBet_OrderBy {\n  Bet = 'bet',\n  BetBetAmount = 'bet__betAmount',\n  BetBetCount = 'bet__betCount',\n  BetBetTimestamp = 'bet__betTimestamp',\n  BetBetTxnHash = 'bet__betTxnHash',\n  BetChargedVrfFees = 'bet__chargedVRFFees',\n  BetConsumedLinkVrfFees = 'bet__consumedLinkVRFFees',\n  BetConsumedNativeVrfFees = 'bet__consumedNativeVRFFees',\n  BetFreebetId = 'bet__freebetId',\n  BetGameAddress = 'bet__gameAddress',\n  BetGameId = 'bet__gameId',\n  BetHouseEdge = 'bet__houseEdge',\n  BetId = 'bet__id',\n  BetInputValue = 'bet__inputValue',\n  BetIsFreebet = 'bet__isFreebet',\n  BetPayout = 'bet__payout',\n  BetPayoutMultiplier = 'bet__payoutMultiplier',\n  BetRefunded = 'bet__refunded',\n  BetResolved = 'bet__resolved',\n  BetRollTimestamp = 'bet__rollTimestamp',\n  BetRollTxnHash = 'bet__rollTxnHash',\n  BetStopGain = 'bet__stopGain',\n  BetStopLoss = 'bet__stopLoss',\n  BetTotalBetAmount = 'bet__totalBetAmount',\n  Config = 'config',\n  ConfigBiggestNumber = 'config__biggestNumber',\n  ConfigCreationTimestamp = 'config__creationTimestamp',\n  ConfigId = 'config__id',\n  ConfigMaxNumbers = 'config__maxNumbers',\n  Id = 'id'\n}\n\nexport type KenoConfig = {\n  __typename?: 'KenoConfig';\n  biggestNumber: Scalars['BigInt']['output'];\n  configHub: KenoConfigHub;\n  creationTimestamp: Scalars['BigInt']['output'];\n  id: Scalars['ID']['output'];\n  maxNumbers: Scalars['BigInt']['output'];\n};\n\nexport type KenoConfigHub = {\n  __typename?: 'KenoConfigHub';\n  configCount: Scalars['Int']['output'];\n  configs: Array<KenoConfig>;\n  id: Scalars['Bytes']['output'];\n  token: Token;\n};\n\n\nexport type KenoConfigHubConfigsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<KenoConfig_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<KenoConfig_Filter>;\n};\n\nexport type KenoConfigHub_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<KenoConfigHub_Filter>>>;\n  configCount?: InputMaybe<Scalars['Int']['input']>;\n  configCount_gt?: InputMaybe<Scalars['Int']['input']>;\n  configCount_gte?: InputMaybe<Scalars['Int']['input']>;\n  configCount_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  configCount_lt?: InputMaybe<Scalars['Int']['input']>;\n  configCount_lte?: InputMaybe<Scalars['Int']['input']>;\n  configCount_not?: InputMaybe<Scalars['Int']['input']>;\n  configCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  configs_?: InputMaybe<KenoConfig_Filter>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<KenoConfigHub_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<Token_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum KenoConfigHub_OrderBy {\n  ConfigCount = 'configCount',\n  Configs = 'configs',\n  Id = 'id',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenBalancesDayDataLength = 'token__balancesDayDataLength',\n  TokenBankAmount = 'token__bankAmount',\n  TokenBetCount = 'token__betCount',\n  TokenBetTxnCount = 'token__betTxnCount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenPartnerAmount = 'token__partnerAmount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUserCount = 'token__userCount',\n  TokenWinTxnCount = 'token__winTxnCount'\n}\n\nexport type KenoConfig_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<KenoConfig_Filter>>>;\n  biggestNumber?: InputMaybe<Scalars['BigInt']['input']>;\n  biggestNumber_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  biggestNumber_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  biggestNumber_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  biggestNumber_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  biggestNumber_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  biggestNumber_not?: InputMaybe<Scalars['BigInt']['input']>;\n  biggestNumber_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  configHub?: InputMaybe<Scalars['String']['input']>;\n  configHub_?: InputMaybe<KenoConfigHub_Filter>;\n  configHub_contains?: InputMaybe<Scalars['String']['input']>;\n  configHub_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  configHub_ends_with?: InputMaybe<Scalars['String']['input']>;\n  configHub_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  configHub_gt?: InputMaybe<Scalars['String']['input']>;\n  configHub_gte?: InputMaybe<Scalars['String']['input']>;\n  configHub_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  configHub_lt?: InputMaybe<Scalars['String']['input']>;\n  configHub_lte?: InputMaybe<Scalars['String']['input']>;\n  configHub_not?: InputMaybe<Scalars['String']['input']>;\n  configHub_not_contains?: InputMaybe<Scalars['String']['input']>;\n  configHub_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  configHub_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  configHub_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  configHub_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  configHub_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  configHub_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  configHub_starts_with?: InputMaybe<Scalars['String']['input']>;\n  configHub_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  creationTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  creationTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  maxNumbers?: InputMaybe<Scalars['BigInt']['input']>;\n  maxNumbers_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  maxNumbers_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  maxNumbers_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  maxNumbers_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  maxNumbers_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  maxNumbers_not?: InputMaybe<Scalars['BigInt']['input']>;\n  maxNumbers_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<KenoConfig_Filter>>>;\n};\n\nexport enum KenoConfig_OrderBy {\n  BiggestNumber = 'biggestNumber',\n  ConfigHub = 'configHub',\n  ConfigHubConfigCount = 'configHub__configCount',\n  ConfigHubId = 'configHub__id',\n  CreationTimestamp = 'creationTimestamp',\n  Id = 'id',\n  MaxNumbers = 'maxNumbers'\n}\n\nexport type Leaderboard = {\n  __typename?: 'Leaderboard';\n  affiliate: Affiliate;\n  claimedShares: Array<Scalars['BigInt']['output']>;\n  endTimestamp: Scalars['BigInt']['output'];\n  expirationTime: Scalars['BigInt']['output'];\n  id: Scalars['ID']['output'];\n  leaderboardAffiliateToken: LeaderboardAffiliateToken;\n  shares: Array<Scalars['BigInt']['output']>;\n  status: LeaderboardStatus;\n  token: LeaderboardToken;\n  totalClaimedShares: Scalars['BigInt']['output'];\n  totalShares: Scalars['BigInt']['output'];\n  totalUnclaimedShares: Scalars['BigInt']['output'];\n  winners?: Maybe<Array<Scalars['Bytes']['output']>>;\n};\n\nexport type LeaderboardAffiliateToken = {\n  __typename?: 'LeaderboardAffiliateToken';\n  affiliate: Affiliate;\n  id: Scalars['ID']['output'];\n  leaderboardAffiliateUserTokens?: Maybe<Array<LeaderboardAffiliateUserToken>>;\n  leaderboards?: Maybe<Array<Leaderboard>>;\n  token: LeaderboardToken;\n  totalLeaderboards: Scalars['BigInt']['output'];\n  totalSharesClaimed: Scalars['BigInt']['output'];\n  totalSharesDistributed: Scalars['BigInt']['output'];\n};\n\n\nexport type LeaderboardAffiliateTokenLeaderboardAffiliateUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n};\n\n\nexport type LeaderboardAffiliateTokenLeaderboardsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Leaderboard_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<Leaderboard_Filter>;\n};\n\nexport type LeaderboardAffiliateToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<LeaderboardAffiliateToken_Filter>>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  leaderboardAffiliateUserTokens_?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n  leaderboards_?: InputMaybe<Leaderboard_Filter>;\n  or?: InputMaybe<Array<InputMaybe<LeaderboardAffiliateToken_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<LeaderboardToken_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalLeaderboards?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboards_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboards_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalSharesClaimed?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesClaimed_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesClaimed_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesClaimed_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalSharesClaimed_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesClaimed_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesClaimed_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesClaimed_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalSharesDistributed?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesDistributed_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesDistributed_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesDistributed_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalSharesDistributed_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesDistributed_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesDistributed_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalSharesDistributed_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum LeaderboardAffiliateToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  Id = 'id',\n  LeaderboardAffiliateUserTokens = 'leaderboardAffiliateUserTokens',\n  Leaderboards = 'leaderboards',\n  Token = 'token',\n  TokenDecimals = 'token__decimals',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenSymbol = 'token__symbol',\n  TotalLeaderboards = 'totalLeaderboards',\n  TotalSharesClaimed = 'totalSharesClaimed',\n  TotalSharesDistributed = 'totalSharesDistributed'\n}\n\nexport type LeaderboardAffiliateUser = {\n  __typename?: 'LeaderboardAffiliateUser';\n  affiliate: Affiliate;\n  id: Scalars['ID']['output'];\n  leaderboardAffiliateUserTokens?: Maybe<Array<LeaderboardAffiliateUserToken>>;\n  totalLeaderboardsWonCount: Scalars['BigInt']['output'];\n  user: User;\n};\n\n\nexport type LeaderboardAffiliateUserLeaderboardAffiliateUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n};\n\nexport type LeaderboardAffiliateUserToken = {\n  __typename?: 'LeaderboardAffiliateUserToken';\n  affiliate: Affiliate;\n  id: Scalars['ID']['output'];\n  leaderboardAffiliateToken: LeaderboardAffiliateToken;\n  leaderboardAffiliateUser: LeaderboardAffiliateUser;\n  totalLeaderboardSharesClaimed: Scalars['BigInt']['output'];\n  totalLeaderboardSharesWon: Scalars['BigInt']['output'];\n};\n\nexport type LeaderboardAffiliateUserToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<LeaderboardAffiliateUserToken_Filter>>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  leaderboardAffiliateToken?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n  leaderboardAffiliateToken_contains?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_gt?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_gte?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  leaderboardAffiliateToken_lt?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_lte?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  leaderboardAffiliateToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_?: InputMaybe<LeaderboardAffiliateUser_Filter>;\n  leaderboardAffiliateUser_contains?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_ends_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_gt?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_gte?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  leaderboardAffiliateUser_lt?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_lte?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not_contains?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  leaderboardAffiliateUser_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_starts_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateUser_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  or?: InputMaybe<Array<InputMaybe<LeaderboardAffiliateUserToken_Filter>>>;\n  totalLeaderboardSharesClaimed?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesClaimed_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesClaimed_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesClaimed_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboardSharesClaimed_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesClaimed_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesClaimed_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesClaimed_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboardSharesWon?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesWon_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesWon_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesWon_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboardSharesWon_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesWon_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesWon_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardSharesWon_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum LeaderboardAffiliateUserToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  Id = 'id',\n  LeaderboardAffiliateToken = 'leaderboardAffiliateToken',\n  LeaderboardAffiliateTokenId = 'leaderboardAffiliateToken__id',\n  LeaderboardAffiliateTokenTotalLeaderboards = 'leaderboardAffiliateToken__totalLeaderboards',\n  LeaderboardAffiliateTokenTotalSharesClaimed = 'leaderboardAffiliateToken__totalSharesClaimed',\n  LeaderboardAffiliateTokenTotalSharesDistributed = 'leaderboardAffiliateToken__totalSharesDistributed',\n  LeaderboardAffiliateUser = 'leaderboardAffiliateUser',\n  LeaderboardAffiliateUserId = 'leaderboardAffiliateUser__id',\n  LeaderboardAffiliateUserTotalLeaderboardsWonCount = 'leaderboardAffiliateUser__totalLeaderboardsWonCount',\n  TotalLeaderboardSharesClaimed = 'totalLeaderboardSharesClaimed',\n  TotalLeaderboardSharesWon = 'totalLeaderboardSharesWon'\n}\n\nexport type LeaderboardAffiliateUser_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<LeaderboardAffiliateUser_Filter>>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  leaderboardAffiliateUserTokens_?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n  or?: InputMaybe<Array<InputMaybe<LeaderboardAffiliateUser_Filter>>>;\n  totalLeaderboardsWonCount?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardsWonCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardsWonCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardsWonCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalLeaderboardsWonCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardsWonCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardsWonCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalLeaderboardsWonCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum LeaderboardAffiliateUser_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  Id = 'id',\n  LeaderboardAffiliateUserTokens = 'leaderboardAffiliateUserTokens',\n  TotalLeaderboardsWonCount = 'totalLeaderboardsWonCount',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount'\n}\n\nexport enum LeaderboardStatus {\n  Canceled = 'Canceled',\n  Created = 'Created',\n  Finalized = 'Finalized'\n}\n\nexport type LeaderboardToken = {\n  __typename?: 'LeaderboardToken';\n  decimals: Scalars['Int']['output'];\n  id: Scalars['Bytes']['output'];\n  leaderboardAffiliatedTokens: Array<LeaderboardAffiliateToken>;\n  leaderboards: Array<Leaderboard>;\n  name: Scalars['String']['output'];\n  symbol: Scalars['String']['output'];\n};\n\n\nexport type LeaderboardTokenLeaderboardAffiliatedTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n};\n\n\nexport type LeaderboardTokenLeaderboardsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Leaderboard_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<Leaderboard_Filter>;\n};\n\nexport type LeaderboardToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<LeaderboardToken_Filter>>>;\n  decimals?: InputMaybe<Scalars['Int']['input']>;\n  decimals_gt?: InputMaybe<Scalars['Int']['input']>;\n  decimals_gte?: InputMaybe<Scalars['Int']['input']>;\n  decimals_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  decimals_lt?: InputMaybe<Scalars['Int']['input']>;\n  decimals_lte?: InputMaybe<Scalars['Int']['input']>;\n  decimals_not?: InputMaybe<Scalars['Int']['input']>;\n  decimals_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  leaderboardAffiliatedTokens_?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n  leaderboards_?: InputMaybe<Leaderboard_Filter>;\n  name?: InputMaybe<Scalars['String']['input']>;\n  name_contains?: InputMaybe<Scalars['String']['input']>;\n  name_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_ends_with?: InputMaybe<Scalars['String']['input']>;\n  name_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_gt?: InputMaybe<Scalars['String']['input']>;\n  name_gte?: InputMaybe<Scalars['String']['input']>;\n  name_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  name_lt?: InputMaybe<Scalars['String']['input']>;\n  name_lte?: InputMaybe<Scalars['String']['input']>;\n  name_not?: InputMaybe<Scalars['String']['input']>;\n  name_not_contains?: InputMaybe<Scalars['String']['input']>;\n  name_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  name_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  name_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  name_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_starts_with?: InputMaybe<Scalars['String']['input']>;\n  name_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  or?: InputMaybe<Array<InputMaybe<LeaderboardToken_Filter>>>;\n  symbol?: InputMaybe<Scalars['String']['input']>;\n  symbol_contains?: InputMaybe<Scalars['String']['input']>;\n  symbol_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_ends_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_gt?: InputMaybe<Scalars['String']['input']>;\n  symbol_gte?: InputMaybe<Scalars['String']['input']>;\n  symbol_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  symbol_lt?: InputMaybe<Scalars['String']['input']>;\n  symbol_lte?: InputMaybe<Scalars['String']['input']>;\n  symbol_not?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_contains?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  symbol_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_starts_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum LeaderboardToken_OrderBy {\n  Decimals = 'decimals',\n  Id = 'id',\n  LeaderboardAffiliatedTokens = 'leaderboardAffiliatedTokens',\n  Leaderboards = 'leaderboards',\n  Name = 'name',\n  Symbol = 'symbol'\n}\n\nexport type Leaderboard_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<Leaderboard_Filter>>>;\n  claimedShares?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  claimedShares_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  claimedShares_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  claimedShares_not?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  claimedShares_not_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  claimedShares_not_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  endTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  endTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  endTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  endTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  endTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  endTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  endTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  endTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  expirationTime?: InputMaybe<Scalars['BigInt']['input']>;\n  expirationTime_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  expirationTime_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  expirationTime_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  expirationTime_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  expirationTime_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  expirationTime_not?: InputMaybe<Scalars['BigInt']['input']>;\n  expirationTime_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  leaderboardAffiliateToken?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n  leaderboardAffiliateToken_contains?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_gt?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_gte?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  leaderboardAffiliateToken_lt?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_lte?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  leaderboardAffiliateToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  leaderboardAffiliateToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  or?: InputMaybe<Array<InputMaybe<Leaderboard_Filter>>>;\n  shares?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  shares_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  shares_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  shares_not?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  shares_not_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  shares_not_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  status?: InputMaybe<LeaderboardStatus>;\n  status_in?: InputMaybe<Array<LeaderboardStatus>>;\n  status_not?: InputMaybe<LeaderboardStatus>;\n  status_not_in?: InputMaybe<Array<LeaderboardStatus>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<LeaderboardToken_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalClaimedShares?: InputMaybe<Scalars['BigInt']['input']>;\n  totalClaimedShares_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalClaimedShares_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalClaimedShares_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalClaimedShares_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalClaimedShares_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalClaimedShares_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalClaimedShares_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalShares?: InputMaybe<Scalars['BigInt']['input']>;\n  totalShares_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalShares_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalShares_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalShares_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalShares_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalShares_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalShares_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalUnclaimedShares?: InputMaybe<Scalars['BigInt']['input']>;\n  totalUnclaimedShares_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalUnclaimedShares_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalUnclaimedShares_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalUnclaimedShares_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalUnclaimedShares_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalUnclaimedShares_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalUnclaimedShares_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winners?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  winners_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  winners_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  winners_not?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  winners_not_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  winners_not_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n};\n\nexport enum Leaderboard_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  ClaimedShares = 'claimedShares',\n  EndTimestamp = 'endTimestamp',\n  ExpirationTime = 'expirationTime',\n  Id = 'id',\n  LeaderboardAffiliateToken = 'leaderboardAffiliateToken',\n  LeaderboardAffiliateTokenId = 'leaderboardAffiliateToken__id',\n  LeaderboardAffiliateTokenTotalLeaderboards = 'leaderboardAffiliateToken__totalLeaderboards',\n  LeaderboardAffiliateTokenTotalSharesClaimed = 'leaderboardAffiliateToken__totalSharesClaimed',\n  LeaderboardAffiliateTokenTotalSharesDistributed = 'leaderboardAffiliateToken__totalSharesDistributed',\n  Shares = 'shares',\n  Status = 'status',\n  Token = 'token',\n  TokenDecimals = 'token__decimals',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenSymbol = 'token__symbol',\n  TotalClaimedShares = 'totalClaimedShares',\n  TotalShares = 'totalShares',\n  TotalUnclaimedShares = 'totalUnclaimedShares',\n  Winners = 'winners'\n}\n\n/** Defines the order direction, either ascending or descending */\nexport enum OrderDirection {\n  Asc = 'asc',\n  Desc = 'desc'\n}\n\nexport type PvPAffiliateGameToken = {\n  __typename?: 'PvPAffiliateGameToken';\n  affiliate: Affiliate;\n  affiliateToken: PvPAffiliateToken;\n  game: Scalars['String']['output'];\n  houseEdge?: Maybe<Scalars['Int']['output']>;\n  id: Scalars['ID']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  totalEarned: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n  winSeatCount: Scalars['BigInt']['output'];\n};\n\nexport type PvPAffiliateGameToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_?: InputMaybe<PvPAffiliateToken_Filter>;\n  affiliateToken_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<PvPAffiliateGameToken_Filter>>>;\n  game?: InputMaybe<Scalars['String']['input']>;\n  game_contains?: InputMaybe<Scalars['String']['input']>;\n  game_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_gt?: InputMaybe<Scalars['String']['input']>;\n  game_gte?: InputMaybe<Scalars['String']['input']>;\n  game_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_lt?: InputMaybe<Scalars['String']['input']>;\n  game_lte?: InputMaybe<Scalars['String']['input']>;\n  game_not?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  houseEdge?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  houseEdge_lt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_lte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPAffiliateGameToken_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalEarned?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalEarned_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPAffiliateGameToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateToken = 'affiliateToken',\n  AffiliateTokenId = 'affiliateToken__id',\n  AffiliateTokenSeatCount = 'affiliateToken__seatCount',\n  AffiliateTokenTotalEarned = 'affiliateToken__totalEarned',\n  AffiliateTokenTotalPayout = 'affiliateToken__totalPayout',\n  AffiliateTokenTotalWagered = 'affiliateToken__totalWagered',\n  AffiliateTokenWagerAndJoinTxnCount = 'affiliateToken__wagerAndJoinTxnCount',\n  AffiliateTokenWinSeatCount = 'affiliateToken__winSeatCount',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  Game = 'game',\n  HouseEdge = 'houseEdge',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  TotalEarned = 'totalEarned',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount',\n  WinSeatCount = 'winSeatCount'\n}\n\nexport type PvPAffiliateToken = {\n  __typename?: 'PvPAffiliateToken';\n  affiliate: Affiliate;\n  affiliateGameTokens: Array<PvPAffiliateGameToken>;\n  affiliateUserTokens: Array<PvPAffiliateUserToken>;\n  id: Scalars['ID']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  token: PvPToken;\n  totalEarned: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n  winSeatCount: Scalars['BigInt']['output'];\n};\n\n\nexport type PvPAffiliateTokenAffiliateGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPAffiliateGameToken_Filter>;\n};\n\n\nexport type PvPAffiliateTokenAffiliateUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPAffiliateUserToken_Filter>;\n};\n\nexport type PvPAffiliateToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateGameTokens_?: InputMaybe<PvPAffiliateGameToken_Filter>;\n  affiliateUserTokens_?: InputMaybe<PvPAffiliateUserToken_Filter>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<PvPAffiliateToken_Filter>>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPAffiliateToken_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<PvPToken_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalEarned?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalEarned_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalEarned_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPAffiliateToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateGameTokens = 'affiliateGameTokens',\n  AffiliateUserTokens = 'affiliateUserTokens',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenInitiatorAmount = 'token__initiatorAmount',\n  TokenName = 'token__name',\n  TokenSeatCount = 'token__seatCount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUniqueBets = 'token__uniqueBets',\n  TokenUserCount = 'token__userCount',\n  TokenWagerAndJoinTxnCount = 'token__wagerAndJoinTxnCount',\n  TotalEarned = 'totalEarned',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount',\n  WinSeatCount = 'winSeatCount'\n}\n\nexport type PvPAffiliateUserToken = {\n  __typename?: 'PvPAffiliateUserToken';\n  affiliate: Affiliate;\n  affiliateToken: PvPAffiliateToken;\n  affiliateUser: AffiliateUser;\n  id: Scalars['ID']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n  winSeatCount: Scalars['BigInt']['output'];\n};\n\nexport type PvPAffiliateUserToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_?: InputMaybe<PvPAffiliateToken_Filter>;\n  affiliateToken_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_?: InputMaybe<AffiliateUser_Filter>;\n  affiliateUser_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateUser_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliateUser_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliateUser_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<PvPAffiliateUserToken_Filter>>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPAffiliateUserToken_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPAffiliateUserToken_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateToken = 'affiliateToken',\n  AffiliateTokenId = 'affiliateToken__id',\n  AffiliateTokenSeatCount = 'affiliateToken__seatCount',\n  AffiliateTokenTotalEarned = 'affiliateToken__totalEarned',\n  AffiliateTokenTotalPayout = 'affiliateToken__totalPayout',\n  AffiliateTokenTotalWagered = 'affiliateToken__totalWagered',\n  AffiliateTokenWagerAndJoinTxnCount = 'affiliateToken__wagerAndJoinTxnCount',\n  AffiliateTokenWinSeatCount = 'affiliateToken__winSeatCount',\n  AffiliateUser = 'affiliateUser',\n  AffiliateUserBetCount = 'affiliateUser__betCount',\n  AffiliateUserBetTxnCount = 'affiliateUser__betTxnCount',\n  AffiliateUserFirstBetTimestamp = 'affiliateUser__firstBetTimestamp',\n  AffiliateUserFirstFreebetTimestamp = 'affiliateUser__firstFreebetTimestamp',\n  AffiliateUserId = 'affiliateUser__id',\n  AffiliateUserIsFirstBetAFreebet = 'affiliateUser__isFirstBetAFreebet',\n  AffiliateUserLastBetTimestamp = 'affiliateUser__lastBetTimestamp',\n  AffiliateUserLastFreebetTimestamp = 'affiliateUser__lastFreebetTimestamp',\n  AffiliateUserSeatCount = 'affiliateUser__seatCount',\n  AffiliateUserTotalFreebetCount = 'affiliateUser__totalFreebetCount',\n  AffiliateUserWagerAndJoinTxnCount = 'affiliateUser__wagerAndJoinTxnCount',\n  AffiliateUserWinSeatCount = 'affiliateUser__winSeatCount',\n  AffiliateUserWinTxnCount = 'affiliateUser__winTxnCount',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount',\n  WinSeatCount = 'winSeatCount'\n}\n\nexport type PvPBet = {\n  __typename?: 'PvPBet';\n  affiliate: Affiliate;\n  betAmount: Scalars['BigInt']['output'];\n  betId: Scalars['BigInt']['output'];\n  betLaunchedTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  betLaunchedTxnHash?: Maybe<Scalars['Bytes']['output']>;\n  betTimestamp: Scalars['BigInt']['output'];\n  canceled: Scalars['Boolean']['output'];\n  chargedVRFFees: Scalars['BigInt']['output'];\n  consumedLinkVRFFees?: Maybe<Scalars['BigInt']['output']>;\n  consumedNativeVRFFees?: Maybe<Scalars['BigInt']['output']>;\n  gameAddress: Scalars['Bytes']['output'];\n  gameId: Scalars['String']['output'];\n  gameToken: PvPGameToken;\n  houseEdge: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  joinTxns: Array<PvPGameJoinTransaction>;\n  opponents: Array<Scalars['Bytes']['output']>;\n  payout?: Maybe<Scalars['BigInt']['output']>;\n  pot: Scalars['BigInt']['output'];\n  refunded: Scalars['Boolean']['output'];\n  resolved: Scalars['Boolean']['output'];\n  rollTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  rollTxnHash?: Maybe<Scalars['Bytes']['output']>;\n  seats: Array<Scalars['Bytes']['output']>;\n  user: User;\n  vrfRequest?: Maybe<PvPvrfRequest>;\n};\n\n\nexport type PvPBetJoinTxnsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPGameJoinTransaction_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPGameJoinTransaction_Filter>;\n};\n\nexport type PvPBet_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliate?: InputMaybe<Scalars['String']['input']>;\n  affiliate_?: InputMaybe<Affiliate_Filter>;\n  affiliate_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_gte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_lt?: InputMaybe<Scalars['String']['input']>;\n  affiliate_lte?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  affiliate_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with?: InputMaybe<Scalars['String']['input']>;\n  affiliate_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  and?: InputMaybe<Array<InputMaybe<PvPBet_Filter>>>;\n  betAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betId?: InputMaybe<Scalars['BigInt']['input']>;\n  betId_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betId_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betId_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betId_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betId_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betId_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betId_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betLaunchedTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  betLaunchedTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betLaunchedTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betLaunchedTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betLaunchedTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betLaunchedTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betLaunchedTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betLaunchedTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betLaunchedTxnHash?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  betLaunchedTxnHash_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_not?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  betLaunchedTxnHash_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  betTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  canceled?: InputMaybe<Scalars['Boolean']['input']>;\n  canceled_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  canceled_not?: InputMaybe<Scalars['Boolean']['input']>;\n  canceled_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  chargedVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  chargedVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  chargedVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  gameAddress?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  gameAddress_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_not?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  gameAddress_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  gameId?: InputMaybe<Scalars['String']['input']>;\n  gameId_contains?: InputMaybe<Scalars['String']['input']>;\n  gameId_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_gt?: InputMaybe<Scalars['String']['input']>;\n  gameId_gte?: InputMaybe<Scalars['String']['input']>;\n  gameId_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameId_lt?: InputMaybe<Scalars['String']['input']>;\n  gameId_lte?: InputMaybe<Scalars['String']['input']>;\n  gameId_not?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameId_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken?: InputMaybe<Scalars['String']['input']>;\n  gameToken_?: InputMaybe<PvPGameToken_Filter>;\n  gameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  houseEdge?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  houseEdge_lt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_lte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  joinTxns_?: InputMaybe<PvPGameJoinTransaction_Filter>;\n  opponents?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  opponents_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  opponents_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  opponents_not?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  opponents_not_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  opponents_not_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPBet_Filter>>>;\n  payout?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  payout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  payout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  pot?: InputMaybe<Scalars['BigInt']['input']>;\n  pot_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  pot_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  pot_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  pot_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  pot_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  pot_not?: InputMaybe<Scalars['BigInt']['input']>;\n  pot_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  refunded?: InputMaybe<Scalars['Boolean']['input']>;\n  refunded_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  refunded_not?: InputMaybe<Scalars['Boolean']['input']>;\n  refunded_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  resolved?: InputMaybe<Scalars['Boolean']['input']>;\n  resolved_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  resolved_not?: InputMaybe<Scalars['Boolean']['input']>;\n  resolved_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;\n  rollTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rollTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  rollTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  rollTxnHash?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  rollTxnHash_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_not?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  rollTxnHash_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  seats?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  seats_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  seats_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  seats_not?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  seats_not_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  seats_not_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_?: InputMaybe<PvPvrfRequest_Filter>;\n  vrfRequest_contains?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_ends_with?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_gt?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_gte?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  vrfRequest_lt?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_lte?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not_contains?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  vrfRequest_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_starts_with?: InputMaybe<Scalars['String']['input']>;\n  vrfRequest_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum PvPBet_OrderBy {\n  Affiliate = 'affiliate',\n  AffiliateBetCount = 'affiliate__betCount',\n  AffiliateBetTxnCount = 'affiliate__betTxnCount',\n  AffiliateFirstBetTimestamp = 'affiliate__firstBetTimestamp',\n  AffiliateId = 'affiliate__id',\n  AffiliateLastBetTimestamp = 'affiliate__lastBetTimestamp',\n  AffiliateSeatCount = 'affiliate__seatCount',\n  AffiliateTotalFreebetCount = 'affiliate__totalFreebetCount',\n  AffiliateTotalLeaderboards = 'affiliate__totalLeaderboards',\n  AffiliateUserCount = 'affiliate__userCount',\n  AffiliateWagerAndJoinTxnCount = 'affiliate__wagerAndJoinTxnCount',\n  AffiliateWinSeatCount = 'affiliate__winSeatCount',\n  AffiliateWinTxnCount = 'affiliate__winTxnCount',\n  BetAmount = 'betAmount',\n  BetId = 'betId',\n  BetLaunchedTimestamp = 'betLaunchedTimestamp',\n  BetLaunchedTxnHash = 'betLaunchedTxnHash',\n  BetTimestamp = 'betTimestamp',\n  Canceled = 'canceled',\n  ChargedVrfFees = 'chargedVRFFees',\n  ConsumedLinkVrfFees = 'consumedLinkVRFFees',\n  ConsumedNativeVrfFees = 'consumedNativeVRFFees',\n  GameAddress = 'gameAddress',\n  GameId = 'gameId',\n  GameToken = 'gameToken',\n  GameTokenDayDataLength = 'gameToken__dayDataLength',\n  GameTokenGame = 'gameToken__game',\n  GameTokenHouseEdge = 'gameToken__houseEdge',\n  GameTokenId = 'gameToken__id',\n  GameTokenSeatCount = 'gameToken__seatCount',\n  GameTokenTotalPayout = 'gameToken__totalPayout',\n  GameTokenTotalWagered = 'gameToken__totalWagered',\n  GameTokenUniqueBets = 'gameToken__uniqueBets',\n  GameTokenUserCount = 'gameToken__userCount',\n  GameTokenWagerAndJoinTxnCount = 'gameToken__wagerAndJoinTxnCount',\n  HouseEdge = 'houseEdge',\n  Id = 'id',\n  JoinTxns = 'joinTxns',\n  Opponents = 'opponents',\n  Payout = 'payout',\n  Pot = 'pot',\n  Refunded = 'refunded',\n  Resolved = 'resolved',\n  RollTimestamp = 'rollTimestamp',\n  RollTxnHash = 'rollTxnHash',\n  Seats = 'seats',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  VrfRequest = 'vrfRequest',\n  VrfRequestId = 'vrfRequest__id',\n  VrfRequestRequestTimestamp = 'vrfRequest__requestTimestamp'\n}\n\nexport type PvPGameJoinTransaction = {\n  __typename?: 'PvPGameJoinTransaction';\n  bet: PvPBet;\n  id: Scalars['Bytes']['output'];\n  seatCount: Scalars['Int']['output'];\n  user: User;\n};\n\nexport type PvPGameJoinTransaction_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPGameJoinTransaction_Filter>>>;\n  bet?: InputMaybe<Scalars['String']['input']>;\n  bet_?: InputMaybe<PvPBet_Filter>;\n  bet_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_gt?: InputMaybe<Scalars['String']['input']>;\n  bet_gte?: InputMaybe<Scalars['String']['input']>;\n  bet_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_lt?: InputMaybe<Scalars['String']['input']>;\n  bet_lte?: InputMaybe<Scalars['String']['input']>;\n  bet_not?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPGameJoinTransaction_Filter>>>;\n  seatCount?: InputMaybe<Scalars['Int']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['Int']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['Int']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['Int']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['Int']['input']>;\n  seatCount_not?: InputMaybe<Scalars['Int']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum PvPGameJoinTransaction_OrderBy {\n  Bet = 'bet',\n  BetBetAmount = 'bet__betAmount',\n  BetBetId = 'bet__betId',\n  BetBetLaunchedTimestamp = 'bet__betLaunchedTimestamp',\n  BetBetLaunchedTxnHash = 'bet__betLaunchedTxnHash',\n  BetBetTimestamp = 'bet__betTimestamp',\n  BetCanceled = 'bet__canceled',\n  BetChargedVrfFees = 'bet__chargedVRFFees',\n  BetConsumedLinkVrfFees = 'bet__consumedLinkVRFFees',\n  BetConsumedNativeVrfFees = 'bet__consumedNativeVRFFees',\n  BetGameAddress = 'bet__gameAddress',\n  BetGameId = 'bet__gameId',\n  BetHouseEdge = 'bet__houseEdge',\n  BetId = 'bet__id',\n  BetPayout = 'bet__payout',\n  BetPot = 'bet__pot',\n  BetRefunded = 'bet__refunded',\n  BetResolved = 'bet__resolved',\n  BetRollTimestamp = 'bet__rollTimestamp',\n  BetRollTxnHash = 'bet__rollTxnHash',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount'\n}\n\nexport type PvPGameToken = {\n  __typename?: 'PvPGameToken';\n  dayData?: Maybe<Array<PvPGameTokenDayData>>;\n  dayDataLength: Scalars['Int']['output'];\n  game: Scalars['String']['output'];\n  houseEdge: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  pvpUserGameTokens?: Maybe<Array<PvPUserGameToken>>;\n  seatCount: Scalars['BigInt']['output'];\n  token: PvPToken;\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  uniqueBets: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type PvPGameTokenDayDataArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPGameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPGameTokenDayData_Filter>;\n};\n\n\nexport type PvPGameTokenPvpUserGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPUserGameToken_Filter>;\n};\n\nexport type PvPGameTokenDayData = {\n  __typename?: 'PvPGameTokenDayData';\n  consumedLinkVRFFees: Scalars['BigInt']['output'];\n  consumedNativeVRFFees: Scalars['BigInt']['output'];\n  date: Scalars['Int']['output'];\n  gameToken: PvPGameToken;\n  id: Scalars['ID']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  totalChargedVRFFees: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type PvPGameTokenDayData_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPGameTokenDayData_Filter>>>;\n  consumedLinkVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  date?: InputMaybe<Scalars['Int']['input']>;\n  date_gt?: InputMaybe<Scalars['Int']['input']>;\n  date_gte?: InputMaybe<Scalars['Int']['input']>;\n  date_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  date_lt?: InputMaybe<Scalars['Int']['input']>;\n  date_lte?: InputMaybe<Scalars['Int']['input']>;\n  date_not?: InputMaybe<Scalars['Int']['input']>;\n  date_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  gameToken?: InputMaybe<Scalars['String']['input']>;\n  gameToken_?: InputMaybe<PvPGameToken_Filter>;\n  gameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPGameTokenDayData_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalChargedVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalChargedVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPGameTokenDayData_OrderBy {\n  ConsumedLinkVrfFees = 'consumedLinkVRFFees',\n  ConsumedNativeVrfFees = 'consumedNativeVRFFees',\n  Date = 'date',\n  GameToken = 'gameToken',\n  GameTokenDayDataLength = 'gameToken__dayDataLength',\n  GameTokenGame = 'gameToken__game',\n  GameTokenHouseEdge = 'gameToken__houseEdge',\n  GameTokenId = 'gameToken__id',\n  GameTokenSeatCount = 'gameToken__seatCount',\n  GameTokenTotalPayout = 'gameToken__totalPayout',\n  GameTokenTotalWagered = 'gameToken__totalWagered',\n  GameTokenUniqueBets = 'gameToken__uniqueBets',\n  GameTokenUserCount = 'gameToken__userCount',\n  GameTokenWagerAndJoinTxnCount = 'gameToken__wagerAndJoinTxnCount',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  TotalChargedVrfFees = 'totalChargedVRFFees',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  UserCount = 'userCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type PvPGameToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPGameToken_Filter>>>;\n  dayDataLength?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayDataLength_lt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_lte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayData_?: InputMaybe<PvPGameTokenDayData_Filter>;\n  game?: InputMaybe<Scalars['String']['input']>;\n  game_contains?: InputMaybe<Scalars['String']['input']>;\n  game_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_gt?: InputMaybe<Scalars['String']['input']>;\n  game_gte?: InputMaybe<Scalars['String']['input']>;\n  game_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_lt?: InputMaybe<Scalars['String']['input']>;\n  game_lte?: InputMaybe<Scalars['String']['input']>;\n  game_not?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  houseEdge?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_gte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  houseEdge_lt?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_lte?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not?: InputMaybe<Scalars['Int']['input']>;\n  houseEdge_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPGameToken_Filter>>>;\n  pvpUserGameTokens_?: InputMaybe<PvPUserGameToken_Filter>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<PvPToken_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  uniqueBets?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  uniqueBets_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_not?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPGameToken_OrderBy {\n  DayData = 'dayData',\n  DayDataLength = 'dayDataLength',\n  Game = 'game',\n  HouseEdge = 'houseEdge',\n  Id = 'id',\n  PvpUserGameTokens = 'pvpUserGameTokens',\n  SeatCount = 'seatCount',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenInitiatorAmount = 'token__initiatorAmount',\n  TokenName = 'token__name',\n  TokenSeatCount = 'token__seatCount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUniqueBets = 'token__uniqueBets',\n  TokenUserCount = 'token__userCount',\n  TokenWagerAndJoinTxnCount = 'token__wagerAndJoinTxnCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  UniqueBets = 'uniqueBets',\n  UserCount = 'userCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type PvPToken = {\n  __typename?: 'PvPToken';\n  affiliateAmount: Scalars['BigInt']['output'];\n  decimals: Scalars['Int']['output'];\n  dividendAmount: Scalars['BigInt']['output'];\n  id: Scalars['Bytes']['output'];\n  initiatorAmount: Scalars['BigInt']['output'];\n  name: Scalars['String']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  symbol: Scalars['String']['output'];\n  teamAmount: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  treasuryAmount: Scalars['BigInt']['output'];\n  uniqueBets: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type PvPToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliateAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  affiliateAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  and?: InputMaybe<Array<InputMaybe<PvPToken_Filter>>>;\n  decimals?: InputMaybe<Scalars['Int']['input']>;\n  decimals_gt?: InputMaybe<Scalars['Int']['input']>;\n  decimals_gte?: InputMaybe<Scalars['Int']['input']>;\n  decimals_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  decimals_lt?: InputMaybe<Scalars['Int']['input']>;\n  decimals_lte?: InputMaybe<Scalars['Int']['input']>;\n  decimals_not?: InputMaybe<Scalars['Int']['input']>;\n  decimals_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dividendAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  dividendAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  initiatorAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  initiatorAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  initiatorAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  initiatorAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  initiatorAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  initiatorAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  initiatorAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  initiatorAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  name?: InputMaybe<Scalars['String']['input']>;\n  name_contains?: InputMaybe<Scalars['String']['input']>;\n  name_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_ends_with?: InputMaybe<Scalars['String']['input']>;\n  name_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_gt?: InputMaybe<Scalars['String']['input']>;\n  name_gte?: InputMaybe<Scalars['String']['input']>;\n  name_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  name_lt?: InputMaybe<Scalars['String']['input']>;\n  name_lte?: InputMaybe<Scalars['String']['input']>;\n  name_not?: InputMaybe<Scalars['String']['input']>;\n  name_not_contains?: InputMaybe<Scalars['String']['input']>;\n  name_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  name_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  name_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  name_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_starts_with?: InputMaybe<Scalars['String']['input']>;\n  name_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  or?: InputMaybe<Array<InputMaybe<PvPToken_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  symbol?: InputMaybe<Scalars['String']['input']>;\n  symbol_contains?: InputMaybe<Scalars['String']['input']>;\n  symbol_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_ends_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_gt?: InputMaybe<Scalars['String']['input']>;\n  symbol_gte?: InputMaybe<Scalars['String']['input']>;\n  symbol_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  symbol_lt?: InputMaybe<Scalars['String']['input']>;\n  symbol_lte?: InputMaybe<Scalars['String']['input']>;\n  symbol_not?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_contains?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  symbol_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_starts_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  teamAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  teamAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  treasuryAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  treasuryAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  uniqueBets?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  uniqueBets_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_not?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPToken_OrderBy {\n  AffiliateAmount = 'affiliateAmount',\n  Decimals = 'decimals',\n  DividendAmount = 'dividendAmount',\n  Id = 'id',\n  InitiatorAmount = 'initiatorAmount',\n  Name = 'name',\n  SeatCount = 'seatCount',\n  Symbol = 'symbol',\n  TeamAmount = 'teamAmount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  TreasuryAmount = 'treasuryAmount',\n  UniqueBets = 'uniqueBets',\n  UserCount = 'userCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type PvPUserGameToken = {\n  __typename?: 'PvPUserGameToken';\n  dayData?: Maybe<Array<PvPUserGameTokenDayData>>;\n  dayDataLength: Scalars['Int']['output'];\n  gameToken: PvPGameToken;\n  id: Scalars['ID']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  uniqueBets: Scalars['BigInt']['output'];\n  user: User;\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type PvPUserGameTokenDayDataArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserGameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPUserGameTokenDayData_Filter>;\n};\n\nexport type PvPUserGameTokenDayData = {\n  __typename?: 'PvPUserGameTokenDayData';\n  date: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  userGameToken: PvPUserGameToken;\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type PvPUserGameTokenDayData_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPUserGameTokenDayData_Filter>>>;\n  date?: InputMaybe<Scalars['Int']['input']>;\n  date_gt?: InputMaybe<Scalars['Int']['input']>;\n  date_gte?: InputMaybe<Scalars['Int']['input']>;\n  date_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  date_lt?: InputMaybe<Scalars['Int']['input']>;\n  date_lte?: InputMaybe<Scalars['Int']['input']>;\n  date_not?: InputMaybe<Scalars['Int']['input']>;\n  date_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPUserGameTokenDayData_Filter>>>;\n  userGameToken?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_?: InputMaybe<PvPUserGameToken_Filter>;\n  userGameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  userGameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  userGameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPUserGameTokenDayData_OrderBy {\n  Date = 'date',\n  Id = 'id',\n  UserGameToken = 'userGameToken',\n  UserGameTokenDayDataLength = 'userGameToken__dayDataLength',\n  UserGameTokenId = 'userGameToken__id',\n  UserGameTokenSeatCount = 'userGameToken__seatCount',\n  UserGameTokenTotalPayout = 'userGameToken__totalPayout',\n  UserGameTokenTotalWagered = 'userGameToken__totalWagered',\n  UserGameTokenUniqueBets = 'userGameToken__uniqueBets',\n  UserGameTokenWagerAndJoinTxnCount = 'userGameToken__wagerAndJoinTxnCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type PvPUserGameToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPUserGameToken_Filter>>>;\n  dayDataLength?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayDataLength_lt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_lte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayData_?: InputMaybe<PvPUserGameTokenDayData_Filter>;\n  gameToken?: InputMaybe<Scalars['String']['input']>;\n  gameToken_?: InputMaybe<PvPGameToken_Filter>;\n  gameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  gameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPUserGameToken_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  uniqueBets?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  uniqueBets_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_not?: InputMaybe<Scalars['BigInt']['input']>;\n  uniqueBets_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPUserGameToken_OrderBy {\n  DayData = 'dayData',\n  DayDataLength = 'dayDataLength',\n  GameToken = 'gameToken',\n  GameTokenDayDataLength = 'gameToken__dayDataLength',\n  GameTokenGame = 'gameToken__game',\n  GameTokenHouseEdge = 'gameToken__houseEdge',\n  GameTokenId = 'gameToken__id',\n  GameTokenSeatCount = 'gameToken__seatCount',\n  GameTokenTotalPayout = 'gameToken__totalPayout',\n  GameTokenTotalWagered = 'gameToken__totalWagered',\n  GameTokenUniqueBets = 'gameToken__uniqueBets',\n  GameTokenUserCount = 'gameToken__userCount',\n  GameTokenWagerAndJoinTxnCount = 'gameToken__wagerAndJoinTxnCount',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  UniqueBets = 'uniqueBets',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type PvPUserToken = {\n  __typename?: 'PvPUserToken';\n  id: Scalars['ID']['output'];\n  maxPayout: Scalars['BigInt']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  token: PvPToken;\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  user: User;\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type PvPUserToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPUserToken_Filter>>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  maxPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  maxPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPUserToken_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<PvPToken_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPUserToken_OrderBy {\n  Id = 'id',\n  MaxPayout = 'maxPayout',\n  SeatCount = 'seatCount',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenInitiatorAmount = 'token__initiatorAmount',\n  TokenName = 'token__name',\n  TokenSeatCount = 'token__seatCount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUniqueBets = 'token__uniqueBets',\n  TokenUserCount = 'token__userCount',\n  TokenWagerAndJoinTxnCount = 'token__wagerAndJoinTxnCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type PvPvrfRequest = {\n  __typename?: 'PvPVRFRequest';\n  bet: PvPBet;\n  id: Scalars['ID']['output'];\n  requestTimestamp: Scalars['BigInt']['output'];\n};\n\nexport type PvPvrfRequest_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<PvPvrfRequest_Filter>>>;\n  bet?: InputMaybe<Scalars['String']['input']>;\n  bet_?: InputMaybe<PvPBet_Filter>;\n  bet_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_gt?: InputMaybe<Scalars['String']['input']>;\n  bet_gte?: InputMaybe<Scalars['String']['input']>;\n  bet_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_lt?: InputMaybe<Scalars['String']['input']>;\n  bet_lte?: InputMaybe<Scalars['String']['input']>;\n  bet_not?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<PvPvrfRequest_Filter>>>;\n  requestTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  requestTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  requestTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  requestTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  requestTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  requestTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  requestTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  requestTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum PvPvrfRequest_OrderBy {\n  Bet = 'bet',\n  BetBetAmount = 'bet__betAmount',\n  BetBetId = 'bet__betId',\n  BetBetLaunchedTimestamp = 'bet__betLaunchedTimestamp',\n  BetBetLaunchedTxnHash = 'bet__betLaunchedTxnHash',\n  BetBetTimestamp = 'bet__betTimestamp',\n  BetCanceled = 'bet__canceled',\n  BetChargedVrfFees = 'bet__chargedVRFFees',\n  BetConsumedLinkVrfFees = 'bet__consumedLinkVRFFees',\n  BetConsumedNativeVrfFees = 'bet__consumedNativeVRFFees',\n  BetGameAddress = 'bet__gameAddress',\n  BetGameId = 'bet__gameId',\n  BetHouseEdge = 'bet__houseEdge',\n  BetId = 'bet__id',\n  BetPayout = 'bet__payout',\n  BetPot = 'bet__pot',\n  BetRefunded = 'bet__refunded',\n  BetResolved = 'bet__resolved',\n  BetRollTimestamp = 'bet__rollTimestamp',\n  BetRollTxnHash = 'bet__rollTxnHash',\n  Id = 'id',\n  RequestTimestamp = 'requestTimestamp'\n}\n\nexport type Query = {\n  __typename?: 'Query';\n  /** Access to subgraph metadata */\n  _meta?: Maybe<_Meta_>;\n  affiliate?: Maybe<Affiliate>;\n  affiliateGameToken?: Maybe<AffiliateGameToken>;\n  affiliateGameTokens: Array<AffiliateGameToken>;\n  affiliateToken?: Maybe<AffiliateToken>;\n  affiliateTokens: Array<AffiliateToken>;\n  affiliateUser?: Maybe<AffiliateUser>;\n  affiliateUserToken?: Maybe<AffiliateUserToken>;\n  affiliateUserTokens: Array<AffiliateUserToken>;\n  affiliateUsers: Array<AffiliateUser>;\n  affiliates: Array<Affiliate>;\n  bet?: Maybe<Bet>;\n  bets: Array<Bet>;\n  coinTossBattleBet?: Maybe<CoinTossBattleBet>;\n  coinTossBattleBets: Array<CoinTossBattleBet>;\n  gameToken?: Maybe<GameToken>;\n  gameTokenDayData?: Maybe<GameTokenDayData>;\n  gameTokenDayDatas: Array<GameTokenDayData>;\n  gameTokens: Array<GameToken>;\n  kenoBet?: Maybe<KenoBet>;\n  kenoBets: Array<KenoBet>;\n  kenoConfig?: Maybe<KenoConfig>;\n  kenoConfigHub?: Maybe<KenoConfigHub>;\n  kenoConfigHubs: Array<KenoConfigHub>;\n  kenoConfigs: Array<KenoConfig>;\n  leaderboard?: Maybe<Leaderboard>;\n  leaderboardAffiliateToken?: Maybe<LeaderboardAffiliateToken>;\n  leaderboardAffiliateTokens: Array<LeaderboardAffiliateToken>;\n  leaderboardAffiliateUser?: Maybe<LeaderboardAffiliateUser>;\n  leaderboardAffiliateUserToken?: Maybe<LeaderboardAffiliateUserToken>;\n  leaderboardAffiliateUserTokens: Array<LeaderboardAffiliateUserToken>;\n  leaderboardAffiliateUsers: Array<LeaderboardAffiliateUser>;\n  leaderboardToken?: Maybe<LeaderboardToken>;\n  leaderboardTokens: Array<LeaderboardToken>;\n  leaderboards: Array<Leaderboard>;\n  pvPAffiliateGameToken?: Maybe<PvPAffiliateGameToken>;\n  pvPAffiliateGameTokens: Array<PvPAffiliateGameToken>;\n  pvPAffiliateToken?: Maybe<PvPAffiliateToken>;\n  pvPAffiliateTokens: Array<PvPAffiliateToken>;\n  pvPAffiliateUserToken?: Maybe<PvPAffiliateUserToken>;\n  pvPAffiliateUserTokens: Array<PvPAffiliateUserToken>;\n  pvPBet?: Maybe<PvPBet>;\n  pvPBets: Array<PvPBet>;\n  pvPGameJoinTransaction?: Maybe<PvPGameJoinTransaction>;\n  pvPGameJoinTransactions: Array<PvPGameJoinTransaction>;\n  pvPGameToken?: Maybe<PvPGameToken>;\n  pvPGameTokenDayData?: Maybe<PvPGameTokenDayData>;\n  pvPGameTokenDayDatas: Array<PvPGameTokenDayData>;\n  pvPGameTokens: Array<PvPGameToken>;\n  pvPToken?: Maybe<PvPToken>;\n  pvPTokens: Array<PvPToken>;\n  pvPUserGameToken?: Maybe<PvPUserGameToken>;\n  pvPUserGameTokenDayData?: Maybe<PvPUserGameTokenDayData>;\n  pvPUserGameTokenDayDatas: Array<PvPUserGameTokenDayData>;\n  pvPUserGameTokens: Array<PvPUserGameToken>;\n  pvPUserToken?: Maybe<PvPUserToken>;\n  pvPUserTokens: Array<PvPUserToken>;\n  pvPVRFRequest?: Maybe<PvPvrfRequest>;\n  pvPVRFRequests: Array<PvPvrfRequest>;\n  russianRouletteBet?: Maybe<RussianRouletteBet>;\n  russianRouletteBets: Array<RussianRouletteBet>;\n  store?: Maybe<Store>;\n  stores: Array<Store>;\n  token?: Maybe<Token>;\n  tokenBalancesDayData?: Maybe<TokenBalancesDayData>;\n  tokenBalancesDayDatas: Array<TokenBalancesDayData>;\n  tokens: Array<Token>;\n  user?: Maybe<User>;\n  userGameToken?: Maybe<UserGameToken>;\n  userGameTokenDayData?: Maybe<UserGameTokenDayData>;\n  userGameTokenDayDatas: Array<UserGameTokenDayData>;\n  userGameTokens: Array<UserGameToken>;\n  userToken?: Maybe<UserToken>;\n  userTokens: Array<UserToken>;\n  users: Array<User>;\n  weightedGameBet?: Maybe<WeightedGameBet>;\n  weightedGameBets: Array<WeightedGameBet>;\n  weightedGameConfig?: Maybe<WeightedGameConfig>;\n  weightedGameConfigs: Array<WeightedGameConfig>;\n};\n\n\nexport type Query_MetaArgs = {\n  block?: InputMaybe<Block_Height>;\n};\n\n\nexport type QueryAffiliateArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryAffiliateGameTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryAffiliateGameTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<AffiliateGameToken_Filter>;\n};\n\n\nexport type QueryAffiliateTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryAffiliateTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<AffiliateToken_Filter>;\n};\n\n\nexport type QueryAffiliateUserArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryAffiliateUserTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryAffiliateUserTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<AffiliateUserToken_Filter>;\n};\n\n\nexport type QueryAffiliateUsersArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<AffiliateUser_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<AffiliateUser_Filter>;\n};\n\n\nexport type QueryAffiliatesArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Affiliate_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<Affiliate_Filter>;\n};\n\n\nexport type QueryBetArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryBetsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Bet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<Bet_Filter>;\n};\n\n\nexport type QueryCoinTossBattleBetArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryCoinTossBattleBetsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<CoinTossBattleBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<CoinTossBattleBet_Filter>;\n};\n\n\nexport type QueryGameTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryGameTokenDayDataArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryGameTokenDayDatasArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<GameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<GameTokenDayData_Filter>;\n};\n\n\nexport type QueryGameTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<GameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<GameToken_Filter>;\n};\n\n\nexport type QueryKenoBetArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryKenoBetsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<KenoBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<KenoBet_Filter>;\n};\n\n\nexport type QueryKenoConfigArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryKenoConfigHubArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryKenoConfigHubsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<KenoConfigHub_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<KenoConfigHub_Filter>;\n};\n\n\nexport type QueryKenoConfigsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<KenoConfig_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<KenoConfig_Filter>;\n};\n\n\nexport type QueryLeaderboardArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryLeaderboardAffiliateTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryLeaderboardAffiliateTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<LeaderboardAffiliateToken_Filter>;\n};\n\n\nexport type QueryLeaderboardAffiliateUserArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryLeaderboardAffiliateUserTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryLeaderboardAffiliateUserTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<LeaderboardAffiliateUserToken_Filter>;\n};\n\n\nexport type QueryLeaderboardAffiliateUsersArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUser_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<LeaderboardAffiliateUser_Filter>;\n};\n\n\nexport type QueryLeaderboardTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryLeaderboardTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<LeaderboardToken_Filter>;\n};\n\n\nexport type QueryLeaderboardsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Leaderboard_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<Leaderboard_Filter>;\n};\n\n\nexport type QueryPvPAffiliateGameTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPAffiliateGameTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPAffiliateGameToken_Filter>;\n};\n\n\nexport type QueryPvPAffiliateTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPAffiliateTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPAffiliateToken_Filter>;\n};\n\n\nexport type QueryPvPAffiliateUserTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPAffiliateUserTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPAffiliateUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPAffiliateUserToken_Filter>;\n};\n\n\nexport type QueryPvPBetArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPBetsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPBet_Filter>;\n};\n\n\nexport type QueryPvPGameJoinTransactionArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPGameJoinTransactionsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPGameJoinTransaction_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPGameJoinTransaction_Filter>;\n};\n\n\nexport type QueryPvPGameTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPGameTokenDayDataArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPGameTokenDayDatasArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPGameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPGameTokenDayData_Filter>;\n};\n\n\nexport type QueryPvPGameTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPGameToken_Filter>;\n};\n\n\nexport type QueryPvPTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPToken_Filter>;\n};\n\n\nexport type QueryPvPUserGameTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPUserGameTokenDayDataArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPUserGameTokenDayDatasArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserGameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPUserGameTokenDayData_Filter>;\n};\n\n\nexport type QueryPvPUserGameTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPUserGameToken_Filter>;\n};\n\n\nexport type QueryPvPUserTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPUserTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPUserToken_Filter>;\n};\n\n\nexport type QueryPvPvrfRequestArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPvPvrfRequestsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPvrfRequest_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<PvPvrfRequest_Filter>;\n};\n\n\nexport type QueryRussianRouletteBetArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryRussianRouletteBetsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<RussianRouletteBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<RussianRouletteBet_Filter>;\n};\n\n\nexport type QueryStoreArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryStoresArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Store_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<Store_Filter>;\n};\n\n\nexport type QueryTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenBalancesDayDataArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenBalancesDayDatasArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<TokenBalancesDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<TokenBalancesDayData_Filter>;\n};\n\n\nexport type QueryTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Token_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<Token_Filter>;\n};\n\n\nexport type QueryUserArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryUserGameTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryUserGameTokenDayDataArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryUserGameTokenDayDatasArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserGameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<UserGameTokenDayData_Filter>;\n};\n\n\nexport type QueryUserGameTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<UserGameToken_Filter>;\n};\n\n\nexport type QueryUserTokenArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryUserTokensArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<UserToken_Filter>;\n};\n\n\nexport type QueryUsersArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<User_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<User_Filter>;\n};\n\n\nexport type QueryWeightedGameBetArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryWeightedGameBetsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<WeightedGameBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<WeightedGameBet_Filter>;\n};\n\n\nexport type QueryWeightedGameConfigArgs = {\n  block?: InputMaybe<Block_Height>;\n  id: Scalars['ID']['input'];\n  subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryWeightedGameConfigsArgs = {\n  block?: InputMaybe<Block_Height>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<WeightedGameConfig_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  subgraphError?: _SubgraphErrorPolicy_;\n  where?: InputMaybe<WeightedGameConfig_Filter>;\n};\n\nexport type RussianRouletteBet = {\n  __typename?: 'RussianRouletteBet';\n  bet?: Maybe<PvPBet>;\n  deathRatio: Scalars['Int']['output'];\n  gameResolvedTxnHash?: Maybe<Scalars['Bytes']['output']>;\n  id: Scalars['ID']['output'];\n  killedSeats?: Maybe<Array<Scalars['Bytes']['output']>>;\n  killedSeatsCount?: Maybe<Scalars['Int']['output']>;\n  maxSeats: Scalars['Int']['output'];\n  startsAt: Scalars['BigInt']['output'];\n};\n\nexport type RussianRouletteBet_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<RussianRouletteBet_Filter>>>;\n  bet?: InputMaybe<Scalars['String']['input']>;\n  bet_?: InputMaybe<PvPBet_Filter>;\n  bet_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_gt?: InputMaybe<Scalars['String']['input']>;\n  bet_gte?: InputMaybe<Scalars['String']['input']>;\n  bet_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_lt?: InputMaybe<Scalars['String']['input']>;\n  bet_lte?: InputMaybe<Scalars['String']['input']>;\n  bet_not?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  deathRatio?: InputMaybe<Scalars['Int']['input']>;\n  deathRatio_gt?: InputMaybe<Scalars['Int']['input']>;\n  deathRatio_gte?: InputMaybe<Scalars['Int']['input']>;\n  deathRatio_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  deathRatio_lt?: InputMaybe<Scalars['Int']['input']>;\n  deathRatio_lte?: InputMaybe<Scalars['Int']['input']>;\n  deathRatio_not?: InputMaybe<Scalars['Int']['input']>;\n  deathRatio_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  gameResolvedTxnHash?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  gameResolvedTxnHash_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_not?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  gameResolvedTxnHash_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  killedSeats?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  killedSeatsCount?: InputMaybe<Scalars['Int']['input']>;\n  killedSeatsCount_gt?: InputMaybe<Scalars['Int']['input']>;\n  killedSeatsCount_gte?: InputMaybe<Scalars['Int']['input']>;\n  killedSeatsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  killedSeatsCount_lt?: InputMaybe<Scalars['Int']['input']>;\n  killedSeatsCount_lte?: InputMaybe<Scalars['Int']['input']>;\n  killedSeatsCount_not?: InputMaybe<Scalars['Int']['input']>;\n  killedSeatsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  killedSeats_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  killedSeats_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  killedSeats_not?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  killedSeats_not_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  killedSeats_not_contains_nocase?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  maxSeats?: InputMaybe<Scalars['Int']['input']>;\n  maxSeats_gt?: InputMaybe<Scalars['Int']['input']>;\n  maxSeats_gte?: InputMaybe<Scalars['Int']['input']>;\n  maxSeats_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  maxSeats_lt?: InputMaybe<Scalars['Int']['input']>;\n  maxSeats_lte?: InputMaybe<Scalars['Int']['input']>;\n  maxSeats_not?: InputMaybe<Scalars['Int']['input']>;\n  maxSeats_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<RussianRouletteBet_Filter>>>;\n  startsAt?: InputMaybe<Scalars['BigInt']['input']>;\n  startsAt_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  startsAt_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  startsAt_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  startsAt_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  startsAt_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  startsAt_not?: InputMaybe<Scalars['BigInt']['input']>;\n  startsAt_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum RussianRouletteBet_OrderBy {\n  Bet = 'bet',\n  BetBetAmount = 'bet__betAmount',\n  BetBetId = 'bet__betId',\n  BetBetLaunchedTimestamp = 'bet__betLaunchedTimestamp',\n  BetBetLaunchedTxnHash = 'bet__betLaunchedTxnHash',\n  BetBetTimestamp = 'bet__betTimestamp',\n  BetCanceled = 'bet__canceled',\n  BetChargedVrfFees = 'bet__chargedVRFFees',\n  BetConsumedLinkVrfFees = 'bet__consumedLinkVRFFees',\n  BetConsumedNativeVrfFees = 'bet__consumedNativeVRFFees',\n  BetGameAddress = 'bet__gameAddress',\n  BetGameId = 'bet__gameId',\n  BetHouseEdge = 'bet__houseEdge',\n  BetId = 'bet__id',\n  BetPayout = 'bet__payout',\n  BetPot = 'bet__pot',\n  BetRefunded = 'bet__refunded',\n  BetResolved = 'bet__resolved',\n  BetRollTimestamp = 'bet__rollTimestamp',\n  BetRollTxnHash = 'bet__rollTxnHash',\n  DeathRatio = 'deathRatio',\n  GameResolvedTxnHash = 'gameResolvedTxnHash',\n  Id = 'id',\n  KilledSeats = 'killedSeats',\n  KilledSeatsCount = 'killedSeatsCount',\n  MaxSeats = 'maxSeats',\n  StartsAt = 'startsAt'\n}\n\nexport type Store = {\n  __typename?: 'Store';\n  affiliateCount: Scalars['BigInt']['output'];\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  id: Scalars['ID']['output'];\n  seatCount: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type Store_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliateCount?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  affiliateCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  and?: InputMaybe<Array<InputMaybe<Store_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<Store_Filter>>>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum Store_OrderBy {\n  AffiliateCount = 'affiliateCount',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Id = 'id',\n  SeatCount = 'seatCount',\n  UserCount = 'userCount',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount'\n}\n\nexport type Token = {\n  __typename?: 'Token';\n  affiliateAmount: Scalars['BigInt']['output'];\n  balancesDayData?: Maybe<Array<TokenBalancesDayData>>;\n  balancesDayDataLength: Scalars['Int']['output'];\n  bankAmount: Scalars['BigInt']['output'];\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  decimals: Scalars['Int']['output'];\n  dividendAmount: Scalars['BigInt']['output'];\n  id: Scalars['Bytes']['output'];\n  name: Scalars['String']['output'];\n  partnerAmount: Scalars['BigInt']['output'];\n  symbol: Scalars['String']['output'];\n  teamAmount: Scalars['BigInt']['output'];\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  treasuryAmount: Scalars['BigInt']['output'];\n  userCount: Scalars['BigInt']['output'];\n  usersTokens: Array<UserToken>;\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type TokenBalancesDayDataArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<TokenBalancesDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<TokenBalancesDayData_Filter>;\n};\n\n\nexport type TokenUsersTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<UserToken_Filter>;\n};\n\nexport type TokenBalancesDayData = {\n  __typename?: 'TokenBalancesDayData';\n  balance: Scalars['BigInt']['output'];\n  date: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  token: Token;\n};\n\nexport type TokenBalancesDayData_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<TokenBalancesDayData_Filter>>>;\n  balance?: InputMaybe<Scalars['BigInt']['input']>;\n  balance_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  balance_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  balance_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  balance_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  balance_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  balance_not?: InputMaybe<Scalars['BigInt']['input']>;\n  balance_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  date?: InputMaybe<Scalars['Int']['input']>;\n  date_gt?: InputMaybe<Scalars['Int']['input']>;\n  date_gte?: InputMaybe<Scalars['Int']['input']>;\n  date_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  date_lt?: InputMaybe<Scalars['Int']['input']>;\n  date_lte?: InputMaybe<Scalars['Int']['input']>;\n  date_not?: InputMaybe<Scalars['Int']['input']>;\n  date_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<TokenBalancesDayData_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<Token_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum TokenBalancesDayData_OrderBy {\n  Balance = 'balance',\n  Date = 'date',\n  Id = 'id',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenBalancesDayDataLength = 'token__balancesDayDataLength',\n  TokenBankAmount = 'token__bankAmount',\n  TokenBetCount = 'token__betCount',\n  TokenBetTxnCount = 'token__betTxnCount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenPartnerAmount = 'token__partnerAmount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUserCount = 'token__userCount',\n  TokenWinTxnCount = 'token__winTxnCount'\n}\n\nexport type Token_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  affiliateAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  affiliateAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  affiliateAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  and?: InputMaybe<Array<InputMaybe<Token_Filter>>>;\n  balancesDayDataLength?: InputMaybe<Scalars['Int']['input']>;\n  balancesDayDataLength_gt?: InputMaybe<Scalars['Int']['input']>;\n  balancesDayDataLength_gte?: InputMaybe<Scalars['Int']['input']>;\n  balancesDayDataLength_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  balancesDayDataLength_lt?: InputMaybe<Scalars['Int']['input']>;\n  balancesDayDataLength_lte?: InputMaybe<Scalars['Int']['input']>;\n  balancesDayDataLength_not?: InputMaybe<Scalars['Int']['input']>;\n  balancesDayDataLength_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  balancesDayData_?: InputMaybe<TokenBalancesDayData_Filter>;\n  bankAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  bankAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  bankAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  bankAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  bankAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  bankAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  bankAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  bankAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  decimals?: InputMaybe<Scalars['Int']['input']>;\n  decimals_gt?: InputMaybe<Scalars['Int']['input']>;\n  decimals_gte?: InputMaybe<Scalars['Int']['input']>;\n  decimals_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  decimals_lt?: InputMaybe<Scalars['Int']['input']>;\n  decimals_lte?: InputMaybe<Scalars['Int']['input']>;\n  decimals_not?: InputMaybe<Scalars['Int']['input']>;\n  decimals_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dividendAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  dividendAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  dividendAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  name?: InputMaybe<Scalars['String']['input']>;\n  name_contains?: InputMaybe<Scalars['String']['input']>;\n  name_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_ends_with?: InputMaybe<Scalars['String']['input']>;\n  name_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_gt?: InputMaybe<Scalars['String']['input']>;\n  name_gte?: InputMaybe<Scalars['String']['input']>;\n  name_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  name_lt?: InputMaybe<Scalars['String']['input']>;\n  name_lte?: InputMaybe<Scalars['String']['input']>;\n  name_not?: InputMaybe<Scalars['String']['input']>;\n  name_not_contains?: InputMaybe<Scalars['String']['input']>;\n  name_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  name_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  name_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  name_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  name_starts_with?: InputMaybe<Scalars['String']['input']>;\n  name_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  or?: InputMaybe<Array<InputMaybe<Token_Filter>>>;\n  partnerAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  partnerAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  partnerAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  partnerAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  partnerAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  partnerAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  partnerAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  partnerAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  symbol?: InputMaybe<Scalars['String']['input']>;\n  symbol_contains?: InputMaybe<Scalars['String']['input']>;\n  symbol_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_ends_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_gt?: InputMaybe<Scalars['String']['input']>;\n  symbol_gte?: InputMaybe<Scalars['String']['input']>;\n  symbol_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  symbol_lt?: InputMaybe<Scalars['String']['input']>;\n  symbol_lte?: InputMaybe<Scalars['String']['input']>;\n  symbol_not?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_contains?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  symbol_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  symbol_starts_with?: InputMaybe<Scalars['String']['input']>;\n  symbol_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  teamAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  teamAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  teamAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  treasuryAmount?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  treasuryAmount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  treasuryAmount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  userCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  usersTokens_?: InputMaybe<UserToken_Filter>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum Token_OrderBy {\n  AffiliateAmount = 'affiliateAmount',\n  BalancesDayData = 'balancesDayData',\n  BalancesDayDataLength = 'balancesDayDataLength',\n  BankAmount = 'bankAmount',\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Decimals = 'decimals',\n  DividendAmount = 'dividendAmount',\n  Id = 'id',\n  Name = 'name',\n  PartnerAmount = 'partnerAmount',\n  Symbol = 'symbol',\n  TeamAmount = 'teamAmount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  TreasuryAmount = 'treasuryAmount',\n  UserCount = 'userCount',\n  UsersTokens = 'usersTokens',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type User = {\n  __typename?: 'User';\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  bets: Array<Bet>;\n  consumedLinkVRFFees: Scalars['BigInt']['output'];\n  consumedNativeVRFFees: Scalars['BigInt']['output'];\n  firstBetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  id: Scalars['Bytes']['output'];\n  lastBetTimestamp?: Maybe<Scalars['BigInt']['output']>;\n  leaderboardAffiliatedUsers: Array<LeaderboardAffiliateUser>;\n  maxMultiplier: Scalars['BigDecimal']['output'];\n  pvpBets: Array<PvPBet>;\n  pvpMaxMultiplier: Scalars['BigDecimal']['output'];\n  pvpUserGameTokens: Array<PvPUserGameToken>;\n  pvpUserTokens: Array<PvPUserToken>;\n  seatCount: Scalars['BigInt']['output'];\n  totalChargedVRFFees: Scalars['BigInt']['output'];\n  userGameTokens: Array<UserGameToken>;\n  userTokens: Array<UserToken>;\n  wagerAndJoinTxnCount: Scalars['BigInt']['output'];\n  winSeatCount: Scalars['BigInt']['output'];\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type UserBetsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<Bet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<Bet_Filter>;\n};\n\n\nexport type UserLeaderboardAffiliatedUsersArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<LeaderboardAffiliateUser_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<LeaderboardAffiliateUser_Filter>;\n};\n\n\nexport type UserPvpBetsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPBet_Filter>;\n};\n\n\nexport type UserPvpUserGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPUserGameToken_Filter>;\n};\n\n\nexport type UserPvpUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<PvPUserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<PvPUserToken_Filter>;\n};\n\n\nexport type UserUserGameTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserGameToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<UserGameToken_Filter>;\n};\n\n\nexport type UserUserTokensArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserToken_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<UserToken_Filter>;\n};\n\nexport type UserGameToken = {\n  __typename?: 'UserGameToken';\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  dayData?: Maybe<Array<UserGameTokenDayData>>;\n  dayDataLength: Scalars['Int']['output'];\n  game: Scalars['String']['output'];\n  id: Scalars['ID']['output'];\n  token: Token;\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  user: User;\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\n\nexport type UserGameTokenDayDataArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<UserGameTokenDayData_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<UserGameTokenDayData_Filter>;\n};\n\nexport type UserGameTokenDayData = {\n  __typename?: 'UserGameTokenDayData';\n  betTxnCount: Scalars['BigInt']['output'];\n  date: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  userGameToken: UserGameToken;\n};\n\nexport type UserGameTokenDayData_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<UserGameTokenDayData_Filter>>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  date?: InputMaybe<Scalars['Int']['input']>;\n  date_gt?: InputMaybe<Scalars['Int']['input']>;\n  date_gte?: InputMaybe<Scalars['Int']['input']>;\n  date_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  date_lt?: InputMaybe<Scalars['Int']['input']>;\n  date_lte?: InputMaybe<Scalars['Int']['input']>;\n  date_not?: InputMaybe<Scalars['Int']['input']>;\n  date_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<UserGameTokenDayData_Filter>>>;\n  userGameToken?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_?: InputMaybe<UserGameToken_Filter>;\n  userGameToken_contains?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_ends_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_gt?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_gte?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  userGameToken_lt?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_lte?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_contains?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  userGameToken_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_starts_with?: InputMaybe<Scalars['String']['input']>;\n  userGameToken_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum UserGameTokenDayData_OrderBy {\n  BetTxnCount = 'betTxnCount',\n  Date = 'date',\n  Id = 'id',\n  UserGameToken = 'userGameToken',\n  UserGameTokenBetCount = 'userGameToken__betCount',\n  UserGameTokenBetTxnCount = 'userGameToken__betTxnCount',\n  UserGameTokenDayDataLength = 'userGameToken__dayDataLength',\n  UserGameTokenGame = 'userGameToken__game',\n  UserGameTokenId = 'userGameToken__id',\n  UserGameTokenTotalPayout = 'userGameToken__totalPayout',\n  UserGameTokenTotalWagered = 'userGameToken__totalWagered',\n  UserGameTokenWinTxnCount = 'userGameToken__winTxnCount'\n}\n\nexport type UserGameToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<UserGameToken_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  dayDataLength?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_gte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayDataLength_lt?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_lte?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not?: InputMaybe<Scalars['Int']['input']>;\n  dayDataLength_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;\n  dayData_?: InputMaybe<UserGameTokenDayData_Filter>;\n  game?: InputMaybe<Scalars['String']['input']>;\n  game_contains?: InputMaybe<Scalars['String']['input']>;\n  game_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_gt?: InputMaybe<Scalars['String']['input']>;\n  game_gte?: InputMaybe<Scalars['String']['input']>;\n  game_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_lt?: InputMaybe<Scalars['String']['input']>;\n  game_lte?: InputMaybe<Scalars['String']['input']>;\n  game_not?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains?: InputMaybe<Scalars['String']['input']>;\n  game_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  game_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with?: InputMaybe<Scalars['String']['input']>;\n  game_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<UserGameToken_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<Token_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum UserGameToken_OrderBy {\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  DayData = 'dayData',\n  DayDataLength = 'dayDataLength',\n  Game = 'game',\n  Id = 'id',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenBalancesDayDataLength = 'token__balancesDayDataLength',\n  TokenBankAmount = 'token__bankAmount',\n  TokenBetCount = 'token__betCount',\n  TokenBetTxnCount = 'token__betTxnCount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenPartnerAmount = 'token__partnerAmount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUserCount = 'token__userCount',\n  TokenWinTxnCount = 'token__winTxnCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type UserToken = {\n  __typename?: 'UserToken';\n  betCount: Scalars['BigInt']['output'];\n  betTxnCount: Scalars['BigInt']['output'];\n  id: Scalars['ID']['output'];\n  maxPayout: Scalars['BigInt']['output'];\n  token: Token;\n  totalPayout: Scalars['BigInt']['output'];\n  totalWagered: Scalars['BigInt']['output'];\n  user: User;\n  winTxnCount: Scalars['BigInt']['output'];\n};\n\nexport type UserToken_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<UserToken_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  maxPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  maxPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  maxPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<UserToken_Filter>>>;\n  token?: InputMaybe<Scalars['String']['input']>;\n  token_?: InputMaybe<Token_Filter>;\n  token_contains?: InputMaybe<Scalars['String']['input']>;\n  token_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_gt?: InputMaybe<Scalars['String']['input']>;\n  token_gte?: InputMaybe<Scalars['String']['input']>;\n  token_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_lt?: InputMaybe<Scalars['String']['input']>;\n  token_lte?: InputMaybe<Scalars['String']['input']>;\n  token_not?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains?: InputMaybe<Scalars['String']['input']>;\n  token_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  token_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with?: InputMaybe<Scalars['String']['input']>;\n  token_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  totalPayout?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalPayout_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalPayout_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalWagered_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalWagered_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  user?: InputMaybe<Scalars['String']['input']>;\n  user_?: InputMaybe<User_Filter>;\n  user_contains?: InputMaybe<Scalars['String']['input']>;\n  user_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_gt?: InputMaybe<Scalars['String']['input']>;\n  user_gte?: InputMaybe<Scalars['String']['input']>;\n  user_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_lt?: InputMaybe<Scalars['String']['input']>;\n  user_lte?: InputMaybe<Scalars['String']['input']>;\n  user_not?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains?: InputMaybe<Scalars['String']['input']>;\n  user_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  user_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with?: InputMaybe<Scalars['String']['input']>;\n  user_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum UserToken_OrderBy {\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Id = 'id',\n  MaxPayout = 'maxPayout',\n  Token = 'token',\n  TokenAffiliateAmount = 'token__affiliateAmount',\n  TokenBalancesDayDataLength = 'token__balancesDayDataLength',\n  TokenBankAmount = 'token__bankAmount',\n  TokenBetCount = 'token__betCount',\n  TokenBetTxnCount = 'token__betTxnCount',\n  TokenDecimals = 'token__decimals',\n  TokenDividendAmount = 'token__dividendAmount',\n  TokenId = 'token__id',\n  TokenName = 'token__name',\n  TokenPartnerAmount = 'token__partnerAmount',\n  TokenSymbol = 'token__symbol',\n  TokenTeamAmount = 'token__teamAmount',\n  TokenTotalPayout = 'token__totalPayout',\n  TokenTotalWagered = 'token__totalWagered',\n  TokenTreasuryAmount = 'token__treasuryAmount',\n  TokenUserCount = 'token__userCount',\n  TokenWinTxnCount = 'token__winTxnCount',\n  TotalPayout = 'totalPayout',\n  TotalWagered = 'totalWagered',\n  User = 'user',\n  UserBetCount = 'user__betCount',\n  UserBetTxnCount = 'user__betTxnCount',\n  UserConsumedLinkVrfFees = 'user__consumedLinkVRFFees',\n  UserConsumedNativeVrfFees = 'user__consumedNativeVRFFees',\n  UserFirstBetTimestamp = 'user__firstBetTimestamp',\n  UserId = 'user__id',\n  UserLastBetTimestamp = 'user__lastBetTimestamp',\n  UserMaxMultiplier = 'user__maxMultiplier',\n  UserPvpMaxMultiplier = 'user__pvpMaxMultiplier',\n  UserSeatCount = 'user__seatCount',\n  UserTotalChargedVrfFees = 'user__totalChargedVRFFees',\n  UserWagerAndJoinTxnCount = 'user__wagerAndJoinTxnCount',\n  UserWinSeatCount = 'user__winSeatCount',\n  UserWinTxnCount = 'user__winTxnCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type User_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<User_Filter>>>;\n  betCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  betTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  betTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  bets_?: InputMaybe<Bet_Filter>;\n  consumedLinkVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedLinkVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedLinkVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  consumedNativeVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  consumedNativeVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstBetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  firstBetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  firstBetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  id?: InputMaybe<Scalars['Bytes']['input']>;\n  id_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_gte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  id_lt?: InputMaybe<Scalars['Bytes']['input']>;\n  id_lte?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_contains?: InputMaybe<Scalars['Bytes']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;\n  lastBetTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  lastBetTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  lastBetTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  leaderboardAffiliatedUsers_?: InputMaybe<LeaderboardAffiliateUser_Filter>;\n  maxMultiplier?: InputMaybe<Scalars['BigDecimal']['input']>;\n  maxMultiplier_gt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  maxMultiplier_gte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  maxMultiplier_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  maxMultiplier_lt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  maxMultiplier_lte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  maxMultiplier_not?: InputMaybe<Scalars['BigDecimal']['input']>;\n  maxMultiplier_not_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<User_Filter>>>;\n  pvpBets_?: InputMaybe<PvPBet_Filter>;\n  pvpMaxMultiplier?: InputMaybe<Scalars['BigDecimal']['input']>;\n  pvpMaxMultiplier_gt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  pvpMaxMultiplier_gte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  pvpMaxMultiplier_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  pvpMaxMultiplier_lt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  pvpMaxMultiplier_lte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  pvpMaxMultiplier_not?: InputMaybe<Scalars['BigDecimal']['input']>;\n  pvpMaxMultiplier_not_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  pvpUserGameTokens_?: InputMaybe<PvPUserGameToken_Filter>;\n  pvpUserTokens_?: InputMaybe<PvPUserToken_Filter>;\n  seatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  seatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  seatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalChargedVRFFees?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  totalChargedVRFFees_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_not?: InputMaybe<Scalars['BigInt']['input']>;\n  totalChargedVRFFees_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  userGameTokens_?: InputMaybe<UserGameToken_Filter>;\n  userTokens_?: InputMaybe<UserToken_Filter>;\n  wagerAndJoinTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  wagerAndJoinTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  wagerAndJoinTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winSeatCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winSeatCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  winTxnCount_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not?: InputMaybe<Scalars['BigInt']['input']>;\n  winTxnCount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum User_OrderBy {\n  BetCount = 'betCount',\n  BetTxnCount = 'betTxnCount',\n  Bets = 'bets',\n  ConsumedLinkVrfFees = 'consumedLinkVRFFees',\n  ConsumedNativeVrfFees = 'consumedNativeVRFFees',\n  FirstBetTimestamp = 'firstBetTimestamp',\n  Id = 'id',\n  LastBetTimestamp = 'lastBetTimestamp',\n  LeaderboardAffiliatedUsers = 'leaderboardAffiliatedUsers',\n  MaxMultiplier = 'maxMultiplier',\n  PvpBets = 'pvpBets',\n  PvpMaxMultiplier = 'pvpMaxMultiplier',\n  PvpUserGameTokens = 'pvpUserGameTokens',\n  PvpUserTokens = 'pvpUserTokens',\n  SeatCount = 'seatCount',\n  TotalChargedVrfFees = 'totalChargedVRFFees',\n  UserGameTokens = 'userGameTokens',\n  UserTokens = 'userTokens',\n  WagerAndJoinTxnCount = 'wagerAndJoinTxnCount',\n  WinSeatCount = 'winSeatCount',\n  WinTxnCount = 'winTxnCount'\n}\n\nexport type WeightedGameBet = {\n  __typename?: 'WeightedGameBet';\n  bet: Bet;\n  config: WeightedGameConfig;\n  id: Scalars['ID']['output'];\n};\n\nexport type WeightedGameBet_Filter = {\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<WeightedGameBet_Filter>>>;\n  bet?: InputMaybe<Scalars['String']['input']>;\n  bet_?: InputMaybe<Bet_Filter>;\n  bet_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_gt?: InputMaybe<Scalars['String']['input']>;\n  bet_gte?: InputMaybe<Scalars['String']['input']>;\n  bet_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_lt?: InputMaybe<Scalars['String']['input']>;\n  bet_lte?: InputMaybe<Scalars['String']['input']>;\n  bet_not?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains?: InputMaybe<Scalars['String']['input']>;\n  bet_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  bet_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with?: InputMaybe<Scalars['String']['input']>;\n  bet_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config?: InputMaybe<Scalars['String']['input']>;\n  config_?: InputMaybe<WeightedGameConfig_Filter>;\n  config_contains?: InputMaybe<Scalars['String']['input']>;\n  config_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_ends_with?: InputMaybe<Scalars['String']['input']>;\n  config_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_gt?: InputMaybe<Scalars['String']['input']>;\n  config_gte?: InputMaybe<Scalars['String']['input']>;\n  config_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  config_lt?: InputMaybe<Scalars['String']['input']>;\n  config_lte?: InputMaybe<Scalars['String']['input']>;\n  config_not?: InputMaybe<Scalars['String']['input']>;\n  config_not_contains?: InputMaybe<Scalars['String']['input']>;\n  config_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  config_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  config_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  config_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  config_starts_with?: InputMaybe<Scalars['String']['input']>;\n  config_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<WeightedGameBet_Filter>>>;\n};\n\nexport enum WeightedGameBet_OrderBy {\n  Bet = 'bet',\n  BetBetAmount = 'bet__betAmount',\n  BetBetCount = 'bet__betCount',\n  BetBetTimestamp = 'bet__betTimestamp',\n  BetBetTxnHash = 'bet__betTxnHash',\n  BetChargedVrfFees = 'bet__chargedVRFFees',\n  BetConsumedLinkVrfFees = 'bet__consumedLinkVRFFees',\n  BetConsumedNativeVrfFees = 'bet__consumedNativeVRFFees',\n  BetFreebetId = 'bet__freebetId',\n  BetGameAddress = 'bet__gameAddress',\n  BetGameId = 'bet__gameId',\n  BetHouseEdge = 'bet__houseEdge',\n  BetId = 'bet__id',\n  BetInputValue = 'bet__inputValue',\n  BetIsFreebet = 'bet__isFreebet',\n  BetPayout = 'bet__payout',\n  BetPayoutMultiplier = 'bet__payoutMultiplier',\n  BetRefunded = 'bet__refunded',\n  BetResolved = 'bet__resolved',\n  BetRollTimestamp = 'bet__rollTimestamp',\n  BetRollTxnHash = 'bet__rollTxnHash',\n  BetStopGain = 'bet__stopGain',\n  BetStopLoss = 'bet__stopLoss',\n  BetTotalBetAmount = 'bet__totalBetAmount',\n  Config = 'config',\n  ConfigEv = 'config__EV',\n  ConfigCreationTimestamp = 'config__creationTimestamp',\n  ConfigGameId = 'config__gameId',\n  ConfigId = 'config__id',\n  ConfigWeightedGameId = 'config__weightedGameId',\n  Id = 'id'\n}\n\nexport type WeightedGameConfig = {\n  __typename?: 'WeightedGameConfig';\n  EV: Scalars['BigDecimal']['output'];\n  bets: Array<WeightedGameBet>;\n  creationTimestamp: Scalars['BigInt']['output'];\n  creator: User;\n  gameId: Scalars['String']['output'];\n  id: Scalars['ID']['output'];\n  multipliers: Array<Scalars['BigInt']['output']>;\n  weightedGameId: Scalars['BigInt']['output'];\n  weights: Array<Scalars['BigInt']['output']>;\n};\n\n\nexport type WeightedGameConfigBetsArgs = {\n  first?: InputMaybe<Scalars['Int']['input']>;\n  orderBy?: InputMaybe<WeightedGameBet_OrderBy>;\n  orderDirection?: InputMaybe<OrderDirection>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  where?: InputMaybe<WeightedGameBet_Filter>;\n};\n\nexport type WeightedGameConfig_Filter = {\n  EV?: InputMaybe<Scalars['BigDecimal']['input']>;\n  EV_gt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  EV_gte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  EV_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  EV_lt?: InputMaybe<Scalars['BigDecimal']['input']>;\n  EV_lte?: InputMaybe<Scalars['BigDecimal']['input']>;\n  EV_not?: InputMaybe<Scalars['BigDecimal']['input']>;\n  EV_not_in?: InputMaybe<Array<Scalars['BigDecimal']['input']>>;\n  /** Filter for the block changed event. */\n  _change_block?: InputMaybe<BlockChangedFilter>;\n  and?: InputMaybe<Array<InputMaybe<WeightedGameConfig_Filter>>>;\n  bets_?: InputMaybe<WeightedGameBet_Filter>;\n  creationTimestamp?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  creationTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;\n  creationTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  creator?: InputMaybe<Scalars['String']['input']>;\n  creator_?: InputMaybe<User_Filter>;\n  creator_contains?: InputMaybe<Scalars['String']['input']>;\n  creator_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  creator_ends_with?: InputMaybe<Scalars['String']['input']>;\n  creator_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  creator_gt?: InputMaybe<Scalars['String']['input']>;\n  creator_gte?: InputMaybe<Scalars['String']['input']>;\n  creator_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  creator_lt?: InputMaybe<Scalars['String']['input']>;\n  creator_lte?: InputMaybe<Scalars['String']['input']>;\n  creator_not?: InputMaybe<Scalars['String']['input']>;\n  creator_not_contains?: InputMaybe<Scalars['String']['input']>;\n  creator_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  creator_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  creator_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  creator_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  creator_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  creator_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  creator_starts_with?: InputMaybe<Scalars['String']['input']>;\n  creator_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId?: InputMaybe<Scalars['String']['input']>;\n  gameId_contains?: InputMaybe<Scalars['String']['input']>;\n  gameId_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_gt?: InputMaybe<Scalars['String']['input']>;\n  gameId_gte?: InputMaybe<Scalars['String']['input']>;\n  gameId_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameId_lt?: InputMaybe<Scalars['String']['input']>;\n  gameId_lte?: InputMaybe<Scalars['String']['input']>;\n  gameId_not?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_contains?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_ends_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_in?: InputMaybe<Array<Scalars['String']['input']>>;\n  gameId_not_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  gameId_starts_with?: InputMaybe<Scalars['String']['input']>;\n  gameId_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;\n  id?: InputMaybe<Scalars['ID']['input']>;\n  id_gt?: InputMaybe<Scalars['ID']['input']>;\n  id_gte?: InputMaybe<Scalars['ID']['input']>;\n  id_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  id_lt?: InputMaybe<Scalars['ID']['input']>;\n  id_lte?: InputMaybe<Scalars['ID']['input']>;\n  id_not?: InputMaybe<Scalars['ID']['input']>;\n  id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;\n  multipliers?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  multipliers_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  multipliers_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  multipliers_not?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  multipliers_not_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  multipliers_not_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  or?: InputMaybe<Array<InputMaybe<WeightedGameConfig_Filter>>>;\n  weightedGameId?: InputMaybe<Scalars['BigInt']['input']>;\n  weightedGameId_gt?: InputMaybe<Scalars['BigInt']['input']>;\n  weightedGameId_gte?: InputMaybe<Scalars['BigInt']['input']>;\n  weightedGameId_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weightedGameId_lt?: InputMaybe<Scalars['BigInt']['input']>;\n  weightedGameId_lte?: InputMaybe<Scalars['BigInt']['input']>;\n  weightedGameId_not?: InputMaybe<Scalars['BigInt']['input']>;\n  weightedGameId_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weights?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weights_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weights_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weights_not?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weights_not_contains?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n  weights_not_contains_nocase?: InputMaybe<Array<Scalars['BigInt']['input']>>;\n};\n\nexport enum WeightedGameConfig_OrderBy {\n  Ev = 'EV',\n  Bets = 'bets',\n  CreationTimestamp = 'creationTimestamp',\n  Creator = 'creator',\n  CreatorBetCount = 'creator__betCount',\n  CreatorBetTxnCount = 'creator__betTxnCount',\n  CreatorConsumedLinkVrfFees = 'creator__consumedLinkVRFFees',\n  CreatorConsumedNativeVrfFees = 'creator__consumedNativeVRFFees',\n  CreatorFirstBetTimestamp = 'creator__firstBetTimestamp',\n  CreatorId = 'creator__id',\n  CreatorLastBetTimestamp = 'creator__lastBetTimestamp',\n  CreatorMaxMultiplier = 'creator__maxMultiplier',\n  CreatorPvpMaxMultiplier = 'creator__pvpMaxMultiplier',\n  CreatorSeatCount = 'creator__seatCount',\n  CreatorTotalChargedVrfFees = 'creator__totalChargedVRFFees',\n  CreatorWagerAndJoinTxnCount = 'creator__wagerAndJoinTxnCount',\n  CreatorWinSeatCount = 'creator__winSeatCount',\n  CreatorWinTxnCount = 'creator__winTxnCount',\n  GameId = 'gameId',\n  Id = 'id',\n  Multipliers = 'multipliers',\n  WeightedGameId = 'weightedGameId',\n  Weights = 'weights'\n}\n\nexport type _Block_ = {\n  __typename?: '_Block_';\n  /** The hash of the block */\n  hash?: Maybe<Scalars['Bytes']['output']>;\n  /** The block number */\n  number: Scalars['Int']['output'];\n  /** The hash of the parent block */\n  parentHash?: Maybe<Scalars['Bytes']['output']>;\n  /** Integer representation of the timestamp stored in blocks for the chain */\n  timestamp?: Maybe<Scalars['Int']['output']>;\n};\n\n/** The type for the top-level _meta field */\nexport type _Meta_ = {\n  __typename?: '_Meta_';\n  /**\n   * Information about a specific subgraph block. The hash of the block\n   * will be null if the _meta field has a block constraint that asks for\n   * a block number. It will be filled if the _meta field has no block constraint\n   * and therefore asks for the latest  block\n   *\n   */\n  block: _Block_;\n  /** The deployment ID */\n  deployment: Scalars['String']['output'];\n  /** If `true`, the subgraph encountered indexing errors at some past block */\n  hasIndexingErrors: Scalars['Boolean']['output'];\n};\n\nexport enum _SubgraphErrorPolicy_ {\n  /** Data will be returned even if the subgraph has indexing errors */\n  Allow = 'allow',\n  /** If the subgraph has indexing errors, data will be omitted. The default. */\n  Deny = 'deny'\n}\n","import * as Types from '../types';\n\nimport gql from 'graphql-tag';\nexport type BetFragment = { __typename?: 'Bet', id: string, gameId: string, gameAddress: any, betAmount?: string | null, betCount: string, stopLoss: string, stopGain: string, houseEdge: number, betTimestamp: string, chargedVRFFees: string, betTxnHash: any, payout?: string | null, payoutMultiplier?: string | null, rollTxnHash?: any | null, rollTimestamp?: string | null, encodedInput: string, isResolved: boolean, isRefunded: boolean, rollTotalBetAmount?: string | null, encodedRolled?: Array<string> | null, user: { __typename?: 'User', address: any }, gameToken: { __typename?: 'GameToken', id: string, token: { __typename?: 'Token', symbol: string, name: string, decimals: number, address: any } }, affiliate?: { __typename?: 'Affiliate', address: any } | null, weightedGameBet?: { __typename?: 'WeightedGameBet', config: { __typename?: 'WeightedGameConfig', id: string, multipliers: Array<string>, weights: Array<string> } } | null };\n\nexport const BetFragmentDoc = gql`\n    fragment Bet on Bet {\n  id\n  gameId\n  gameAddress\n  user {\n    address: id\n  }\n  gameToken {\n    id\n    token {\n      address: id\n      symbol\n      name\n      decimals\n    }\n  }\n  affiliate {\n    address: id\n  }\n  encodedInput: inputValue\n  betAmount\n  betCount\n  stopLoss\n  stopGain\n  houseEdge\n  betTimestamp\n  isResolved: resolved\n  isRefunded: refunded\n  chargedVRFFees\n  betTxnHash\n  rollTotalBetAmount: totalBetAmount\n  payout\n  payoutMultiplier\n  rollTxnHash\n  encodedRolled: rolled\n  rollTimestamp\n  weightedGameBet {\n    config {\n      id\n      multipliers\n      weights\n    }\n  }\n}\n    `;","import * as Types from './types';\n\nimport gql from 'graphql-tag';\nimport { BetFragmentDoc } from './fragments/bet';\nexport type BetQueryVariables = Types.Exact<{\n  id: Types.Scalars['ID']['input'];\n}>;\n\n\nexport type BetQuery = { __typename?: 'Query', bet?: { __typename?: 'Bet', id: string, gameId: string, gameAddress: any, betAmount?: string | null, betCount: string, stopLoss: string, stopGain: string, houseEdge: number, betTimestamp: string, chargedVRFFees: string, betTxnHash: any, payout?: string | null, payoutMultiplier?: string | null, rollTxnHash?: any | null, rollTimestamp?: string | null, encodedInput: string, isResolved: boolean, isRefunded: boolean, rollTotalBetAmount?: string | null, encodedRolled?: Array<string> | null, user: { __typename?: 'User', address: any }, gameToken: { __typename?: 'GameToken', id: string, token: { __typename?: 'Token', symbol: string, name: string, decimals: number, address: any } }, affiliate?: { __typename?: 'Affiliate', address: any } | null, weightedGameBet?: { __typename?: 'WeightedGameBet', config: { __typename?: 'WeightedGameConfig', id: string, multipliers: Array<string>, weights: Array<string> } } | null } | null };\n\n\nexport const BetDocument = gql`\n    query Bet($id: ID!) {\n  bet(id: $id, subgraphError: allow) {\n    ...Bet\n  }\n}\n    ${BetFragmentDoc}`;","import * as Types from './types';\n\nimport gql from 'graphql-tag';\nimport { BetFragmentDoc } from './fragments/bet';\nexport type BetsQueryVariables = Types.Exact<{\n  first?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n  skip?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n  where?: Types.InputMaybe<Types.Bet_Filter>;\n  orderBy?: Types.InputMaybe<Types.Bet_OrderBy>;\n  orderDirection?: Types.InputMaybe<Types.OrderDirection>;\n}>;\n\n\nexport type BetsQuery = { __typename?: 'Query', bets: Array<{ __typename?: 'Bet', id: string, gameId: string, gameAddress: any, betAmount?: string | null, betCount: string, stopLoss: string, stopGain: string, houseEdge: number, betTimestamp: string, chargedVRFFees: string, betTxnHash: any, payout?: string | null, payoutMultiplier?: string | null, rollTxnHash?: any | null, rollTimestamp?: string | null, encodedInput: string, isResolved: boolean, isRefunded: boolean, rollTotalBetAmount?: string | null, encodedRolled?: Array<string> | null, user: { __typename?: 'User', address: any }, gameToken: { __typename?: 'GameToken', id: string, token: { __typename?: 'Token', symbol: string, name: string, decimals: number, address: any } }, affiliate?: { __typename?: 'Affiliate', address: any } | null, weightedGameBet?: { __typename?: 'WeightedGameBet', config: { __typename?: 'WeightedGameConfig', id: string, multipliers: Array<string>, weights: Array<string> } } | null }> };\n\n\nexport const BetsDocument = gql`\n    query Bets($first: Int, $skip: Int, $where: Bet_filter, $orderBy: Bet_orderBy, $orderDirection: OrderDirection) {\n  bets(\n    first: $first\n    skip: $skip\n    where: $where\n    orderBy: $orderBy\n    orderDirection: $orderDirection\n    subgraphError: allow\n  ) {\n    ...Bet\n  }\n}\n    ${BetFragmentDoc}`;","export const replaceGraphQlKey = (endpoint: string, key: string) => {\n  const updatedEndpoint = endpoint.includes(\"{key}\") ? endpoint.replace(\"{key}\", key) : endpoint;\n  return updatedEndpoint;\n};\n","import {\n  type ApolloCache,\n  type DefaultOptions,\n  type FetchPolicy,\n  InMemoryCache,\n} from \"@apollo/client/core/index.js\";\nimport { FORMAT_TYPE } from \"../../../../utils/format\";\nimport { replaceGraphQlKey } from \"../../../../utils/subgraphs\";\nimport { type CasinoChainId, casinoChainById } from \"../../../casino\";\n\nexport interface SubgraphCasinoClient {\n  chainId: CasinoChainId;\n  theGraphKey?: string;\n  cache?: ApolloCache<any>;\n  defaultOptions?: DefaultOptions;\n  formatType?: FORMAT_TYPE;\n}\n\nexport const defaultSubgraphCasinoClient = {\n  cache: new InMemoryCache(),\n  defaultOptions: {\n    query: {\n      fetchPolicy: \"network-only\" as FetchPolicy,\n    },\n  },\n  formatType: FORMAT_TYPE.STANDARD,\n};\n\nexport function getGraphqlEndpoint(subgraphClient: SubgraphCasinoClient) {\n  const casinoChain = casinoChainById[subgraphClient.chainId];\n  const graphQlKey = subgraphClient.theGraphKey;\n  if (graphQlKey) {\n    return replaceGraphQlKey(casinoChain.graphql.endpoint, graphQlKey);\n  }\n  return casinoChain.graphql.defaultEndpoint;\n}\n","import { ApolloClient } from \"@apollo/client/core/index.js\";\nimport { type Address, type Hash, getAddress, zeroAddress } from \"viem\";\nimport type { NORMAL_CASINO_GAME_TYPE, WeightedGameConfiguration } from \"../../../..\";\nimport { DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE } from \"../../../../constants\";\nimport { ERROR_CODES } from \"../../../../errors\";\nimport { SubgraphError } from \"../../../../errors/types\";\nimport type { CasinoBet, Token } from \"../../../../interfaces\";\nimport {\n  chainNativeCurrencyToToken,\n  decodeNormalCasinoInput,\n  decodeNormalCasinoRolled,\n  decodeWeightedCasinoInput,\n  decodeWeightedCasinoRolled,\n} from \"../../../../utils\";\nimport { FORMAT_TYPE, formatRawAmount } from \"../../../../utils/format\";\nimport {\n  CASINO_GAME_SUBGRAPH_TYPE,\n  CASINO_GAME_TYPE,\n  type CasinoChainId,\n  casinoChainById,\n  subgraphGameByType,\n  typeBySubgraphCasinoGame,\n} from \"../../../casino\";\nimport { BetDocument, type BetQuery, type BetQueryVariables } from \"../documents/bet\";\nimport { BetsDocument, type BetsQuery, type BetsQueryVariables } from \"../documents/bets\";\nimport type { BetFragment } from \"../documents/fragments/bet\";\nimport { Bet_OrderBy, OrderDirection } from \"../documents/types\";\nimport {\n  type SubgraphCasinoClient,\n  defaultSubgraphCasinoClient,\n  getGraphqlEndpoint,\n} from \"./common\";\n\nexport function formatCasinoBet(\n  bet: BetFragment,\n  chainId: CasinoChainId,\n  formatType: FORMAT_TYPE = FORMAT_TYPE.STANDARD,\n): CasinoBet {\n  const casinoChain = casinoChainById[chainId];\n  const betAmount = bet.betAmount ? BigInt(bet.betAmount) : 0n;\n  const nativeCurrency = casinoChain.viemChain.nativeCurrency;\n  const token =\n    bet.gameToken.token.address === zeroAddress\n      ? chainNativeCurrencyToToken(nativeCurrency)\n      : {\n          address: getAddress(bet.gameToken.token.address),\n          symbol: bet.gameToken.token.symbol,\n          decimals: bet.gameToken.token.decimals,\n        };\n  const game = typeBySubgraphCasinoGame[bet.gameId as CASINO_GAME_SUBGRAPH_TYPE];\n  const totalBetAmount = betAmount * BigInt(bet.betCount);\n  const rollTotalBetAmount = bet.rollTotalBetAmount ? BigInt(bet.rollTotalBetAmount) : undefined;\n  const benefit =\n    rollTotalBetAmount && bet.payout ? BigInt(bet.payout) - BigInt(rollTotalBetAmount) : undefined;\n  const encodedRolled = bet.encodedRolled ? bet.encodedRolled : undefined;\n  const isWin =\n    rollTotalBetAmount && bet.payout ? BigInt(bet.payout) >= rollTotalBetAmount : undefined;\n  const isStopTriggered = encodedRolled ? encodedRolled.length !== Number(bet.betCount) : undefined;\n\n  const weightedGameConfiguration: WeightedGameConfiguration | undefined = bet.weightedGameBet\n    ? {\n        configId: Number(bet.weightedGameBet.config.id),\n        multipliers: bet.weightedGameBet.config.multipliers.map((multiplier) => BigInt(multiplier)),\n        weights: bet.weightedGameBet.config.weights.map((weight) => BigInt(weight)),\n        game,\n        chainId,\n      }\n    : undefined;\n  return {\n    id: BigInt(bet.id),\n    token,\n    nativeCurrency: chainNativeCurrencyToToken(nativeCurrency),\n    chainId,\n    game,\n    gameAddress: getAddress(bet.gameAddress),\n    bettor: getAddress(bet.user.address),\n    betAmount,\n    formattedBetAmount: formatRawAmount(betAmount, token.decimals, formatType),\n    betCount: Number(bet.betCount),\n    totalBetAmount: totalBetAmount,\n    formattedTotalBetAmount: formatRawAmount(totalBetAmount, token.decimals, formatType),\n    stopLoss: BigInt(bet.stopLoss),\n    formattedStopLoss: formatRawAmount(BigInt(bet.stopLoss), token.decimals, formatType),\n    stopGain: BigInt(bet.stopGain),\n    formattedStopGain: formatRawAmount(BigInt(bet.stopGain), token.decimals, formatType),\n    houseEdge: bet.houseEdge, // BP\n    betTimestampSecs: Number(bet.betTimestamp), // secs\n    betDate: new Date(Math.round(Number(bet.betTimestamp) * 1000)),\n    chargedVRFFees: BigInt(bet.chargedVRFFees),\n    formattedChargedVRFFees: formatRawAmount(\n      BigInt(bet.chargedVRFFees),\n      nativeCurrency.decimals,\n      formatType,\n    ),\n    betTxnHash: bet.betTxnHash,\n    encodedInput: bet.encodedInput,\n    decodedInput: weightedGameConfiguration\n      ? decodeWeightedCasinoInput(bet.encodedInput, weightedGameConfiguration, bet.houseEdge)\n      : decodeNormalCasinoInput(bet.encodedInput, game as NORMAL_CASINO_GAME_TYPE),\n    payout: bet.payout ? BigInt(bet.payout) : undefined,\n    formattedPayout: bet.payout\n      ? formatRawAmount(BigInt(bet.payout), token.decimals, formatType)\n      : undefined,\n    formattedPayoutMultiplier: bet.payoutMultiplier ? Number(bet.payoutMultiplier) : undefined,\n    benefit,\n    formattedBenefit: benefit ? formatRawAmount(benefit, token.decimals, formatType) : undefined,\n    rollTxnHash: bet.rollTxnHash,\n    rollTimestampSecs: bet.rollTimestamp ? Number(bet.rollTimestamp) : undefined, // secs\n    rollDate: bet.rollTimestamp\n      ? new Date(Math.round(Number(bet.rollTimestamp) * 1000))\n      : undefined,\n    isResolved: bet.isResolved,\n    isRefunded: bet.isRefunded,\n    rollTotalBetAmount,\n    fomattedRollTotalBetAmount: rollTotalBetAmount\n      ? formatRawAmount(rollTotalBetAmount, token.decimals, formatType)\n      : undefined,\n    rollBetCount: encodedRolled?.length,\n    encodedRolled,\n    decodedRolled: encodedRolled?.map((encoded) =>\n      weightedGameConfiguration\n        ? decodeWeightedCasinoRolled(encoded, weightedGameConfiguration, bet.houseEdge)\n        : decodeNormalCasinoRolled(encoded, game as NORMAL_CASINO_GAME_TYPE),\n    ),\n    affiliate: bet.affiliate?.address ? bet.affiliate.address : undefined,\n    isWin,\n    isLost: isWin === undefined ? undefined : !isWin,\n    isStopLossTriggered: isStopTriggered === undefined ? undefined : isStopTriggered && !isWin,\n    isStopGainTriggered: isStopTriggered === undefined ? undefined : isStopTriggered && isWin,\n  };\n}\n\nexport enum CasinoBetFilterStatus {\n  RESOLVED = \"RESOLVED\",\n  PENDING = \"PENDING\",\n}\n\nexport async function fetchBets(\n  client: SubgraphCasinoClient,\n  filter?: {\n    bettor?: Address;\n    game?: CASINO_GAME_TYPE;\n    token?: Token;\n    status?: CasinoBetFilterStatus;\n    affiliates?: Address[];\n  },\n  page = DEFAULT_PAGE,\n  itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\n  sortBy: { key: Bet_OrderBy; order: OrderDirection } = {\n    key: Bet_OrderBy.BetTimestamp,\n    order: OrderDirection.Desc,\n  },\n): Promise<{ bets: CasinoBet[]; error: SubgraphError | undefined }> {\n  const apolloClient = new ApolloClient({\n    uri: getGraphqlEndpoint(client),\n    cache: client.cache ?? defaultSubgraphCasinoClient.cache,\n    defaultOptions: client.defaultOptions ?? defaultSubgraphCasinoClient.defaultOptions,\n  });\n\n  const variables: BetsQueryVariables = {\n    first: itemsPerPage,\n    skip: itemsPerPage * (page - 1),\n    where: {\n      ...(filter?.bettor && { user: filter.bettor.toLowerCase() }),\n      ...(filter?.game && { gameId: subgraphGameByType[filter.game] }),\n      ...(filter?.token && {\n        gameToken_: { token: filter.token.address.toLowerCase() },\n      }),\n      ...(filter?.status !== undefined && {\n        resolved: filter.status === CasinoBetFilterStatus.RESOLVED,\n      }),\n      ...(filter?.affiliates?.length && {\n        affiliate_in: filter.affiliates.map((a) => a.toLowerCase()),\n      }),\n    },\n    orderBy: sortBy?.key,\n    orderDirection: sortBy?.order,\n  };\n\n  const { data, error } = await apolloClient.query<BetsQuery, BetsQueryVariables>({\n    query: BetsDocument,\n    variables,\n  });\n\n  return {\n    bets:\n      data?.bets.map((bet) =>\n        formatCasinoBet(\n          bet,\n          client.chainId,\n          client.formatType ?? defaultSubgraphCasinoClient.formatType,\n        ),\n      ) ?? [],\n    error: error\n      ? new SubgraphError(\"Error fetching bets\", ERROR_CODES.SUBGRAPH.FETCH_BETS_ERROR, error)\n      : undefined,\n  };\n}\n\nexport async function fetchBet(\n  id: string | bigint,\n  client: SubgraphCasinoClient,\n): Promise<{ bet: CasinoBet | undefined; error: SubgraphError | undefined }> {\n  const apolloClient = new ApolloClient({\n    uri: getGraphqlEndpoint(client),\n    cache: client.cache ?? defaultSubgraphCasinoClient.cache,\n  });\n\n  const { data, error } = await apolloClient.query<BetQuery, BetQueryVariables>({\n    query: BetDocument,\n    variables: {\n      id: id.toString(),\n    },\n  });\n\n  return {\n    bet: data.bet\n      ? formatCasinoBet(\n          data.bet,\n          client.chainId,\n          client.formatType ?? defaultSubgraphCasinoClient.formatType,\n        )\n      : undefined,\n    error: error\n      ? new SubgraphError(\"Error fetching bet\", ERROR_CODES.SUBGRAPH.FETCH_BET_ERROR, error)\n      : undefined,\n  };\n}\n\nexport async function fetchBetByHash(\n  placeBetHash: Hash,\n  client: SubgraphCasinoClient,\n): Promise<{ bet: CasinoBet | undefined; error: SubgraphError | undefined }> {\n  const apolloClient = new ApolloClient({\n    uri: getGraphqlEndpoint(client),\n    cache: client.cache ?? defaultSubgraphCasinoClient.cache,\n    defaultOptions: client.defaultOptions ?? defaultSubgraphCasinoClient.defaultOptions,\n  });\n\n  const variables: BetsQueryVariables = {\n    first: 1,\n    where: {\n      betTxnHash: placeBetHash.toLowerCase(),\n    },\n  };\n\n  const { data, error } = await apolloClient.query<BetsQuery, BetsQueryVariables>({\n    query: BetsDocument,\n    variables,\n  });\n  return {\n    bet: data.bets[0]\n      ? formatCasinoBet(\n          data.bets[0],\n          client.chainId,\n          client.formatType ?? defaultSubgraphCasinoClient.formatType,\n        )\n      : undefined,\n    error: error\n      ? new SubgraphError(\"Error fetching bet\", ERROR_CODES.SUBGRAPH.FETCH_BET_ERROR, error)\n      : undefined,\n  };\n}\n","import * as Types from '../types';\n\nimport gql from 'graphql-tag';\nexport type TokenFragment = { __typename?: 'Token', id: any, symbol: string, name: string, decimals: number, betTxnCount: string, betCount: string, winTxnCount: string, userCount: string, totalWagered: string, totalPayout: string, dividendAmount: string, bankAmount: string, partnerAmount: string, affiliateAmount: string, treasuryAmount: string, teamAmount: string, address: any };\n\nexport const TokenFragmentDoc = gql`\n    fragment Token on Token {\n  id\n  address: id\n  symbol\n  name\n  decimals\n  betTxnCount\n  betCount\n  winTxnCount\n  userCount\n  totalWagered\n  totalPayout\n  dividendAmount\n  bankAmount\n  partnerAmount\n  affiliateAmount\n  treasuryAmount\n  teamAmount\n}\n    `;","import * as Types from './types';\n\nimport gql from 'graphql-tag';\nimport { TokenFragmentDoc } from './fragments/token';\nexport type TokenQueryVariables = Types.Exact<{\n  id: Types.Scalars['ID']['input'];\n}>;\n\n\nexport type TokenQuery = { __typename?: 'Query', token?: { __typename?: 'Token', id: any, symbol: string, name: string, decimals: number, betTxnCount: string, betCount: string, winTxnCount: string, userCount: string, totalWagered: string, totalPayout: string, dividendAmount: string, bankAmount: string, partnerAmount: string, affiliateAmount: string, treasuryAmount: string, teamAmount: string, address: any } | null };\n\n\nexport const TokenDocument = gql`\n    query Token($id: ID!) {\n  token(id: $id, subgraphError: allow) {\n    ...Token\n  }\n}\n    ${TokenFragmentDoc}`;","import * as Types from './types';\n\nimport gql from 'graphql-tag';\nimport { TokenFragmentDoc } from './fragments/token';\nexport type TokensQueryVariables = Types.Exact<{\n  first?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n  skip?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n  where?: Types.InputMaybe<Types.Token_Filter>;\n  orderBy?: Types.InputMaybe<Types.Token_OrderBy>;\n  orderDirection?: Types.InputMaybe<Types.OrderDirection>;\n}>;\n\n\nexport type TokensQuery = { __typename?: 'Query', tokens: Array<{ __typename?: 'Token', id: any, symbol: string, name: string, decimals: number, betTxnCount: string, betCount: string, winTxnCount: string, userCount: string, totalWagered: string, totalPayout: string, dividendAmount: string, bankAmount: string, partnerAmount: string, affiliateAmount: string, treasuryAmount: string, teamAmount: string, address: any }> };\n\n\nexport const TokensDocument = gql`\n    query Tokens($first: Int, $skip: Int, $where: Token_filter, $orderBy: Token_orderBy, $orderDirection: OrderDirection) {\n  tokens(\n    first: $first\n    skip: $skip\n    where: $where\n    orderBy: $orderBy\n    orderDirection: $orderDirection\n    subgraphError: allow\n  ) {\n    ...Token\n  }\n}\n    ${TokenFragmentDoc}`;","import { ApolloClient } from \"@apollo/client/core/index.js\";\nimport { type Address } from \"viem\";\nimport { DEFAULT_ITEMS_PER_PAGE, SubgraphError } from \"../../../..\";\nimport { DEFAULT_PAGE } from \"../../../../constants\";\nimport { ERROR_CODES } from \"../../../../errors\";\nimport type { SubgraphToken } from \"../../../../interfaces\";\nimport { FORMAT_TYPE, formatRawAmount } from \"../../../../utils/format\";\nimport { type CasinoChainId } from \"../../../casino\";\nimport type { TokenFragment } from \"../documents/fragments/token\";\nimport { TokenDocument, type TokenQuery, type TokenQueryVariables } from \"../documents/token\";\nimport { TokensDocument, type TokensQuery, type TokensQueryVariables } from \"../documents/tokens\";\nimport { OrderDirection, Token_OrderBy } from \"../documents/types\";\nimport { getGraphqlEndpoint } from \"./common\";\nimport { defaultSubgraphCasinoClient } from \"./common\";\nimport type { SubgraphCasinoClient } from \"./common\";\n\nexport function formatToken(\n  token: TokenFragment,\n  chainId: CasinoChainId,\n  formatType: FORMAT_TYPE = FORMAT_TYPE.STANDARD,\n): SubgraphToken {\n  return {\n    id: token.id as Address,\n    address: token.address as Address,\n    chainId,\n    symbol: token.symbol,\n    name: token.name,\n    decimals: token.decimals,\n    betTxnCount: Number(token.betTxnCount),\n    betCount: Number(token.betCount),\n    winTxnCount: Number(token.winTxnCount),\n    userCount: Number(token.userCount),\n    totalWagered: BigInt(token.totalWagered),\n    formattedTotalWagered: formatRawAmount(BigInt(token.totalWagered), token.decimals, formatType),\n    totalPayout: BigInt(token.totalPayout),\n    formattedTotalPayout: formatRawAmount(BigInt(token.totalPayout), token.decimals, formatType),\n    dividendAmount: BigInt(token.dividendAmount),\n    formattedDividendAmount: formatRawAmount(\n      BigInt(token.dividendAmount),\n      token.decimals,\n      formatType,\n    ),\n    bankAmount: BigInt(token.bankAmount),\n    formattedBankAmount: formatRawAmount(BigInt(token.bankAmount), token.decimals, formatType),\n    affiliateAmount: BigInt(token.affiliateAmount),\n    formattedAffiliateAmount: formatRawAmount(\n      BigInt(token.affiliateAmount),\n      token.decimals,\n      formatType,\n    ),\n    treasuryAmount: BigInt(token.treasuryAmount),\n    formattedTreasuryAmount: formatRawAmount(\n      BigInt(token.treasuryAmount),\n      token.decimals,\n      formatType,\n    ),\n    teamAmount: BigInt(token.teamAmount),\n    formattedTeamAmount: formatRawAmount(BigInt(token.teamAmount), token.decimals, formatType),\n  };\n}\n\nexport async function fetchTokens(\n  client: SubgraphCasinoClient,\n  page = DEFAULT_PAGE,\n  itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\n  sortBy: { key: Token_OrderBy; order: OrderDirection } = {\n    key: Token_OrderBy.Symbol,\n    order: OrderDirection.Asc,\n  },\n): Promise<{ tokens: SubgraphToken[]; error: SubgraphError | undefined }> {\n  const apolloClient = new ApolloClient({\n    uri: getGraphqlEndpoint(client),\n    cache: client.cache ?? defaultSubgraphCasinoClient.cache,\n    defaultOptions: client.defaultOptions ?? defaultSubgraphCasinoClient.defaultOptions,\n  });\n\n  const variables: TokensQueryVariables = {\n    first: itemsPerPage,\n    skip: itemsPerPage * (page - 1),\n    //where: {},\n    orderBy: sortBy?.key,\n    orderDirection: sortBy?.order,\n  };\n\n  const { data, error } = await apolloClient.query<TokensQuery, TokensQueryVariables>({\n    query: TokensDocument,\n    variables,\n  });\n\n  return {\n    tokens:\n      data?.tokens.map((token) =>\n        formatToken(\n          token,\n          client.chainId,\n          client.formatType ?? defaultSubgraphCasinoClient.formatType,\n        ),\n      ) ?? [],\n    error: error\n      ? new SubgraphError(\"Error fetching tokens\", ERROR_CODES.SUBGRAPH.FETCH_TOKENS_ERROR, error)\n      : undefined,\n  };\n}\n\nexport async function fetchToken(\n  address: Address,\n  client: SubgraphCasinoClient,\n): Promise<{ token: SubgraphToken | undefined; error: SubgraphError | undefined }> {\n  const apolloClient = new ApolloClient({\n    uri: getGraphqlEndpoint(client),\n    cache: client.cache ?? defaultSubgraphCasinoClient.cache,\n  });\n\n  const { data, error } = await apolloClient.query<TokenQuery, TokenQueryVariables>({\n    query: TokenDocument,\n    variables: {\n      id: address.toLowerCase(),\n    },\n  });\n\n  return {\n    token: data.token\n      ? formatToken(\n          data.token,\n          client.chainId,\n          client.formatType ?? defaultSubgraphCasinoClient.formatType,\n        )\n      : undefined,\n    error: error\n      ? new SubgraphError(\"Error fetching token\", ERROR_CODES.SUBGRAPH.FETCH_TOKEN_ERROR, error)\n      : undefined,\n  };\n}\n","import { type Address, formatUnits } from \"viem\";\nimport type { CasinoChainId } from \"../..\";\nimport type { Token } from \"../../../interfaces\";\nimport { getBetSwirlApiUrl } from \"../../../utils/api\";\n\nexport enum FREEBET_CAMPAIGN_STATUS {\n  PENDING = \"pending\",\n  EXPIRED = \"expired\",\n}\n\nexport type RawAggregatedFreebetCampaign = {\n  affiliate_address: Address;\n  chain_id: CasinoChainId;\n  created_at: string; // iso date\n  expiration_date: string; // iso date\n  id: number;\n  is_bankroll_mode: boolean;\n  label: string;\n  signer_address: Address;\n  status: FREEBET_CAMPAIGN_STATUS;\n  token: Token;\n  freebets: {\n    id: number;\n    is_wagered: boolean;\n    amount: string; // raw\n    player_address: Address;\n  }[];\n  total_count: number;\n  total_wagered_count: number;\n  total_amount: string; // raw\n  total_wagered_amount: string; // raw\n};\n\nexport type FreebetCampaign = {\n  affiliateAddress: Address;\n  chainId: CasinoChainId;\n  createdAt: Date;\n  expirationDate: Date;\n  id: number;\n  isBankrollMode: boolean;\n  label: string;\n  signerAddress: Address;\n  status: FREEBET_CAMPAIGN_STATUS;\n  token: Token;\n  freebets: {\n    id: number;\n    isWagered: boolean;\n    amount: bigint;\n    formattedAmount: string;\n    playerAddress: Address;\n  }[];\n  totalCount: number;\n  totalWageredCount: number;\n  totalAmount: bigint;\n  formattedTotalAmount: string;\n  totalWageredAmount: bigint;\n  formattedTotalWageredAmount: string;\n};\n\nexport type GetCampaignsRawResponse = {\n  campaigns: RawAggregatedFreebetCampaign[];\n  total: number;\n  offset: number;\n  limit: number;\n};\n\n/**\n * Fetches freebet campaigns from the Betswirl API\n * @param limit - The number of campaigns to fetch\n * @param offset - The offset of the campaigns to fetch\n * @param status - The status of the campaigns to fetch\n * @param affiliate - The affiliate address to filter campaigns\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<FreebetCampaign[]> - Array of freebet campaigns\n * @throws Returns empty array if the API request fails\n */\nexport const fetchFreebetCampaigns = async (\n  limit = 10,\n  offset = 0,\n  status?: FREEBET_CAMPAIGN_STATUS,\n  affiliate?: Address,\n  testMode = false,\n): Promise<{ campaigns: FreebetCampaign[]; total: number; offset: number; limit: number }> => {\n  try {\n    const params = new URLSearchParams();\n    params.set(\"limit\", limit.toString());\n    params.set(\"offset\", offset.toString());\n    if (status) {\n      params.set(\"status\", status);\n    }\n    if (affiliate) {\n      params.set(\"affiliate\", affiliate);\n    }\n    const res = await fetch(\n      `${getBetSwirlApiUrl(testMode)}/affiliate/v1/freebet/campaigns?${params.toString()}`,\n      {\n        // This is needed to get the JWT cookie from the browser\n        credentials: \"include\",\n      },\n    );\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetCampaignsRawResponse = await res.json();\n    return {\n      campaigns: response.campaigns.map((campaign) => formatRawFreebetCampaign(campaign)),\n      total: response.total,\n      offset: response.offset,\n      limit: response.limit,\n    };\n  } catch (error) {\n    console.error(\"An error occured while fetching freebet campaigns\", error);\n    return {\n      campaigns: [],\n      total: 0,\n      offset,\n      limit,\n    };\n  }\n};\n\nexport type GetCampaignRawResponse = RawAggregatedFreebetCampaign;\n\n/**\n * Fetches freebet campaign by id from the Betswirl API\n * @param id - The campaign id\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<FreebetCampaign> - The freebet campaign\n * @throws Returns nullif the API request fails or campaign is not found\n */\nexport const fetchFreebetCampaign = async (\n  id: number,\n  testMode = false,\n): Promise<FreebetCampaign | null> => {\n  try {\n    const res = await fetch(`${getBetSwirlApiUrl(testMode)}/affiliate/v1/freebet/campaigns/${id}`, {\n      // This is needed to get the JWT cookie from the browser\n      credentials: \"include\",\n    });\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetCampaignRawResponse = await res.json();\n    return formatRawFreebetCampaign(response);\n  } catch (error) {\n    console.error(\"An error occured while fetching the freebet campaign\", error);\n    return null;\n  }\n};\n\nexport const formatRawFreebetCampaign = (\n  campaign: RawAggregatedFreebetCampaign,\n): FreebetCampaign => ({\n  id: campaign.id,\n  affiliateAddress: campaign.affiliate_address,\n  chainId: campaign.chain_id,\n  createdAt: new Date(campaign.created_at),\n  expirationDate: new Date(campaign.expiration_date),\n  isBankrollMode: campaign.is_bankroll_mode,\n  label: campaign.label,\n  signerAddress: campaign.signer_address,\n  status: campaign.status,\n  token: campaign.token,\n  freebets: campaign.freebets.map((freebet: RawAggregatedFreebetCampaign[\"freebets\"][number]) => ({\n    id: freebet.id,\n    isWagered: freebet.is_wagered,\n    amount: BigInt(freebet.amount),\n    formattedAmount: formatUnits(BigInt(freebet.amount), campaign.token.decimals),\n    playerAddress: freebet.player_address,\n  })),\n  totalCount: campaign.total_count,\n  totalWageredCount: campaign.total_wagered_count,\n  totalAmount: BigInt(campaign.total_amount),\n  formattedTotalAmount: formatUnits(BigInt(campaign.total_amount), campaign.token.decimals),\n  totalWageredAmount: BigInt(campaign.total_wagered_amount),\n  formattedTotalWageredAmount: formatUnits(\n    BigInt(campaign.total_wagered_amount),\n    campaign.token.decimals,\n  ),\n});\n","import { type Address, type Hex, formatUnits } from \"viem\";\nimport type { CasinoChainId } from \"../..\";\nimport type { Token } from \"../../../interfaces\";\nimport { getBetSwirlApiUrl } from \"../../../utils/api\";\n\nexport type GetFreebetsRawResponse = SignedRawFreebet[];\n\nexport type SignedRawFreebet = {\n  id: number;\n  player_address: Address;\n  amount: string; // raw\n  token: Token;\n  campaign: {\n    id: number;\n    label: string;\n  };\n  expiration_date: string; // iso date\n  chain_id: CasinoChainId;\n  affiliate_address: Address;\n  freebet_address: Address;\n  signature: Hex;\n};\n\nexport type SignedFreebet = {\n  id: number;\n  playerAddress: Address;\n  amount: bigint; // raw\n  formattedAmount: string;\n  token: Token;\n  campaign: {\n    id: number;\n    label: string;\n  };\n  expirationDate: Date; // iso date\n  chainId: CasinoChainId;\n  affiliateAddress: Address;\n  freebetAddress: Address;\n  signature: Hex;\n};\n\n/**\n * Fetches freebets for a player from the Betswirl API\n * @param player - The player's wallet address\n * @param affiliates - Array of affiliate addresses to filter freebets\n * @param withExternalBankrollFreebets - Whether to include external bankroll freebets (default: false). If true, it means some returned freebets could have a different affiliate address than the ones provided in the `affiliates` array.\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<SignedFreebet[]> - Array of formatted freebets with additional metadata\n * @throws Returns empty array if the API request fails\n */\nexport const fetchFreebets = async (\n  player: Address,\n  affiliates?: Address[],\n  withExternalBankrollFreebets = false,\n  testMode = false,\n): Promise<SignedFreebet[]> => {\n  try {\n    const params = new URLSearchParams();\n    params.set(\"player\", player);\n    params.set(\"with_external_bankroll\", withExternalBankrollFreebets.toString());\n    if (affiliates) {\n      for (const affiliate of affiliates) {\n        params.append(\"affiliates\", affiliate);\n      }\n    }\n    const res = await fetch(\n      `${getBetSwirlApiUrl(testMode)}/public/v1/freebet/bets?${params.toString()}`,\n    );\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetFreebetsRawResponse = await res.json();\n    return response.map((freebet) => ({\n      ...freebet,\n      playerAddress: freebet.player_address,\n      amount: BigInt(freebet.amount),\n      formattedAmount: formatUnits(BigInt(freebet.amount), freebet.token.decimals),\n      expirationDate: new Date(freebet.expiration_date),\n      chainId: freebet.chain_id,\n      affiliateAddress: freebet.affiliate_address,\n      freebetAddress: freebet.freebet_address,\n    }));\n  } catch (error) {\n    console.error(\"An error occured while fetching casino freebets\", JSON.stringify(error));\n    return [];\n  }\n};\n","import { type Address, type Hash, formatUnits } from \"viem\";\nimport type { Token } from \"../../../interfaces\";\nimport { getBetSwirlApiUrl } from \"../../../utils\";\nimport type { ChainId } from \"../../chains\";\n\nexport enum LEADERBOARD_STATUS {\n  NOT_STARTED = \"not_started\",\n  PENDING = \"pending\",\n  ENDED = \"ended\",\n  FINALIZED = \"finalized\",\n  EXPIRED = \"expired\",\n}\n\nexport enum LEADERBOARD_TYPE {\n  CASINO = \"casino\",\n  SPORTS = \"sports\",\n}\n\nexport enum LEADERBOARD_CASINO_RULES_SOURCE {\n  BET_AMOUNT = \"BET_AMOUNT\",\n  PAYOUT = \"PAYOUT\",\n  BET_AMOUNT_USD = \"BET_AMOUNT_USD\",\n  PAYOUT_USD = \"PAYOUT_USD\",\n}\nexport enum LEADERBOARD_CASINO_RULES_GAME {\n  ALL = \"ALL\",\n  DICE = \"DICE\",\n  COINTOSS = \"COINTOSS\",\n  ROULETTE = \"ROULETTE\",\n  KENO = \"KENO\",\n  WHEEL = \"WHEEL\",\n  PLINKO = \"PLINKO\",\n}\n\nexport enum LEADERBOARD_SPORT_RULES_SOURCE {\n  BET_AMOUNT = \"BET_AMOUNT\",\n}\nexport enum LEADERBOARD_SPORT_RULES_BET_TYPE {\n  SINGLE = \"SINGLE\",\n  COMBO = \"COMBO\",\n}\n\nexport type RawCasinoRules = {\n  tokens: Token[];\n  source: LEADERBOARD_CASINO_RULES_SOURCE;\n  interval: string;\n  points_per_interval: number;\n  min_value?: string;\n  max_value?: string;\n  games: LEADERBOARD_CASINO_RULES_GAME[];\n};\n\nexport type CasinoRules = {\n  tokens: Token[];\n  source: LEADERBOARD_CASINO_RULES_SOURCE;\n  interval: bigint;\n  formattedInterval: string;\n  pointsPerInterval: number;\n  minValue?: bigint;\n  formattedMinValue?: string;\n  maxValue?: bigint;\n  formattedMaxValue?: string;\n  games: LEADERBOARD_CASINO_RULES_GAME[];\n};\n\nexport type RawSportRules = {\n  tokens: Token[];\n  source: LEADERBOARD_SPORT_RULES_SOURCE;\n  interval: string;\n  points_per_interval: number;\n  min_value?: string;\n  max_value?: string;\n  bet_types: LEADERBOARD_SPORT_RULES_BET_TYPE[];\n};\n\nexport type SportRules = {\n  tokens: Token[];\n  source: LEADERBOARD_SPORT_RULES_SOURCE;\n  interval: bigint;\n  formattedInterval: string;\n  pointsPerInterval: number;\n  minValue?: bigint;\n  formattedMinValue?: string;\n  maxValue?: bigint;\n  formattedMaxValue?: string;\n  betTypes: LEADERBOARD_SPORT_RULES_BET_TYPE[];\n};\n\nexport type RawLeaderboardRanking = {\n  bettor_address: Address;\n  leaderboard_id: number;\n  bet_count: number;\n  rank: number;\n  total_points: string;\n  total_wagered: string;\n};\n\nexport type LeaderboardRanking = {\n  bettorAddress: Address;\n  leaderboardId: number;\n  betCount: number;\n  rank: number;\n  totalPoints: bigint;\n  totalWagered: bigint;\n  formattedTotalWagered: string;\n};\n\nexport type RawCompleteLeaderboard = {\n  affiliate_address: Address;\n  chain_id: ChainId;\n  created_at: string; // iso date\n  description?: string;\n  end_date: string; // iso date\n  expiration_time: number; // secs\n  expiration_date?: string; // iso date\n  frontend_url: string;\n  id: number;\n  on_chain_id: number; // ID of the leaderboard in the smart contract\n  is_bankroll_mode: boolean;\n  is_finalized: boolean;\n  last_refresh_date?: string; // iso date\n  leaderboard_address: Address;\n  //points: Json | null\n  start_date: string; // iso date\n  status: LEADERBOARD_STATUS;\n  title: string;\n  token: Token;\n  winners?: Address[];\n  total_shares: string;\n  shares: string[];\n  casino_rules?: RawCasinoRules;\n  sport_rules?: RawSportRules;\n  effective_rules: RawCasinoRules | RawSportRules;\n  is_usd_rules_source: boolean;\n  rankings: RawLeaderboardRanking[];\n  player_rank?: RawLeaderboardRanking;\n  total_bettors: number;\n  total_bets: number;\n  total_wagered: string;\n  wagered_symbol: string; // \"$\" if USD source, else token symbol\n  wagered_decimals: number; // 2 if USD source, else token decimals\n};\n\nexport type RawAffiliateCompleteLeaderboard = RawCompleteLeaderboard & {\n  creation_tx: Hash;\n  creator_address: Address;\n};\nexport type RawAffiliateCompleteLeaderboardWithClaimDetails = RawAffiliateCompleteLeaderboard & {\n  claim_details: RawLeaderboardClaimDetails;\n};\n\nexport type RawLeaderboardClaimDetails = {\n  are_winners_claimed_shares: boolean[];\n  is_affiliate_claimed: boolean;\n  is_affiliate_claimable: boolean;\n  affiliate_claimed_amount: string;\n  winners_claimed_amount: string;\n  affiliate_claimable_amount: string;\n};\n\nexport type Leaderboard = {\n  affiliateAddress: Address;\n  chainId: ChainId;\n  createdAt: Date;\n  description?: string;\n  endDate: Date;\n  expirationTimeSecs: number;\n  expirationDate?: Date;\n  frontendUrl: string;\n  id: number;\n  onChainId: number; // ID of the leaderboard in the smart contract\n  isBankrollMode: boolean;\n  isFinalized: boolean;\n  lastRefreshDate?: Date;\n  leaderboardAddress: Address;\n  startDate: Date;\n  status: LEADERBOARD_STATUS;\n  title: string;\n  token: Token;\n  winners?: Address[];\n  totalShares: bigint;\n  formattedTotalShares: string;\n  shares: bigint[];\n  formattedShares: string[];\n  casinoRules?: CasinoRules;\n  sportRules?: SportRules;\n  effectiveRules: CasinoRules | SportRules;\n  isUsdRulesSource: boolean;\n  type: LEADERBOARD_TYPE;\n  rankings: LeaderboardRanking[];\n  player_rank?: LeaderboardRanking;\n  totalBettors: number;\n  totalBets: number;\n  totalWagered: bigint;\n  formattedTotalWagered: string;\n  wageredSymbol: string;\n  wageredDecimals: number;\n};\n\nexport type AffiliateLeaderboard = Leaderboard & {\n  creationTxnHash: Hash;\n  creatorAddress: Address;\n};\nexport type AffiliateLeaderboardWithClaimDetails = AffiliateLeaderboard & {\n  claimDetails: LeaderboardClaimDetails;\n};\n\nexport type LeaderboardClaimDetails = {\n  areWinnersClaimedShares: boolean[];\n  isAffiliateClaimed: boolean;\n  isAffiliateClaimable: boolean;\n  affiliateClaimedAmount: bigint;\n  formattedAffiliateClaimedAmount: string;\n  winnersClaimedAmount: bigint;\n  formattedWinnersClaimedAmount: string;\n  affiliateClaimableAmount: bigint;\n  formattedAffiliateClaimableAmount: string;\n};\n\nexport type GetLeaderboardsRawResponse = {\n  leaderboards: RawCompleteLeaderboard[];\n  total: number;\n  offset: number;\n  limit: number;\n};\n\n/**\n * Fetches leaderboards from the Betswirl API\n * @param limit - The number of leaderboards to fetch\n * @param offset - The offset of the leaderboards to fetch\n * @param playerAddress - Player address to get the leaderboard ranking (useful if the player is not in the top 100 ranking)\n * @param affiliate - Affiliate address to filter leaderboards\n * @param chainId - The chain id of the leaderboards to fetch\n * @param withExternalBankrollLeaderboards - Whether to include external bankroll leaderboards (default: false). If true, it means some returned leaderboards could have a different affiliate address than the one provided in affiliate param.\n * @param endDateDirection - The direction of the end date to sort the leaderboards\n * @param statuses - Array of statuses to filter the leaderboards\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<Leaderboard[]> - Array of leaderboards\n * @throws Returns empty array if the API request fails\n */\nexport const fetchLeaderboards = async (\n  limit = 10,\n  offset = 0,\n  playerAddress?: Address,\n  affiliate?: Address,\n  chainId?: ChainId,\n  withExternalBankrollLeaderboards = false,\n  endDateDirection?: \"asc\" | \"desc\",\n  statuses?: LEADERBOARD_STATUS[],\n  testMode = false,\n): Promise<{ leaderboards: Leaderboard[]; total: number; offset: number; limit: number }> => {\n  try {\n    const params = new URLSearchParams();\n    params.set(\"limit\", limit.toString());\n    params.set(\"offset\", offset.toString());\n    if (playerAddress) {\n      params.set(\"player_address\", playerAddress);\n    }\n    if (affiliate) {\n      params.set(\"affiliate\", affiliate);\n    }\n    if (chainId) {\n      params.set(\"chain_id\", chainId.toString());\n    }\n    if (withExternalBankrollLeaderboards) {\n      params.set(\"with_external_bankroll\", withExternalBankrollLeaderboards.toString());\n    }\n    if (endDateDirection) {\n      params.set(\"end_date_direction\", endDateDirection);\n    }\n    if (statuses) {\n      for (const status of statuses) {\n        params.append(\"statuses\", status);\n      }\n    }\n    const res = await fetch(\n      `${getBetSwirlApiUrl(testMode)}/public/v1/leaderboards?${params.toString()}`,\n    );\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetLeaderboardsRawResponse = await res.json();\n    return {\n      leaderboards: response.leaderboards.map((leaderboard) => formatRawLeaderboard(leaderboard)),\n      total: response.total,\n      offset: response.offset,\n      limit: response.limit,\n    };\n  } catch (error) {\n    console.error(\"An error occured while fetching leaderboards\", error);\n    return {\n      leaderboards: [],\n      total: 0,\n      offset,\n      limit,\n    };\n  }\n};\n\nexport type GetAffiliateLeaderboardsRawResponse = {\n  leaderboards: RawAffiliateCompleteLeaderboardWithClaimDetails[];\n  total: number;\n  offset: number;\n  limit: number;\n};\n\n/**\n * Fetches leaderboards for the affiliates from the Betswirl API\n * @param affiliate - Affiliate address to filter leaderboards\n * @param limit - The number of leaderboards to fetch\n * @param offset - The offset of the leaderboards to fetch\n * @param chainId - The chain id of the leaderboards to fetch\n * @param endDateDirection - The direction of the end date to sort the leaderboards\n * @param statuses - Array of statuses to filter the leaderboards\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<AffiliateLeaderboardWithClaimDetails[]> - Array of affiliate leaderboards with claim details\n * @throws Returns empty array if the API request fails\n */\nexport const fetchAffiliateLeaderboards = async (\n  affiliate: Address,\n  limit = 10,\n  offset = 0,\n  chainId?: ChainId,\n  endDateDirection?: \"asc\" | \"desc\",\n  statuses?: LEADERBOARD_STATUS[],\n  testMode = false,\n): Promise<{\n  leaderboards: AffiliateLeaderboardWithClaimDetails[];\n  total: number;\n  offset: number;\n  limit: number;\n}> => {\n  try {\n    const params = new URLSearchParams();\n    params.set(\"affiliate\", affiliate);\n    params.set(\"limit\", limit.toString());\n    params.set(\"offset\", offset.toString());\n    if (chainId) {\n      params.set(\"chain_id\", chainId.toString());\n    }\n\n    if (endDateDirection) {\n      params.set(\"end_date_direction\", endDateDirection);\n    }\n    if (statuses) {\n      for (const status of statuses) {\n        params.append(\"statuses\", status);\n      }\n    }\n    const res = await fetch(\n      `${getBetSwirlApiUrl(testMode)}/affiliate/v1/leaderboards?${params.toString()}`,\n      // This is needed to get the JWT cookie from the browser\n      { credentials: \"include\" },\n    );\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetAffiliateLeaderboardsRawResponse = await res.json();\n    return {\n      leaderboards: response.leaderboards.map((leaderboard) =>\n        formatRawAffiliateLeaderboard(leaderboard),\n      ),\n      total: response.total,\n      offset: response.offset,\n      limit: response.limit,\n    };\n  } catch (error) {\n    console.error(\"An error occured while fetching affiliate leaderboards\", error);\n    return {\n      leaderboards: [],\n      total: 0,\n      offset,\n      limit,\n    };\n  }\n};\n\nexport type GetLeaderboardRawResponse = RawCompleteLeaderboard | null;\n\n/**\n * Fetches leaderboard by id from the Betswirl API\n * @param id - The leaderboard id (not the on chain one)\n * @param playerAddress - Player address to get the leaderboard ranking (useful if the player is not in the top 100 ranking)\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<Leaderboard> - The leaderboard\n * @throws Returns null if the API request fails or the leaderboard is not found\n */\nexport const fetchLeaderboard = async (\n  id: number,\n  playerAddress?: Address,\n  testMode = false,\n): Promise<Leaderboard | null> => {\n  try {\n    const params = new URLSearchParams();\n    if (playerAddress) {\n      params.set(\"player_address\", playerAddress);\n    }\n    const res = await fetch(\n      `${getBetSwirlApiUrl(testMode)}/public/v1/leaderboards/${id}?${params.toString()}`,\n    );\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetLeaderboardRawResponse = await res.json();\n    return response ? formatRawLeaderboard(response) : null;\n  } catch (error) {\n    console.error(\"An error occured while fetching the leaderboard\", error);\n    return null;\n  }\n};\n\nexport type GetAffiliateLeaderboardRawResponse =\n  RawAffiliateCompleteLeaderboardWithClaimDetails | null;\n\n/**\n * Fetches leaderboard by id from the Betswirl API\n * @param id - The leaderboard id (not the on chain one)\n * @param testMode - Whether to use test mode API endpoint (default: false)\n * @returns Promise<AffiliateLeaderboardWithClaimDetails> - The affiliate leaderboard with claim details\n * @throws Returns null if the API request fails or the leaderboard is not found\n */\nexport const fetchAffiliateLeaderboard = async (\n  id: number,\n  testMode = false,\n): Promise<AffiliateLeaderboardWithClaimDetails | null> => {\n  try {\n    const res = await fetch(`${getBetSwirlApiUrl(testMode)}/affiliate/v1/leaderboards/${id}`, {\n      // This is needed to get the JWT cookie from the browser\n      credentials: \"include\",\n    });\n    if (!res.ok) {\n      throw new Error(`Status ${res.status}: ${res.statusText}`);\n    }\n\n    const response: GetAffiliateLeaderboardRawResponse = await res.json();\n    return response ? formatRawAffiliateLeaderboard(response) : null;\n  } catch (error) {\n    console.error(\"An error occured while fetching the affiliate leaderboard\", error);\n    return null;\n  }\n};\n\nexport const formatRawLeaderboard = (leaderboard: RawCompleteLeaderboard): Leaderboard => {\n  const casinoRules = leaderboard.casino_rules\n    ? {\n        tokens: leaderboard.casino_rules.tokens,\n        games: leaderboard.casino_rules.games,\n        source: leaderboard.casino_rules.source,\n        interval: BigInt(leaderboard.casino_rules.interval),\n        formattedInterval: formatUnits(\n          BigInt(leaderboard.casino_rules.interval),\n          leaderboard.wagered_decimals,\n        ),\n        pointsPerInterval: leaderboard.casino_rules.points_per_interval,\n        minValue: leaderboard.casino_rules.min_value\n          ? BigInt(leaderboard.casino_rules.min_value)\n          : undefined,\n        formattedMinValue: leaderboard.casino_rules.min_value\n          ? formatUnits(BigInt(leaderboard.casino_rules.min_value), leaderboard.wagered_decimals)\n          : undefined,\n      }\n    : undefined;\n  const sportRules = leaderboard.sport_rules\n    ? {\n        tokens: leaderboard.sport_rules.tokens,\n        source: leaderboard.sport_rules.source,\n        interval: BigInt(leaderboard.sport_rules.interval),\n        formattedInterval: formatUnits(\n          BigInt(leaderboard.sport_rules.interval),\n          leaderboard.wagered_decimals,\n        ),\n        pointsPerInterval: leaderboard.sport_rules.points_per_interval,\n        minValue: leaderboard.sport_rules.min_value\n          ? BigInt(leaderboard.sport_rules.min_value)\n          : undefined,\n        formattedMinValue: leaderboard.sport_rules.min_value\n          ? formatUnits(BigInt(leaderboard.sport_rules.min_value), leaderboard.wagered_decimals)\n          : undefined,\n        betTypes: leaderboard.sport_rules.bet_types,\n      }\n    : undefined;\n  return {\n    affiliateAddress: leaderboard.affiliate_address,\n    chainId: leaderboard.chain_id,\n    createdAt: new Date(leaderboard.created_at),\n    description: leaderboard.description,\n    endDate: new Date(leaderboard.end_date),\n    expirationTimeSecs: leaderboard.expiration_time,\n    expirationDate: leaderboard.expiration_date ? new Date(leaderboard.expiration_date) : undefined,\n    frontendUrl: leaderboard.frontend_url,\n    id: leaderboard.id,\n    onChainId: leaderboard.on_chain_id,\n    isBankrollMode: leaderboard.is_bankroll_mode,\n    isFinalized: leaderboard.is_finalized,\n    lastRefreshDate: leaderboard.last_refresh_date\n      ? new Date(leaderboard.last_refresh_date)\n      : undefined,\n    leaderboardAddress: leaderboard.leaderboard_address,\n    startDate: new Date(leaderboard.start_date),\n    status: leaderboard.status,\n    title: leaderboard.title,\n    token: leaderboard.token,\n    winners: leaderboard.winners,\n    totalShares: BigInt(leaderboard.total_shares),\n    formattedTotalShares: formatUnits(BigInt(leaderboard.total_shares), leaderboard.token.decimals),\n    shares: leaderboard.shares.map((share) => BigInt(share)),\n    formattedShares: leaderboard.shares.map((share) =>\n      formatUnits(BigInt(share), leaderboard.token.decimals),\n    ),\n    casinoRules,\n    sportRules,\n    effectiveRules: casinoRules || sportRules!,\n    isUsdRulesSource: leaderboard.is_usd_rules_source,\n    type: leaderboard.casino_rules ? LEADERBOARD_TYPE.CASINO : LEADERBOARD_TYPE.SPORTS,\n    rankings: leaderboard.rankings.map((ranking) => ({\n      bettorAddress: ranking.bettor_address,\n      leaderboardId: ranking.leaderboard_id,\n      betCount: ranking.bet_count,\n      rank: ranking.rank,\n      totalPoints: BigInt(ranking.total_points),\n      totalWagered: BigInt(ranking.total_wagered),\n      formattedTotalWagered: formatUnits(BigInt(ranking.total_wagered), leaderboard.token.decimals),\n    })),\n    player_rank: leaderboard.player_rank\n      ? {\n          bettorAddress: leaderboard.player_rank.bettor_address,\n          leaderboardId: leaderboard.player_rank.leaderboard_id,\n          betCount: leaderboard.player_rank.bet_count,\n          rank: leaderboard.player_rank.rank,\n          totalPoints: BigInt(leaderboard.player_rank.total_points),\n          totalWagered: BigInt(leaderboard.player_rank.total_wagered),\n          formattedTotalWagered: formatUnits(\n            BigInt(leaderboard.player_rank.total_wagered),\n            leaderboard.token.decimals,\n          ),\n        }\n      : undefined,\n    totalBettors: leaderboard.total_bettors,\n    totalBets: leaderboard.total_bets,\n    totalWagered: BigInt(leaderboard.total_wagered),\n    formattedTotalWagered: formatUnits(\n      BigInt(leaderboard.total_wagered),\n      leaderboard.wagered_decimals,\n    ),\n    wageredSymbol: leaderboard.wagered_symbol,\n    wageredDecimals: leaderboard.wagered_decimals,\n  };\n};\n\nexport const formatRawAffiliateLeaderboard = (\n  leaderboard: RawAffiliateCompleteLeaderboardWithClaimDetails,\n): AffiliateLeaderboardWithClaimDetails => {\n  return {\n    ...formatRawLeaderboard(leaderboard),\n    creationTxnHash: leaderboard.creation_tx,\n    creatorAddress: leaderboard.creator_address,\n    claimDetails: {\n      areWinnersClaimedShares: leaderboard.claim_details.are_winners_claimed_shares,\n      isAffiliateClaimed: leaderboard.claim_details.is_affiliate_claimed,\n      isAffiliateClaimable: leaderboard.claim_details.is_affiliate_claimable,\n      affiliateClaimedAmount: BigInt(leaderboard.claim_details.affiliate_claimed_amount),\n      formattedAffiliateClaimedAmount: formatUnits(\n        BigInt(leaderboard.claim_details.affiliate_claimed_amount),\n        leaderboard.token.decimals,\n      ),\n      winnersClaimedAmount: BigInt(leaderboard.claim_details.winners_claimed_amount),\n      formattedWinnersClaimedAmount: formatUnits(\n        BigInt(leaderboard.claim_details.winners_claimed_amount),\n        leaderboard.token.decimals,\n      ),\n      affiliateClaimableAmount: BigInt(leaderboard.claim_details.affiliate_claimable_amount),\n      formattedAffiliateClaimableAmount: formatUnits(\n        BigInt(leaderboard.claim_details.affiliate_claimable_amount),\n        leaderboard.token.decimals,\n      ),\n    },\n  };\n};\n","import type {\n  CoinTossChoiceInput,\n  DiceChoiceInput,\n  KenoChoiceInput,\n  RouletteChoiceInput,\n} from \"..\";\nimport { CASINO_GAME_TYPE, type WEIGHTED_CASINO_GAME_TYPE } from \"../../data/casino\";\n\ntype MayBeMultiOutputsValue<T extends CASINO_GAME_TYPE> = T extends\n  | CASINO_GAME_TYPE.KENO\n  | WEIGHTED_CASINO_GAME_TYPE\n  ? number[]\n  : number;\n\nexport interface ChoiceInput<T extends CASINO_GAME_TYPE = CASINO_GAME_TYPE> {\n  game: CASINO_GAME_TYPE;\n  label: string;\n  winChancePercent: MayBeMultiOutputsValue<T>;\n  multiplier: MayBeMultiOutputsValue<T>;\n  formattedMultiplier: MayBeMultiOutputsValue<T>;\n  netMultiplier?: MayBeMultiOutputsValue<T>;\n  formattedNetMultiplier?: MayBeMultiOutputsValue<T>;\n}\n\n// Game should not know the game implementation details, but well..  it helps developers\nexport type NormalGameChoiceInput =\n  | CoinTossChoiceInput\n  | DiceChoiceInput\n  | RouletteChoiceInput\n  | KenoChoiceInput;\n\nexport abstract class AbstractCasinoGame<TInput, TEncodedInput, TRolled, TEncodedRolled> {\n  getWinChancePercent(_input: TInput | string): number {\n    throw new Error(\"Not implemented\");\n  }\n  encodeInput(_input: TInput | string): TEncodedInput {\n    throw new Error(\"Not implemented\");\n  }\n  encodeAbiParametersInput(_input: TInput | string): TEncodedInput {\n    throw new Error(\"Not implemented\");\n  }\n  decodeInput(_encodedInput: TEncodedInput | string): TInput {\n    throw new Error(\"Not implemented\");\n  }\n  getMultiplier(_input: TInput | string): number {\n    throw new Error(\"Not implemented\");\n  }\n  getFormattedMultiplier(_input: TInput | string): number {\n    throw new Error(\"Not implemented\");\n  }\n  decodeRolled(_encodedRolledInput: TEncodedRolled | string): TRolled {\n    throw new Error(\"Not implemented\");\n  }\n}\n","import { encodeAbiParameters } from \"viem\";\nimport type { EncodeAbiParametersReturnType } from \"viem\";\nimport { parseAbiParameters } from \"viem\";\nimport { BP_VALUE } from \"../../constants\";\nimport { CASINO_GAME_TYPE } from \"../../data/casino\";\nimport { getFormattedNetMultiplier, getNetMultiplier } from \"../../utils/bet\";\nimport { AbstractCasinoGame, type ChoiceInput } from \"./game\";\n\nexport const MIN_SELECTABLE_DICE_NUMBER = 1 as DiceNumber;\nexport const MAX_SELECTABLE_DICE_NUMBER = 99 as DiceNumber;\n\nexport type DiceNumber =\n  | 1\n  | 2\n  | 3\n  | 4\n  | 5\n  | 6\n  | 7\n  | 8\n  | 9\n  | 10\n  | 11\n  | 12\n  | 13\n  | 14\n  | 15\n  | 16\n  | 17\n  | 18\n  | 19\n  | 20\n  | 21\n  | 22\n  | 23\n  | 24\n  | 25\n  | 26\n  | 27\n  | 28\n  | 29\n  | 30\n  | 31\n  | 32\n  | 33\n  | 34\n  | 35\n  | 36\n  | 37\n  | 38\n  | 39\n  | 40\n  | 41\n  | 42\n  | 43\n  | 44\n  | 45\n  | 46\n  | 47\n  | 48\n  | 49\n  | 50\n  | 51\n  | 52\n  | 53\n  | 54\n  | 55\n  | 56\n  | 57\n  | 58\n  | 59\n  | 60\n  | 61\n  | 62\n  | 63\n  | 64\n  | 65\n  | 66\n  | 67\n  | 68\n  | 69\n  | 70\n  | 71\n  | 72\n  | 73\n  | 74\n  | 75\n  | 76\n  | 77\n  | 78\n  | 79\n  | 80\n  | 81\n  | 82\n  | 83\n  | 84\n  | 85\n  | 86\n  | 87\n  | 88\n  | 89\n  | 90\n  | 91\n  | 92\n  | 93\n  | 94\n  | 95\n  | 96\n  | 97\n  | 98\n  | 99;\n\nexport type DiceRolledNumber = 100 & DiceNumber;\n\nexport interface DiceChoiceInput extends ChoiceInput<CASINO_GAME_TYPE.DICE> {\n  value: DiceNumber;\n  id: DiceNumber;\n}\n\nexport type DiceEncodedInput = number;\nexport type DiceEncodedRolled = number;\n\nexport class Dice extends AbstractCasinoGame<\n  DiceNumber,\n  DiceEncodedInput,\n  DiceRolledNumber,\n  DiceEncodedRolled\n> {\n  static getWinChancePercent(cap: DiceNumber | string): number {\n    return Math.max(100 - Number(cap), 1);\n  }\n\n  static getMultiplier(cap: DiceNumber | string): number {\n    return Math.round((BP_VALUE * 100) / (100 - Number(cap)));\n  }\n\n  static getFormattedMultiplier(cap: DiceNumber | string): number {\n    return Number((Dice.getMultiplier(cap) / BP_VALUE).toFixed(3));\n  }\n\n  static encodeInput(cap: DiceNumber | string): DiceEncodedInput {\n    return Number(cap) as DiceEncodedInput;\n  }\n\n  static encodeAbiParametersInput(cap: DiceNumber | string): EncodeAbiParametersReturnType {\n    return encodeAbiParameters(parseAbiParameters(\"uint8\"), [Dice.encodeInput(cap)]);\n  }\n\n  static decodeInput(encodedCap: DiceEncodedInput | string): DiceNumber {\n    return Number(encodedCap) as DiceNumber;\n  }\n\n  static decodeRolled(encodedCap: DiceEncodedRolled | string): DiceRolledNumber {\n    return Number(encodedCap) as DiceRolledNumber;\n  }\n\n  static getChoiceInputs(houseEdge?: number): DiceChoiceInput[] {\n    return Array.from({ length: 99 }, (_, i) => {\n      const diceNumber = (i + 1) as DiceNumber;\n      return {\n        value: diceNumber,\n        id: diceNumber,\n        game: CASINO_GAME_TYPE.DICE,\n        label: `${diceNumber}`,\n        winChancePercent: Dice.getWinChancePercent(diceNumber),\n        multiplier: Dice.getMultiplier(diceNumber),\n        formattedMultiplier: Dice.getFormattedMultiplier(diceNumber),\n        netMultiplier: houseEdge\n          ? getNetMultiplier(Dice.getMultiplier(diceNumber), houseEdge)\n          : undefined,\n        formattedNetMultiplier: houseEdge\n          ? getFormattedNetMultiplier(Dice.getMultiplier(diceNumber), houseEdge)\n          : undefined,\n      };\n    });\n  }\n}\n","import { type EncodeAbiParametersReturnType, encodeAbiParameters } from \"viem\";\nimport { parseAbiParameters } from \"viem\";\nimport { getFormattedNetMultiplier } from \"../..\";\nimport { CASINO_GAME_TYPE, getNetMultiplier } from \"../..\";\nimport { BP_VALUE } from \"../../constants\";\nimport type { KenoConfiguration } from \"../../read/casino/keno\";\nimport { AbstractCasinoGame, type ChoiceInput } from \"./game\";\n\nexport type KenoBall =\n  | 1\n  | 2\n  | 3\n  | 4\n  | 5\n  | 6\n  | 7\n  | 8\n  | 9\n  | 10\n  | 11\n  | 12\n  | 13\n  | 14\n  | 15\n  | 16\n  | 17\n  | 18\n  | 19\n  | 20\n  | 21\n  | 22\n  | 23\n  | 24\n  | 25\n  | 26\n  | 27\n  | 28\n  | 29\n  | 30\n  | 31\n  | 32\n  | 33\n  | 34\n  | 35\n  | 36\n  | 37\n  | 38\n  | 39\n  | 40;\nexport enum KENO_INPUT_BUNDLE {\n  MAX_FIRST_NUMBERS = \"All last numbers\",\n  MAX_LAST_NUMBERS = \"All first numbers\",\n  FIRST_AND_LAST = \"The first and the last number\",\n}\n\nexport interface KenoChoiceInput extends ChoiceInput<CASINO_GAME_TYPE.KENO> {\n  value: KenoBall[];\n  config: KenoConfiguration;\n  id: KenoBall[] | KENO_INPUT_BUNDLE;\n}\n\nexport type KenoEncodedInput = number;\nexport type KenoEncodedRolled = bigint[];\n\nexport class Keno extends AbstractCasinoGame<\n  KenoBall[],\n  KenoEncodedInput,\n  KenoBall[],\n  KenoEncodedRolled[]\n> {\n  static getWinChancePercent(\n    kenoConfig: KenoConfiguration,\n    selectedBallsCount: number,\n    matchedBallsCount: number,\n  ): number {\n    const multiplier = Keno.getMultiplier(kenoConfig, selectedBallsCount, matchedBallsCount);\n    if (!multiplier) return 0;\n\n    return (1 / multiplier / (selectedBallsCount + 1)) * BP_VALUE * 100;\n  }\n\n  static getMultiplier(\n    kenoConfig: KenoConfiguration,\n    selectedBallsCount: number,\n    matchedBallsCount: number,\n  ): number {\n    return kenoConfig.multiplierTable[selectedBallsCount]?.[matchedBallsCount] || 0;\n  }\n\n  static getFormattedMultiplier(\n    kenoConfig: KenoConfiguration,\n    selectedBallsCount: number,\n    matchedBallsCount: number,\n  ): number {\n    return Number(\n      (Keno.getMultiplier(kenoConfig, selectedBallsCount, matchedBallsCount) / BP_VALUE).toFixed(3),\n    );\n  }\n\n  static encodeInput(balls: KenoBall[], kenoConfig: KenoConfiguration): KenoEncodedInput {\n    // 1. Make the array unique\n    const uniqueNumbers = [...new Set(balls)];\n    // 2. Sort the array\n    const sortedNumbers = uniqueNumbers.sort((a, b) => a - b);\n    // 3. Create a boolean array\n    const sortedBooleans: boolean[] = Array(kenoConfig.biggestSelectableBall).fill(false);\n    for (const num of sortedNumbers) {\n      sortedBooleans[num] = true;\n    }\n    // 4. Create a binary numbers\n    const binaryNumbers = Object.values(sortedBooleans)\n      .slice()\n      .reverse()\n      .reduce((numbers, isActive) => {\n        return numbers + (isActive ? 1 : 0);\n      }, \"\");\n    // 5. Transform the binary numbers to a number\n    return Number.parseInt(binaryNumbers, 2);\n  }\n\n  static encodeAbiParametersInput(\n    balls: KenoBall[],\n    kenoConfig: KenoConfiguration,\n  ): EncodeAbiParametersReturnType {\n    return encodeAbiParameters(parseAbiParameters(\"uint40\"), [Keno.encodeInput(balls, kenoConfig)]);\n  }\n\n  static decodeInput(encodedBalls: KenoEncodedInput | string): KenoBall[] {\n    return Keno.maskToBalls(Number(encodedBalls));\n  }\n\n  static decodeRolled(encodedRolled: KenoEncodedRolled | string): KenoBall[] {\n    return Keno.maskToBalls(Number(encodedRolled));\n  }\n\n  static getChoiceInputs(kenoConfig: KenoConfiguration, houseEdge?: number): KenoChoiceInput[] {\n    const createChoiceInput = (\n      balls: KenoBall[],\n      id: KenoBall[] | KENO_INPUT_BUNDLE,\n      selectedBallsCount: number,\n      label: string,\n    ): KenoChoiceInput => {\n      // eg. selectedBallsCount = 2 => possibleMatchedCounts = [0, 1, 2]\n      const possibleMatchedCounts = Array.from({ length: selectedBallsCount + 1 }, (_, i) => i);\n      return {\n        value: balls,\n        config: kenoConfig,\n        id,\n        game: CASINO_GAME_TYPE.KENO,\n        label,\n        winChancePercent: possibleMatchedCounts.map((matchedCount) =>\n          Keno.getWinChancePercent(kenoConfig, selectedBallsCount, matchedCount),\n        ),\n        multiplier: possibleMatchedCounts.map((matchedCount) =>\n          Keno.getMultiplier(kenoConfig, selectedBallsCount, matchedCount),\n        ),\n        formattedMultiplier: possibleMatchedCounts.map((matchedCount) =>\n          Keno.getFormattedMultiplier(kenoConfig, selectedBallsCount, matchedCount),\n        ),\n        netMultiplier: houseEdge\n          ? possibleMatchedCounts.map((matchedCount) =>\n              getNetMultiplier(\n                Keno.getMultiplier(kenoConfig, selectedBallsCount, matchedCount),\n                houseEdge,\n              ),\n            )\n          : undefined,\n        formattedNetMultiplier: houseEdge\n          ? possibleMatchedCounts.map((matchedCount) =>\n              getFormattedNetMultiplier(\n                Keno.getMultiplier(kenoConfig, selectedBallsCount, matchedCount),\n                houseEdge,\n              ),\n            )\n          : undefined,\n      };\n    };\n\n    // 1. Single numbers\n    const choiceInputs: KenoChoiceInput[] = Array.from(\n      { length: kenoConfig.biggestSelectableBall },\n      (_, i) => {\n        const kenoBall = (i + 1) as KenoBall;\n        return createChoiceInput([kenoBall], [kenoBall], 1, `${kenoBall}`);\n      },\n    );\n\n    // 2. First one and last one\n    if (kenoConfig.maxSelectableBalls > 1 && kenoConfig.biggestSelectableBall > 1) {\n      choiceInputs.push(\n        createChoiceInput(\n          [1, kenoConfig.biggestSelectableBall as KenoBall],\n          KENO_INPUT_BUNDLE.FIRST_AND_LAST,\n          2,\n          `${KENO_INPUT_BUNDLE.FIRST_AND_LAST} (1 & ${kenoConfig.biggestSelectableBall})`,\n        ),\n      );\n    }\n\n    // 3. All first numbers\n    const maxFirstNumbers = Array.from(\n      { length: kenoConfig.maxSelectableBalls },\n      (_, i) => (i + 1) as KenoBall,\n    );\n    choiceInputs.push(\n      createChoiceInput(\n        maxFirstNumbers,\n        KENO_INPUT_BUNDLE.MAX_FIRST_NUMBERS,\n        kenoConfig.maxSelectableBalls,\n        `${KENO_INPUT_BUNDLE.MAX_FIRST_NUMBERS} (${maxFirstNumbers.join(\", \")})`,\n      ),\n    );\n\n    // 4. All last numbers\n    const maxLastNumbers = Array.from(\n      { length: kenoConfig.maxSelectableBalls },\n      (_, i) => (kenoConfig.biggestSelectableBall - i) as KenoBall,\n    );\n    choiceInputs.push(\n      createChoiceInput(\n        maxLastNumbers,\n        KENO_INPUT_BUNDLE.MAX_LAST_NUMBERS,\n        kenoConfig.maxSelectableBalls,\n        `${KENO_INPUT_BUNDLE.MAX_LAST_NUMBERS} (${maxLastNumbers.join(\", \")})`,\n      ),\n    );\n\n    return choiceInputs;\n  }\n\n  // Keno utilities\n\n  static maskToBalls(encodedBalls: number) {\n    return encodedBalls\n      .toString(2)\n      .split(\"\")\n      .reverse()\n      .map((ball, i) => (ball === \"1\" ? i + 1 : 0))\n      .filter((ball) => ball) as KenoBall[];\n  }\n}\n","import { encodeAbiParameters } from \"viem\";\nimport { parseAbiParameters } from \"viem\";\nimport type { EncodeAbiParametersReturnType } from \"viem/_types/utils/abi/encodeAbiParameters\";\nimport { BP_VALUE } from \"../../constants\";\nimport { CASINO_GAME_TYPE } from \"../../data/casino\";\nimport { getFormattedNetMultiplier, getNetMultiplier } from \"../../utils/bet\";\nimport { AbstractCasinoGame, type ChoiceInput } from \"./game\";\nexport const MIN_SELECTABLE_ROULETTE_NUMBER = 0 as RouletteNumber;\nexport const MAX_SELECTABLE_ROULETTE_NUMBER = 36 as RouletteNumber;\n\nexport type RouletteNumber =\n  | 0\n  | 1\n  | 2\n  | 3\n  | 4\n  | 5\n  | 6\n  | 7\n  | 8\n  | 9\n  | 10\n  | 11\n  | 12\n  | 13\n  | 14\n  | 15\n  | 16\n  | 17\n  | 18\n  | 19\n  | 20\n  | 21\n  | 22\n  | 23\n  | 24\n  | 25\n  | 26\n  | 27\n  | 28\n  | 29\n  | 30\n  | 31\n  | 32\n  | 33\n  | 34\n  | 35\n  | 36;\nexport enum ROULETTE_INPUT_BUNDLE {\n  FIRST_ROW = \"First row\",\n  SECOND_ROW = \"Second row\",\n  THIRD_ROW = \"Third row\",\n  ONE_TO_TWELVE = \"1 to 12\",\n  THIRTEEN_TO_TWENTY_FOUR = \"13 to 24\",\n  TWENTY_FIVE_TO_THIRTY_SIX = \"25 to 36\",\n  ONE_TO_EIGHTEEN = \"1 to 18\",\n  EIGHTEEN_TO_THIRTY_SIX = \"18 to 36\",\n  ODD = \"Odd\",\n  EVEN = \"Even\",\n  RED = \"Red\",\n  BLACK = \"Black\",\n}\n\nexport interface RouletteChoiceInput extends ChoiceInput<CASINO_GAME_TYPE.ROULETTE> {\n  value: RouletteNumber[];\n  id: RouletteNumber[] | ROULETTE_INPUT_BUNDLE;\n}\n\nexport type RouletteEncodedInput = number;\nexport type RouletteEncodedRolled = number;\n\nexport class Roulette extends AbstractCasinoGame<\n  RouletteNumber[],\n  RouletteEncodedInput,\n  RouletteNumber,\n  RouletteEncodedRolled\n> {\n  static getWinChancePercent(numbers: RouletteNumber[]): number {\n    const encodedNumbers = Roulette.encodeInput(numbers);\n    return (\n      Math.round(\n        (Roulette.getSelectedNumbersCount(encodedNumbers) / (MAX_SELECTABLE_ROULETTE_NUMBER + 1)) *\n          1e3,\n      ) / 10\n    );\n  }\n\n  static getMultiplier(numbers: RouletteNumber[]): number {\n    const encodedNumbers = Roulette.encodeInput(numbers);\n    return encodedNumbers\n      ? Number(\n          (BigInt(BP_VALUE) * BigInt(MAX_SELECTABLE_ROULETTE_NUMBER + 1)) /\n            BigInt(Roulette.getSelectedNumbersCount(encodedNumbers)),\n        )\n      : 0;\n  }\n\n  static getFormattedMultiplier(numbers: RouletteNumber[]): number {\n    return Number((Roulette.getMultiplier(numbers) / BP_VALUE).toFixed(3));\n  }\n\n  static encodeInput(numbers: RouletteNumber[]): RouletteEncodedInput {\n    // 1. Make the array unique\n    const uniqueNumbers = [...new Set(numbers)];\n    // 2. Sort the array\n    const sortedNumbers = uniqueNumbers.sort((a, b) => a - b);\n    // 3. Create a boolean array\n    const sortedBooleans: boolean[] = Array(37).fill(false);\n    for (const num of sortedNumbers) {\n      sortedBooleans[num] = true;\n    }\n    // 4. Create a binary numbers\n    const binaryNumbers = Object.values(sortedBooleans)\n      .slice()\n      .reverse()\n      .reduce((numbers, isActive) => {\n        return numbers + (isActive ? 1 : 0);\n      }, \"\");\n    // 5. Transform the binary numbers to a number\n    return Number.parseInt(binaryNumbers, 2);\n  }\n\n  static encodeAbiParametersInput(numbers: RouletteNumber[]): EncodeAbiParametersReturnType {\n    return encodeAbiParameters(parseAbiParameters(\"uint40\"), [Roulette.encodeInput(numbers)]);\n  }\n\n  static decodeInput(encodedNumbers: RouletteEncodedInput | string): RouletteNumber[] {\n    return Number(encodedNumbers)\n      .toString(2)\n      .split(\"\")\n      .reverse()\n      .map((number, i) => (number === \"1\" ? i : -1))\n      .filter((number) => number >= 0) as RouletteNumber[];\n  }\n\n  static decodeRolled(encodedRolled: RouletteEncodedRolled | string): RouletteNumber {\n    return Number(encodedRolled) as RouletteNumber;\n  }\n\n  static getChoiceInputs(houseEdge?: number): RouletteChoiceInput[] {\n    const createChoiceInput = (\n      numbers: RouletteNumber[],\n      id: RouletteNumber[] | ROULETTE_INPUT_BUNDLE,\n      label: string,\n    ): RouletteChoiceInput => ({\n      value: numbers,\n      id,\n      game: CASINO_GAME_TYPE.ROULETTE,\n      label,\n      winChancePercent: Roulette.getWinChancePercent(numbers),\n      multiplier: Roulette.getMultiplier(numbers),\n      formattedMultiplier: Roulette.getFormattedMultiplier(numbers),\n      netMultiplier: houseEdge\n        ? getNetMultiplier(Roulette.getMultiplier(numbers), houseEdge)\n        : undefined,\n      formattedNetMultiplier: houseEdge\n        ? getFormattedNetMultiplier(Roulette.getMultiplier(numbers), houseEdge)\n        : undefined,\n    });\n\n    // 1. Single numbers\n    const choiceInputs: RouletteChoiceInput[] = Array.from({ length: 37 }, (_, i) => {\n      const rouletteNumber = i as RouletteNumber;\n      return createChoiceInput([rouletteNumber], [rouletteNumber], `${rouletteNumber}`);\n    });\n\n    // 2. Rows\n    choiceInputs.push(\n      ...[1, 2, 3].map((startNumber) => {\n        const rowNumbers = Array.from(\n          { length: 12 },\n          (_, i) => startNumber + i * 3,\n        ) as RouletteNumber[];\n        const bundle =\n          startNumber === 1\n            ? ROULETTE_INPUT_BUNDLE.FIRST_ROW\n            : startNumber === 2\n              ? ROULETTE_INPUT_BUNDLE.SECOND_ROW\n              : ROULETTE_INPUT_BUNDLE.THIRD_ROW;\n        return createChoiceInput(rowNumbers, bundle, `${bundle} (${rowNumbers})`);\n      }),\n    );\n\n    // 3. From to\n    const fromToBundles = [\n      {\n        from: 1,\n        to: 12,\n        id: ROULETTE_INPUT_BUNDLE.ONE_TO_TWELVE,\n      },\n      {\n        from: 13,\n        to: 24,\n        id: ROULETTE_INPUT_BUNDLE.THIRTEEN_TO_TWENTY_FOUR,\n      },\n      {\n        from: 25,\n        to: 36,\n        id: ROULETTE_INPUT_BUNDLE.TWENTY_FIVE_TO_THIRTY_SIX,\n      },\n      {\n        from: 1,\n        to: 18,\n        id: ROULETTE_INPUT_BUNDLE.ONE_TO_EIGHTEEN,\n      },\n      {\n        from: 19,\n        to: 36,\n        id: ROULETTE_INPUT_BUNDLE.EIGHTEEN_TO_THIRTY_SIX,\n      },\n    ];\n    choiceInputs.push(\n      ...fromToBundles.map((bundle) => {\n        const numbers = Array.from(\n          { length: bundle.to - bundle.from + 1 },\n          (_, i) => bundle.from + i,\n        ) as RouletteNumber[];\n        return createChoiceInput(numbers, bundle.id, `${bundle.id}`);\n      }),\n    );\n\n    // 4. Odd and even\n    choiceInputs.push(\n      ...[1, 2].map((startNumber) => {\n        const rowNumbers = Array.from(\n          { length: 18 },\n          (_, i) => startNumber + i * 2,\n        ) as RouletteNumber[];\n        const bundle = startNumber === 1 ? ROULETTE_INPUT_BUNDLE.ODD : ROULETTE_INPUT_BUNDLE.EVEN;\n        return createChoiceInput(rowNumbers, bundle, `${bundle} (${rowNumbers})`);\n      }),\n    );\n\n    // 5. Colors\n    const colorBundles = [\n      {\n        id: ROULETTE_INPUT_BUNDLE.BLACK,\n        numbers: [\n          2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35,\n        ] as RouletteNumber[],\n      },\n      {\n        id: ROULETTE_INPUT_BUNDLE.RED,\n        numbers: [\n          1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36,\n        ] as RouletteNumber[],\n      },\n    ];\n    choiceInputs.push(\n      ...colorBundles.map((colorBundle) =>\n        createChoiceInput(colorBundle.numbers, colorBundle.id, `${colorBundle.id}`),\n      ),\n    );\n    return choiceInputs;\n  }\n\n  // Roulette utilities\n  static getSelectedNumbersCount(encodedNumbers: number) {\n    return (Number(encodedNumbers).toString(2).match(/1/g) || []).length;\n  }\n\n  static combineChoiceInputs(\n    inputs: RouletteChoiceInput[],\n    houseEdge?: number,\n  ): RouletteChoiceInput {\n    // 1. Combine all unique numbers from the inputs\n    const combinedNumbers = [...new Set(inputs.flatMap((input) => input.value))];\n    // 2. Sort the numbers\n    const sortedCombinedNumbers = combinedNumbers.sort((a, b) => a - b);\n\n    // 3. Create a the custom label\n    const customLabel = sortedCombinedNumbers.map((rouletteNumber) => rouletteNumber).join(\" & \");\n\n    return {\n      value: sortedCombinedNumbers,\n      id: sortedCombinedNumbers,\n      game: CASINO_GAME_TYPE.ROULETTE,\n      label: customLabel,\n      winChancePercent: Roulette.getWinChancePercent(combinedNumbers),\n      multiplier: Roulette.getMultiplier(combinedNumbers),\n      formattedMultiplier: Roulette.getFormattedMultiplier(combinedNumbers),\n      netMultiplier: houseEdge\n        ? getNetMultiplier(Roulette.getMultiplier(combinedNumbers), houseEdge)\n        : undefined,\n      formattedNetMultiplier: houseEdge\n        ? getFormattedNetMultiplier(Roulette.getMultiplier(combinedNumbers), houseEdge)\n        : undefined,\n    };\n  }\n}\n","import { encodeAbiParameters } from \"viem\";\nimport { parseAbiParameters } from \"viem\";\nimport type { EncodeAbiParametersReturnType } from \"viem/_types/utils/abi/encodeAbiParameters\";\nimport {\n  type CasinoChainId,\n  type WEIGHTED_CASINO_GAME_TYPE,\n  type WeightedGameConfiguration,\n  generateRandomHexColor,\n  getFormattedNetMultiplier,\n  weightedGameCachedConfigurations,\n  weightedGameCachedConfigurationsByGame,\n} from \"../..\";\nimport { getNetMultiplier } from \"../..\";\nimport { BP_VALUE } from \"../../constants\";\nimport { AbstractCasinoGame, type ChoiceInput } from \"./game\";\n\nexport type WeightedGameConfigId = number;\n\nexport interface WeightedGameChoiceInput extends ChoiceInput<WEIGHTED_CASINO_GAME_TYPE> {\n  value: WeightedGameConfigId;\n  config: WeightedGameConfiguration;\n  id: WeightedGameConfigId;\n}\n\nexport type WeightedGameEncodedInput = number; // configId\nexport type WeightedGameEncodedRolled = number; // the position of the rolled multiplier\n\nexport class WeightedGame extends AbstractCasinoGame<\n  string,\n  WeightedGameEncodedInput,\n  string,\n  WeightedGameEncodedRolled\n> {\n  static getWinChancePercent(\n    weightedGameConfig: WeightedGameConfiguration,\n    position: number,\n  ): number {\n    /*const multipliersPositions = weightedGameConfig.multipliers.map((w, i) => w === multiplier ? i : null).filter(m => m !== null)\n\n    const weights = weightedGameConfig.weights.filter((_, i) => multipliersPositions.includes(i))\n    const totalWeight = weightedGameConfig.weights.reduce((acc, curr) => acc + curr, 0n)\n    const totalWeightForMultiplier = weights.reduce((acc, curr) => acc + curr, 0n)\n\n    return Number(totalWeightForMultiplier) / Number(totalWeight) * 100 */\n\n    const weight = weightedGameConfig.weights[position];\n    const totalWeight = weightedGameConfig.weights.reduce((acc, curr) => acc + curr, 0n);\n    return (Number(weight) / Number(totalWeight)) * 100;\n  }\n\n  static getMultiplier(weightedGameConfig: WeightedGameConfiguration, position: number): number {\n    return Number(weightedGameConfig.multipliers[position] ?? 0);\n  }\n\n  protected static _formatMultiplier(multiplier: number): number {\n    return Number((multiplier / BP_VALUE).toFixed(3));\n  }\n\n  static getFormattedMultiplier(\n    weightedGameConfig: WeightedGameConfiguration,\n    position: number,\n  ): number {\n    return WeightedGame._formatMultiplier(WeightedGame.getMultiplier(weightedGameConfig, position));\n  }\n\n  static encodeInput(configId: WeightedGameConfigId): WeightedGameEncodedInput {\n    return configId;\n  }\n\n  static encodeAbiParametersInput(configId: WeightedGameConfigId): EncodeAbiParametersReturnType {\n    return encodeAbiParameters(parseAbiParameters(\"uint40\"), [WeightedGame.encodeInput(configId)]);\n  }\n\n  static decodeInput(configId: WeightedGameEncodedInput | string): WeightedGameConfigId {\n    return Number(configId);\n  }\n\n  static decodeRolled(\n    encodedRolled: WeightedGameEncodedRolled | string,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n  ): string {\n    const multiplier = weightedGameConfiguration.multipliers[Number(encodedRolled)];\n    const netMultiplier = (Number(multiplier) * (1 - houseEdge / BP_VALUE)) / BP_VALUE;\n    return `x${netMultiplier.toFixed(2)}`;\n  }\n\n  static getChoiceInputs(\n    chainId: CasinoChainId,\n    game: WEIGHTED_CASINO_GAME_TYPE,\n    houseEdge?: number,\n    customWeightedGameConfigs?: WeightedGameConfiguration[],\n  ): WeightedGameChoiceInput[] {\n    const weightedGameConfigs = [\n      ...(weightedGameCachedConfigurationsByGame[game]?.[chainId] ?? []),\n      ...(customWeightedGameConfigs ?? []),\n    ];\n    return weightedGameConfigs.map((config) => {\n      const multipliers = config.multipliers;\n      return {\n        value: config.configId,\n        config: config,\n        id: config.configId,\n        game: config.game,\n        label: WeightedGame.getWeightedGameConfigLabel(\n          config.configId,\n          chainId,\n          customWeightedGameConfigs,\n        ),\n        winChancePercent: multipliers.map((_, index) =>\n          WeightedGame.getWinChancePercent(config, index),\n        ),\n        multiplier: multipliers.map((_, index) => WeightedGame.getMultiplier(config, index)),\n        formattedMultiplier: multipliers.map((_, index) =>\n          WeightedGame.getFormattedMultiplier(config, index),\n        ),\n        netMultiplier: houseEdge\n          ? multipliers.map((_, index) =>\n              getNetMultiplier(WeightedGame.getMultiplier(config, index), houseEdge),\n            )\n          : undefined,\n        formattedNetMultiplier: houseEdge\n          ? multipliers.map((_, index) =>\n              getFormattedNetMultiplier(WeightedGame.getMultiplier(config, index), houseEdge),\n            )\n          : undefined,\n      };\n    });\n  }\n\n  // Weighted game utilities\n  static getWeightedGameConfigLabel(\n    configId: WeightedGameConfigId,\n    chainId: CasinoChainId,\n    customWeightedGameConfigs?: WeightedGameConfiguration[],\n  ): string {\n    const existingCachedConfig = weightedGameCachedConfigurations[chainId].find(\n      (c) => c.configId === configId,\n    );\n    const existingCustomConfig = customWeightedGameConfigs?.find((c) => c.configId === configId);\n    return existingCachedConfig?.label ?? existingCustomConfig?.label ?? `Config #${configId}`;\n  }\n\n  /**\n   * Computes and returns the list of unique outputs for a given weighted game configuration.\n   * It is particularly useful to display all the unique possible outputs above/below the wheel in the UI.\n   *\n   * This function groups segments that have the same net multiplier (netMultiplier),\n   * sums their weights, and returns for each unique multiplier:\n   *   - the net multiplier (rounded to 2 decimals)\n   *   - the raw multiplier (before house edge)\n   *   - the chance to win this multiplier (as a percentage)\n   *   - the color associated with this segment (or a randomly generated color if not provided)\n   *\n   * @param weightedGameConfig The configuration (weights, multipliers, colors, etc.)\n   * @param houseEdge The house edge to apply for net multiplier calculation\n   * @returns An array of objects representing each unique output:\n   *   - multiplier: the raw multiplier (before house edge, BP)\n   *   - formattedMultiplier: the raw multiplier formatted (rounded to 3 decimals)\n   *   - netMultiplier: the net multiplier (after house edge, BP)\n   *   - formattedNetMultiplier: the net multiplier formatted (rounded to 3 decimals)\n   *   - chanceToWin: the probability of landing on this multiplier (in %)\n   *   - color: the color associated with this segment\n   *\n   * @example\n   * const outputs = Wheel.getUniqueOutputs(config, 200);\n   * // [\n   * //   { multiplier: 1.95, rawMultiplier: 19500, chanceToWin: 10.5, color: \"#29384C\" },\n   * //   ...\n   * // ]\n   */\n  static getUniqueOutputs(\n    weightedGameConfig: WeightedGameConfiguration,\n    houseEdge: number,\n  ): {\n    multiplier: number; // BP\n    formattedMultiplier: number;\n    netMultiplier: number; // BP\n    formattedNetMultiplier: number;\n    chanceToWin: number;\n    color: string;\n  }[] {\n    const uniqueMultipliers = new Map<number, { color: string; weight: bigint }>();\n    const totalWeight = weightedGameConfig.weights.reduce((acc, curr) => acc + curr, 0n);\n    weightedGameConfig.multipliers.forEach((_, index) => {\n      const multiplier = WeightedGame.getMultiplier(weightedGameConfig, index);\n      if (!uniqueMultipliers.has(multiplier)) {\n        uniqueMultipliers.set(multiplier, {\n          color: weightedGameConfig.colors?.[index] || generateRandomHexColor(),\n          weight: weightedGameConfig.weights[index]!,\n        });\n      } else {\n        uniqueMultipliers.get(multiplier)!.weight =\n          uniqueMultipliers.get(multiplier)!.weight + weightedGameConfig.weights[index]!;\n      }\n    });\n\n    return Array.from(uniqueMultipliers.entries())\n      .map(([multiplier, config]) => ({\n        multiplier: multiplier,\n        formattedMultiplier: WeightedGame._formatMultiplier(multiplier),\n        netMultiplier: getNetMultiplier(multiplier, houseEdge),\n        formattedNetMultiplier: WeightedGame._formatMultiplier(\n          getNetMultiplier(multiplier, houseEdge),\n        ),\n        chanceToWin: Number(((Number(config.weight) / Number(totalWeight)) * 100).toFixed(2)),\n        color: config.color,\n      }))\n      .sort((a, b) => a.multiplier - b.multiplier);\n  }\n}\n","import { BP_VALUE } from \"../constants\";\nimport { CASINO_GAME_TYPE, type ChainId, type NORMAL_CASINO_GAME_TYPE, slugById } from \"../data\";\nimport { CoinToss } from \"../entities/casino/cointoss\";\nimport { Dice } from \"../entities/casino/dice\";\nimport { Keno } from \"../entities/casino/keno\";\nimport { Roulette } from \"../entities/casino/roulette\";\nimport { WeightedGame } from \"../entities/casino/weightedGame\";\nimport type { WeightedGameConfiguration } from \"../read\";\n\n//houseEdge is in BP_VALUE\nexport function getBetSwirlFees(payout: bigint, houseEdge: number): bigint {\n  return (payout * BigInt(houseEdge)) / BigInt(BP_VALUE);\n}\nexport function getGrossPayout(amount: bigint, betCount: number, grossMulitplier: number): bigint {\n  return (amount * BigInt(betCount) * BigInt(grossMulitplier)) / BigInt(BP_VALUE);\n}\n// grossMultiplier and houseEdge are in BP_VALUE\nexport function getNetPayout(\n  amount: bigint,\n  betCount: number,\n  grossMultiplier: number,\n  houseEdge: number,\n): bigint {\n  const grossPayout = getGrossPayout(amount, betCount, grossMultiplier);\n  return grossPayout - getBetSwirlFees(grossPayout, houseEdge);\n}\n// multiplier and houseEdge are in BP_VALUE\nexport function getNetMultiplier(grossMulitplier: number, houseEdge: number): number {\n  return Math.round(\n    (Number(getNetPayout(BigInt(10 ** 18), 1, grossMulitplier, houseEdge)) / 10 ** 18) * BP_VALUE,\n  );\n}\n// multiplier and houseEdge are BP_VALUE\nexport function getFormattedNetMultiplier(grossMulitplier: number, houseEdge: number): number {\n  return Number((getNetMultiplier(grossMulitplier, houseEdge) / BP_VALUE).toFixed(3));\n}\n\nexport function getPayoutDetails(\n  amount: bigint,\n  betCount: number,\n  grossMultiplier: number,\n  houseEdge: number,\n): {\n  grossPayout: bigint;\n  netPayout: bigint;\n  betSwirlFees: bigint;\n  netMultiplier: number;\n  formattedNetMultiplier: number;\n} {\n  const grossPayout = getGrossPayout(amount, betCount, grossMultiplier);\n  const fees = getBetSwirlFees(grossPayout, houseEdge);\n  const netPayout = grossPayout - fees;\n  const netMultiplier = getNetMultiplier(grossMultiplier, houseEdge);\n  const formattedNetMultiplier = getFormattedNetMultiplier(grossMultiplier, houseEdge);\n  return {\n    grossPayout,\n    netPayout,\n    betSwirlFees: fees,\n    netMultiplier,\n    formattedNetMultiplier,\n  };\n}\n\nexport function decodeNormalCasinoInput(encodedInput: string, game: NORMAL_CASINO_GAME_TYPE): any {\n  switch (game) {\n    case CASINO_GAME_TYPE.DICE:\n      return Dice.decodeInput(encodedInput);\n    case CASINO_GAME_TYPE.COINTOSS:\n      return CoinToss.decodeInput(encodedInput);\n    case CASINO_GAME_TYPE.ROULETTE:\n      return Roulette.decodeInput(encodedInput);\n    case CASINO_GAME_TYPE.KENO:\n      return Keno.decodeInput(encodedInput);\n  }\n}\n\n// houseEdge is in BP_VALUE\nexport function decodeWeightedCasinoInput(\n  encodedInput: string,\n  _weightedGameConfiguration: WeightedGameConfiguration,\n  _houseEdge = 0,\n) {\n  return WeightedGame.decodeInput(encodedInput);\n}\nexport function decodeNormalCasinoRolled(\n  encodedRolled: string,\n  game: NORMAL_CASINO_GAME_TYPE,\n): any {\n  switch (game) {\n    case CASINO_GAME_TYPE.DICE:\n      return Dice.decodeRolled(encodedRolled);\n    case CASINO_GAME_TYPE.COINTOSS:\n      return CoinToss.decodeRolled(encodedRolled);\n    case CASINO_GAME_TYPE.ROULETTE:\n      return Roulette.decodeRolled(encodedRolled);\n    case CASINO_GAME_TYPE.KENO:\n      return Keno.decodeRolled(encodedRolled);\n  }\n}\n// houseEdge is in BP_VALUE\nexport function decodeWeightedCasinoRolled(\n  encodedRolled: string,\n  weightedGameConfiguration: WeightedGameConfiguration,\n  houseEdge = 0,\n): any {\n  return WeightedGame.decodeRolled(encodedRolled, weightedGameConfiguration, houseEdge);\n}\n\nexport function formatChainlinkSubscriptionUrl(subscriptionId: string | bigint, chainId: ChainId) {\n  return `https://vrf.chain.link/${slugById[chainId]}#/side-drawer/subscription/${\n    slugById[chainId]\n  }/${subscriptionId.toString()}`;\n}\n","import { type EncodeAbiParametersReturnType, encodeAbiParameters, parseAbiParameters } from \"viem\";\nimport { BP_VALUE } from \"../../constants\";\nimport { CASINO_GAME_TYPE } from \"../../data/casino\";\nimport { getFormattedNetMultiplier, getNetMultiplier } from \"../../utils/bet\";\nimport { AbstractCasinoGame, type ChoiceInput } from \"./game\";\n\nexport enum COINTOSS_FACE {\n  TAILS = \"TAILS\",\n  HEADS = \"HEADS\",\n}\n\nexport interface CoinTossChoiceInput extends ChoiceInput<CASINO_GAME_TYPE.COINTOSS> {\n  value: COINTOSS_FACE;\n  id: COINTOSS_FACE;\n}\n\nexport type CoinTossEncodedInput = boolean;\nexport type CoinTossEncodedRolled = boolean;\n\nexport class CoinToss extends AbstractCasinoGame<\n  COINTOSS_FACE,\n  CoinTossEncodedInput,\n  COINTOSS_FACE,\n  CoinTossEncodedRolled\n> {\n  static getWinChancePercent(_face: COINTOSS_FACE | string): number {\n    return 50;\n  }\n\n  static getMultiplier(_face: COINTOSS_FACE | string): number {\n    return 20000;\n  }\n\n  static getFormattedMultiplier(_face: COINTOSS_FACE | string): number {\n    return Number((CoinToss.getMultiplier(_face) / BP_VALUE).toFixed(3));\n  }\n\n  static encodeInput(face: COINTOSS_FACE | string): CoinTossEncodedInput {\n    return face === COINTOSS_FACE.HEADS || face.toLowerCase() === \"true\" || face === \"1\";\n  }\n\n  static encodeAbiParametersInput(face: COINTOSS_FACE | string): EncodeAbiParametersReturnType {\n    return encodeAbiParameters(parseAbiParameters(\"bool\"), [CoinToss.encodeInput(face)]);\n  }\n\n  static decodeInput(encodedFace: CoinTossEncodedInput | string): COINTOSS_FACE {\n    if (typeof encodedFace === \"string\") {\n      const normalizedValue = encodedFace.toLowerCase();\n      return normalizedValue === \"true\" || normalizedValue === \"1\"\n        ? COINTOSS_FACE.HEADS\n        : COINTOSS_FACE.TAILS;\n    }\n    return encodedFace ? COINTOSS_FACE.HEADS : COINTOSS_FACE.TAILS;\n  }\n\n  static decodeRolled(encodedFace: CoinTossEncodedRolled | string): COINTOSS_FACE {\n    return CoinToss.decodeInput(encodedFace);\n  }\n  // houseEdge is a number between 0 and 10000\n  static getChoiceInputs(houseEdge?: number): CoinTossChoiceInput[] {\n    const multiplier = CoinToss.getMultiplier(COINTOSS_FACE.TAILS);\n    const formattedMultiplier = CoinToss.getFormattedMultiplier(COINTOSS_FACE.TAILS);\n    const netMultiplier = houseEdge ? getNetMultiplier(multiplier, houseEdge) : undefined;\n    const formattedNetMultiplier = houseEdge\n      ? getFormattedNetMultiplier(multiplier, houseEdge)\n      : undefined;\n\n    return [\n      {\n        value: COINTOSS_FACE.TAILS,\n        id: COINTOSS_FACE.TAILS,\n        game: CASINO_GAME_TYPE.COINTOSS,\n        label: \"Tails\",\n        winChancePercent: CoinToss.getWinChancePercent(COINTOSS_FACE.TAILS),\n        multiplier: CoinToss.getMultiplier(COINTOSS_FACE.TAILS),\n        formattedMultiplier,\n        netMultiplier,\n        formattedNetMultiplier,\n      },\n      {\n        value: COINTOSS_FACE.HEADS,\n        id: COINTOSS_FACE.HEADS,\n        game: CASINO_GAME_TYPE.COINTOSS,\n        label: \"Heads\",\n        winChancePercent: CoinToss.getWinChancePercent(COINTOSS_FACE.HEADS),\n        multiplier: multiplier,\n        formattedMultiplier,\n        netMultiplier,\n        formattedNetMultiplier,\n      },\n    ];\n  }\n}\n","export const freebetAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"manager_\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"bank_\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"BalanceTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"BetAlreadyWagered\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"BetExpired\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAmount\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidSignature\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidValue\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"UnauthorizedGame\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WagerDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongChainId\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WrongFreebetAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"previousBank\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"bank\",\n        type: \"address\",\n      },\n    ],\n    name: \"BankSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Deposit\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"previousManager\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"manager\",\n        type: \"address\",\n      },\n    ],\n    name: \"ManagerSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"previousOwner\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"newOwner\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"freeBetId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"player\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"betId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"game\",\n        type: \"address\",\n      },\n    ],\n    name: \"PlaceFreeBet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"Withdraw\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"WithdrawStuckFunds\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"GAME_ROLE\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"affiliateBalances\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"bank\",\n    outputs: [\n      {\n        internalType: \"contract IBank\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"deposit\",\n    outputs: [],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"freeBets\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"freeBetId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"player\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"betId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"game\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"manager\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"renounceOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"bank_\",\n        type: \"address\",\n      },\n    ],\n    name: \"setBank\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"manager_\",\n        type: \"address\",\n      },\n    ],\n    name: \"setManager\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"totalAffiliateBalance\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"newOwner\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"game\",\n        type: \"address\",\n      },\n      {\n        internalType: \"bytes\",\n        name: \"input\",\n        type: \"bytes\",\n      },\n      {\n        components: [\n          {\n            internalType: \"uint256\",\n            name: \"chainId\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"freeBetId\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"address\",\n            name: \"player\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"amount\",\n            type: \"uint256\",\n          },\n          {\n            internalType: \"address\",\n            name: \"token\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint64\",\n            name: \"expiresAt\",\n            type: \"uint64\",\n          },\n          {\n            internalType: \"address\",\n            name: \"affiliate\",\n            type: \"address\",\n          },\n          {\n            internalType: \"address\",\n            name: \"freebetAddress\",\n            type: \"address\",\n          },\n        ],\n        internalType: \"struct IFreeBetPlayer.FreeBetData\",\n        name: \"freeBetData\",\n        type: \"tuple\",\n      },\n      {\n        internalType: \"bytes\",\n        name: \"signature\",\n        type: \"bytes\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"maxHouseEdge\",\n        type: \"uint16\",\n      },\n    ],\n    name: \"wager\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"betId\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdraw\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawStuckFunds\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    stateMutability: \"payable\",\n    type: \"receive\",\n  },\n] as const;\n","import type { BetSwirlWallet } from \"../../provider\";\n\nexport enum GAS_PRICE_TYPE {\n  NORMAL = \"NORMAL\",\n  FAST = \"FAST\",\n  INSTANT = \"INSTANT\",\n}\n\nexport interface RETURN_TYPE_GAS_PRICES {\n  [GAS_PRICE_TYPE.NORMAL]: bigint;\n  [GAS_PRICE_TYPE.FAST]: bigint;\n  [GAS_PRICE_TYPE.INSTANT]: bigint;\n}\n\nexport async function getGasPrices(\n  wallet: BetSwirlWallet,\n  chainId?: number,\n): Promise<RETURN_TYPE_GAS_PRICES> {\n  const gasPrice = await wallet.getPublicClient(chainId).getGasPrice();\n  const basePrice = gasPrice ? BigInt(gasPrice) : BigInt(1000000000);\n\n  return {\n    [GAS_PRICE_TYPE.NORMAL]: basePrice,\n    [GAS_PRICE_TYPE.FAST]: (basePrice * 120n) / 100n, // 20%\n    [GAS_PRICE_TYPE.INSTANT]: (basePrice * 150n) / 100n, // 50%\n  };\n}\n","import { casinoGameAbi } from \"../../abis/v2/casino/game\";\n\nimport { type Hex, encodeFunctionData } from \"viem\";\nimport { defaultCasinoPlaceBetOptions } from \"../../actions\";\nimport { type CASINO_GAME_TYPE, type CasinoChainId, casinoChainById } from \"../../data/casino\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { ChainError, TransactionError } from \"../../errors/types\";\nimport type { BetSwirlFunctionData } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { getCasinoChainId } from \"../../utils\";\nimport { GAS_PRICE_TYPE, getGasPrices } from \"./gasPrice\";\n\nexport type RawChainlinkVrfCost = bigint;\n\nexport async function getChainlinkVrfCost(\n  wallet: BetSwirlWallet,\n  game: CASINO_GAME_TYPE, // TODO allow to pass PVP_GAME_TYPE\n  tokenAddress: Hex,\n  betCount: number,\n  gasPrice?: bigint,\n  gasPriceType?: GAS_PRICE_TYPE,\n): Promise<bigint> {\n  const casinoChainId = getCasinoChainId(wallet);\n\n  // Get default gas price if gas price is not passed\n  const effectiveGasPrice =\n    gasPrice ||\n    (await getGasPrices(wallet, casinoChainId))[\n      gasPriceType || defaultCasinoPlaceBetOptions.gasPriceType\n    ];\n  const functionData = getChainlinkVrfCostFunctionData(game, tokenAddress, betCount, casinoChainId);\n  const gameAddress = functionData.data.to;\n  try {\n    const { data: vrfCost } = await wallet.readContract<typeof functionData>(\n      functionData,\n      effectiveGasPrice,\n    );\n\n    if (!vrfCost) {\n      console.warn(\n        `[getChainlinkVrfCost] vrfCost is 0 for tokenAddress: ${tokenAddress}, betCount: ${betCount}, gameAddress: ${gameAddress}, chainId: ${casinoChainId}`,\n      );\n      return 0n;\n    }\n    return BigInt(vrfCost || 0n);\n  } catch (error) {\n    throw new TransactionError(\n      `An error occured while getting the chainlink vrf cost: ${error}`,\n      ERROR_CODES.READ.CHAINLINK_VRF_COST_ERROR,\n      {\n        gameAddress,\n        tokenAddress,\n        betCount,\n        chainId: casinoChainId,\n        gasPrice: effectiveGasPrice,\n      },\n    );\n  }\n}\n\nexport function getChainlinkVrfCostFunctionData(\n  game: CASINO_GAME_TYPE,\n  tokenAddress: Hex,\n  betCount: number,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof casinoGameAbi, \"getChainlinkVRFCost\", readonly [Hex, number]> {\n  const casinoChain = casinoChainById[casinoChainId];\n  const gameAddress = casinoChain.contracts.games[game]?.address;\n\n  if (!gameAddress) {\n    throw new ChainError(\n      `${game} is not available for chain ${casinoChain.viemChain.name} (${casinoChainId})`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n      {\n        chainId: casinoChainId,\n        supportedChains: Object.keys(casinoChainById),\n      },\n    );\n  }\n  const abi = casinoGameAbi;\n  const functionName = \"getChainlinkVRFCost\";\n  const args = [tokenAddress, betCount] as const;\n  return {\n    data: { to: gameAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import {\n  type Address,\n  type Hex,\n  encodeFunctionData,\n  erc20Abi,\n  getAddress,\n  zeroAddress,\n} from \"viem\";\nimport { type ChainId, chainById } from \"../../data/chains\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { BetSwirlFunctionData, Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { chainNativeCurrencyToToken } from \"../../utils/tokens\";\n\nexport type RawTokenSymbol = string;\nexport type RawTokenDecimals = number;\nexport async function getTokenMetadata(\n  wallet: BetSwirlWallet,\n  tokenAddress: Hex,\n  chainId: ChainId,\n): Promise<Token> {\n  if (tokenAddress === zeroAddress) {\n    return chainNativeCurrencyToToken(chainById[chainId].nativeCurrency);\n  }\n\n  try {\n    const functionDatas = [\n      getTokenDecimalsFunctionData(tokenAddress),\n      getTokenSymbolFunctionData(tokenAddress),\n    ];\n    const tokenMetadata = await wallet.readContracts<\n      typeof functionDatas,\n      [RawTokenDecimals, RawTokenSymbol]\n    >(functionDatas);\n\n    return {\n      address: getAddress(tokenAddress),\n      decimals: tokenMetadata[0],\n      symbol: tokenMetadata[1] || \"UNKNOWN\",\n    };\n  } catch (error) {\n    throw new TransactionError(\n      `Error checking metdata of ${tokenAddress} on chain ${chainId}`,\n      ERROR_CODES.TRANSACTION.TOKEN_METADATA_ERROR,\n      {\n        chainId,\n        tokenAddress,\n      },\n    );\n  }\n}\n\nexport function getTokenDecimalsFunctionData(\n  tokenAddress: Address,\n): BetSwirlFunctionData<typeof erc20Abi, \"decimals\", readonly []> {\n  const abi = erc20Abi;\n  const functionName = \"decimals\" as const;\n  const args = [] as const;\n  return {\n    data: { to: tokenAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n\nexport function getTokenSymbolFunctionData(\n  tokenAddress: Address,\n): BetSwirlFunctionData<typeof erc20Abi, \"symbol\", readonly []> {\n  const abi = erc20Abi;\n  const functionName = \"symbol\" as const;\n  const args = [] as const;\n  return {\n    data: { to: tokenAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import type { Hash, Hex } from \"viem\";\nimport { encodeFunctionData, erc20Abi } from \"viem\";\nimport { GAS_TOKEN_ADDRESS } from \"../../constants\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { BetSwirlFunctionData } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\n\nexport enum ALLOWANCE_TYPE {\n  ALWAYS = \"ALWAYS\",\n  AUTO = \"AUTO\",\n  NONE = \"NONE\",\n}\n\nexport interface ApproveResult {\n  approvedAmount: bigint;\n  tokenAddress: Hex;\n  allower: Hex;\n  spender: Hex;\n}\n\nexport type RawAllowance = bigint;\n\nexport async function approve(\n  wallet: BetSwirlWallet,\n  tokenAddress: Hex,\n  allower: Hex,\n  spender: Hex,\n  amount: bigint,\n  gasPrice?: bigint,\n  pollingInterval?: number,\n  allowanceType: ALLOWANCE_TYPE = ALLOWANCE_TYPE.AUTO,\n  onApprovePending?: (tx: Hash, result: ApproveResult) => void | Promise<void>,\n) {\n  try {\n    if (tokenAddress === GAS_TOKEN_ADDRESS || allowanceType === ALLOWANCE_TYPE.NONE)\n      return { receipt: null, result: null };\n    let allowance: null | bigint = null;\n    if (allowanceType === ALLOWANCE_TYPE.AUTO) {\n      const functionData = getAllowanceFunctionData(tokenAddress, allower, spender);\n      allowance = await wallet.readContract<typeof functionData, RawAllowance>(functionData);\n    }\n\n    if (!allowance || allowance < amount) {\n      const amountToApprove = amount - (allowance || 0n);\n      const functionData = getApproveFunctionData(tokenAddress, spender, amountToApprove);\n      const tx = await wallet.writeContract(functionData, undefined, gasPrice);\n      const result: ApproveResult = {\n        approvedAmount: amountToApprove,\n        tokenAddress,\n        allower,\n        spender,\n      };\n      await onApprovePending?.(tx, result);\n      const receipt = await wallet.waitTransaction(tx, pollingInterval);\n      return { receipt, result };\n    }\n\n    return { receipt: null, result: null };\n  } catch (error) {\n    throw new TransactionError(\n      `Error checking and approving token ${tokenAddress} on chain ${wallet.getChainId()}`,\n      ERROR_CODES.TRANSACTION.TOKEN_APPROVAL_ERROR,\n      {\n        chainId: wallet.getChainId(),\n        tokenAddress,\n        spender,\n        amount,\n        allower,\n      },\n    );\n  }\n}\n\n// multiplier = gross BP_VALUE\nexport function getAllowanceFunctionData(\n  tokenAddress: Hex,\n  allower: Hex,\n  spender: Hex,\n): BetSwirlFunctionData<typeof erc20Abi, \"allowance\", readonly [Hex, Hex]> {\n  const abi = erc20Abi;\n  const functionName = \"allowance\" as const;\n  const args = [allower, spender] as const;\n  return {\n    data: { to: tokenAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n\nexport function getApproveFunctionData(\n  tokenAddress: Hex,\n  spender: Hex,\n  amount: bigint,\n): BetSwirlFunctionData<typeof erc20Abi, \"approve\", readonly [Hex, bigint]> {\n  const abi = erc20Abi;\n  const functionName = \"approve\" as const;\n  const args = [spender, amount] as const;\n  return {\n    data: { to: tokenAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import {\n  type Address,\n  type EncodeAbiParametersReturnType,\n  type Hash,\n  type Hex,\n  type TransactionReceipt,\n  encodeFunctionData,\n} from \"viem\";\nimport { decodeEventLog } from \"viem\";\nimport { coinTossAbi } from \"../../abis/v2/casino/cointoss\";\nimport { freebetAbi } from \"../../abis/v2/casino/freebet\";\nimport { GAS_TOKEN_ADDRESS } from \"../../constants\";\nimport type { SignedFreebet } from \"../../data\";\nimport {\n  CASINO_GAME_PLACE_BET_ABI,\n  CASINO_GAME_TYPE,\n  type CasinoChainId,\n  MAX_SDK_HOUSE_EGDE,\n  type NORMAL_CASINO_GAME_TYPE,\n  type WEIGHTED_CASINO_GAME_TYPE,\n  casinoChainById,\n} from \"../../data/casino\";\nimport type { KenoEncodedInput, WeightedGameEncodedInput } from \"../../entities\";\nimport type { CoinTossEncodedInput } from \"../../entities/casino/cointoss\";\nimport type { DiceEncodedInput } from \"../../entities/casino/dice\";\nimport type { RouletteEncodedInput } from \"../../entities/casino/roulette\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { ChainError, ConfigurationError, TransactionError } from \"../../errors/types\";\nimport type { BetSwirlEventData, BetSwirlFunctionData, GameAbi, Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { getChainlinkVrfCost } from \"../../read/common/chainlinkVrfCost\";\nimport { GAS_PRICE_TYPE, getGasPrices } from \"../../read/common/gasPrice\";\nimport { getTokenMetadata } from \"../../read/common/tokenMetadata\";\nimport { getCasinoChainId } from \"../../utils\";\nimport { ALLOWANCE_TYPE, type ApproveResult, approve } from \"../common/approve\";\n\nexport interface CasinoBetParams {\n  betAmount: bigint;\n  betCount?: number;\n  tokenAddress?: Address;\n  stopGain?: bigint;\n  stopLoss?: bigint;\n  vrfFees?: bigint;\n  receiver?: Hex;\n  affiliate?: Hex;\n}\n\nexport const defaultCasinoGameParams = {\n  betCount: 1,\n  //token: zeroAddress, => chain.nativeCurrency\n  stopGain: 0n,\n  stopLoss: 0n,\n  vrfFees: 0n, // When 0, VRF fees are calculated on the fly\n  //pollingInterval: => data in casino.ts\n};\n\nexport interface CasinoPlaceBetOptions {\n  gasPriceType?: GAS_PRICE_TYPE;\n  gasPrice?: bigint; // wei\n  allowanceType?: ALLOWANCE_TYPE;\n  pollingInterval?: number;\n}\n\nexport const defaultCasinoPlaceBetOptions = {\n  gasPriceType: GAS_PRICE_TYPE.NORMAL,\n  gasPrice: 0n,\n  allowanceType: ALLOWANCE_TYPE.AUTO,\n};\n// Game should not know the game implementation details, but well..  it helps developers\nexport type GameEncodedInput =\n  | CoinTossEncodedInput\n  | DiceEncodedInput\n  | RouletteEncodedInput\n  | KenoEncodedInput\n  | WeightedGameEncodedInput;\nexport interface GenericCasinoBetParams extends CasinoBetParams {\n  game: CASINO_GAME_TYPE;\n  gameEncodedInput: GameEncodedInput;\n}\n\ninterface CommonCasinoPlacedBet {\n  id: bigint;\n  betAmount: bigint;\n  betCount: number;\n  totalBetAmount: bigint;\n  chargedVRFCost: bigint;\n  token: Token;\n  affiliate: Hex;\n  receiver: Hex;\n  stopGain: bigint;\n  stopLoss: bigint;\n  betTxnHash: Hash;\n  betBlock: bigint;\n  chainId: CasinoChainId;\n}\nexport interface NormalCasinoPlacedBet extends CommonCasinoPlacedBet {\n  game: NORMAL_CASINO_GAME_TYPE;\n}\nexport interface WeightedCasinoPlacedBet extends CommonCasinoPlacedBet {\n  game: WEIGHTED_CASINO_GAME_TYPE;\n}\n\nexport type CasinoPlacedBet = NormalCasinoPlacedBet | WeightedCasinoPlacedBet;\n\nexport interface PlaceBetCallbacks {\n  onApprovePending?: (tx: Hash, result: ApproveResult) => void | Promise<void>;\n  onApproved?: (receipt: TransactionReceipt, result: ApproveResult) => void | Promise<void>;\n  onBetPlacedPending?: (tx: Hash) => void | Promise<void>;\n}\n\nexport async function placeBet(\n  wallet: BetSwirlWallet,\n  betParams: GenericCasinoBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: CasinoPlacedBet; receipt: TransactionReceipt }> {\n  const casinoChainId = getCasinoChainId(wallet);\n  const casinoChain = casinoChainById[casinoChainId];\n  const game = casinoChain.contracts.games[betParams.game];\n\n  if (!game) {\n    throw new ChainError(\n      `${betParams.game} is not available for chain ${casinoChain.viemChain.name} (${casinoChainId})`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n      {\n        chainId: casinoChainId,\n        supportedChains: Object.keys(casinoChainById),\n      },\n    );\n  }\n\n  const accountAddress = betParams.receiver || wallet.getAccount(casinoChainId)?.address;\n  if (!accountAddress) {\n    throw new ConfigurationError(\n      `No configured account in the wallet for chain ${casinoChain.viemChain.name} (${casinoChainId})`,\n      ERROR_CODES.WALLET.ACCOUNT_MISSING,\n      {\n        chainId: casinoChainId,\n      },\n    );\n  }\n  try {\n    // Get gas price if needed\n    const gasPrice =\n      options?.gasPrice ||\n      (await getGasPrices(wallet, casinoChainId))[\n        options?.gasPriceType || defaultCasinoPlaceBetOptions.gasPriceType\n      ];\n    const tokenAddress = betParams.tokenAddress || GAS_TOKEN_ADDRESS;\n\n    // Generate function data\n    const receiver = betParams.receiver || accountAddress;\n    const functionData = getPlaceBetFunctionData({ ...betParams, receiver }, casinoChainId);\n\n    // Approve if needed\n\n    const allowanceType = options?.allowanceType || defaultCasinoPlaceBetOptions.allowanceType;\n    const pollingInterval = options?.pollingInterval || casinoChain.options.pollingInterval;\n\n    const { receipt: approveReceipt, result: approveResult } = await approve(\n      wallet,\n      tokenAddress,\n      accountAddress,\n      game.address,\n      functionData.extraData.totalBetAmount,\n      gasPrice,\n      pollingInterval,\n      allowanceType,\n      callbacks?.onApprovePending,\n    );\n\n    if (approveReceipt) await callbacks?.onApproved?.(approveReceipt, approveResult);\n\n    // Get VRF fees\n    const vrfFees =\n      betParams.vrfFees ||\n      (await getChainlinkVrfCost(\n        wallet,\n        betParams.game,\n        tokenAddress,\n        functionData.extraData.betCount,\n        gasPrice,\n      ));\n    // Execute place bet tx\n    const hash = await wallet.writeContract(\n      functionData,\n      functionData.extraData.getValue(vrfFees),\n      gasPrice,\n    );\n    await callbacks?.onBetPlacedPending?.(hash);\n    const receipt = await wallet.waitTransaction(hash, pollingInterval);\n\n    const placedBet = await getPlacedBetFromReceipt(wallet, receipt, betParams.game);\n    if (!placedBet) {\n      throw new TransactionError(\n        \"PlaceBet event not found\",\n        ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n        {\n          gameAddress: game.address,\n          gameType: betParams.game,\n          chainId: casinoChainId,\n          tokenAddress,\n        },\n      );\n    }\n\n    return { placedBet, receipt };\n  } catch (error) {\n    throw new TransactionError(\n      `An error occured while placing the bet: ${error}`,\n      ERROR_CODES.GAME.PLACE_BET_ERROR,\n      {\n        gameAddress: game.address,\n        gameType: betParams.game,\n        chainId: casinoChainId,\n        tokenAddress: betParams.tokenAddress,\n        betAmount: betParams.betAmount,\n        betCount: betParams.betCount,\n        stopGain: betParams.stopGain,\n        stopLoss: betParams.stopLoss,\n      },\n    );\n  }\n}\n\n/* Previously was Omit<GenericCasinoBetParams, \"receiver\" | \"vrfFees\" | \"token\"> & {\n    receiver: Hex;\n    tokenAddress?: Hex;\n  } */\nexport interface PlaceBetFunctionDataGameParams {\n  receiver: Address;\n  game: CASINO_GAME_TYPE;\n  gameEncodedInput: GameEncodedInput;\n  betAmount: bigint;\n  tokenAddress?: Address;\n  betCount?: number;\n  stopGain?: bigint;\n  stopLoss?: bigint;\n  affiliate?: Address;\n}\n\nexport interface PlaceBetExtraData {\n  totalBetAmount: bigint;\n  tokenAddress: Address;\n  betCount: number;\n  stopGain: bigint;\n  stopLoss: bigint;\n  maxHouseEdge: number;\n  affiliate: Address;\n  getValue: (vrfFees: bigint) => bigint;\n}\n\nexport function getPlaceBetFunctionData(\n  gameParams: PlaceBetFunctionDataGameParams,\n  chainId: CasinoChainId,\n): BetSwirlFunctionData<\n  GameAbi<typeof gameParams.game>,\n  \"wager\",\n  readonly [\n    ...GameEncodedInput[],\n    Hex,\n    Hex,\n    {\n      readonly token: Hex;\n      readonly betAmount: bigint;\n      readonly betCount: number;\n      readonly stopGain: bigint;\n      readonly stopLoss: bigint;\n      readonly maxHouseEdge: number;\n    },\n  ]\n> & {\n  extraData: PlaceBetExtraData;\n} {\n  const casinoChain = casinoChainById[chainId];\n  const game = casinoChain.contracts.games[gameParams.game];\n\n  if (!game) {\n    throw new ChainError(\n      `${gameParams.game} is not available for chain ${casinoChain.viemChain.name} (${chainId})`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n      {\n        chainId,\n        supportedChains: Object.keys(casinoChainById),\n      },\n    );\n  }\n\n  const affiliate = gameParams.affiliate || casinoChain.defaultAffiliate;\n  const tokenAddress = gameParams.tokenAddress || GAS_TOKEN_ADDRESS;\n  const betCount = gameParams.betCount || defaultCasinoGameParams.betCount;\n  const stopGain = gameParams.stopGain || defaultCasinoGameParams.stopGain;\n  const stopLoss = gameParams.stopLoss || defaultCasinoGameParams.stopLoss;\n  const maxHouseEdge = MAX_SDK_HOUSE_EGDE;\n\n  const abi = game.abi;\n  const functionName = \"wager\" as const;\n  const args = [\n    ...(Array.isArray(gameParams.gameEncodedInput)\n      ? gameParams.gameEncodedInput\n      : [gameParams.gameEncodedInput]),\n    gameParams.receiver,\n    affiliate,\n    {\n      token: tokenAddress,\n      betAmount: gameParams.betAmount,\n      betCount,\n      stopGain,\n      stopLoss,\n      maxHouseEdge,\n    },\n  ] as const;\n\n  const totalBetAmount = gameParams.betAmount * BigInt(betCount);\n  return {\n    data: { to: game.address, abi, functionName, args },\n    encodedData: encodeFunctionData({ abi, functionName, args }),\n    extraData: {\n      totalBetAmount,\n      tokenAddress,\n      betCount,\n      stopGain,\n      stopLoss,\n      maxHouseEdge,\n      affiliate,\n      getValue: (vrfFees: bigint) =>\n        tokenAddress === GAS_TOKEN_ADDRESS ? totalBetAmount + vrfFees : vrfFees,\n    },\n  };\n}\n\n/* Freebet section */\n\nexport interface CasinoFreebetParams {\n  freebet: SignedFreebet;\n  vrfFees?: bigint;\n}\n\nexport interface GenericCasinoFreebetParams extends CasinoFreebetParams {\n  game: CASINO_GAME_TYPE;\n  gameEncodedAbiParametersInput: EncodeAbiParametersReturnType;\n}\n\nexport type CasinoPlacedFreebet = CasinoPlacedBet;\n\nexport interface PlaceFreebetCallbacks {\n  onBetPlacedPending?: (tx: Hash) => void | Promise<void>;\n}\n\nexport async function placeFreebet(\n  wallet: BetSwirlWallet,\n  freebetParams: GenericCasinoFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceFreebetCallbacks,\n): Promise<{ placedFreebet: CasinoPlacedFreebet; receipt: TransactionReceipt }> {\n  const casinoChainId = getCasinoChainId(wallet);\n  if (casinoChainId !== freebetParams.freebet.chainId) {\n    throw new ChainError(\n      `Chain id mismatch: ${casinoChainId} (wallet) !== ${freebetParams.freebet.chainId} (freebet)`,\n      ERROR_CODES.CHAIN.CHAIN_ID_MISMATCH,\n    );\n  }\n  const casinoChain = casinoChainById[casinoChainId];\n  const game = casinoChain.contracts.games[freebetParams.game];\n\n  if (!game) {\n    throw new ChainError(\n      `${freebetParams.game} is not available for chain ${casinoChain.viemChain.name} (${casinoChainId})`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n      {\n        chainId: casinoChainId,\n        supportedChains: Object.keys(casinoChainById),\n      },\n    );\n  }\n\n  try {\n    // Get gas price if needed\n    const gasPrice =\n      options?.gasPrice ||\n      (await getGasPrices(wallet, casinoChainId))[\n        options?.gasPriceType || defaultCasinoPlaceBetOptions.gasPriceType\n      ];\n    const token = freebetParams.freebet.token;\n\n    // Generate function data\n    const functionData = getPlaceFreebetFunctionData(freebetParams, casinoChainId);\n\n    // Get VRF fees\n    const vrfFees =\n      freebetParams.vrfFees ||\n      (await getChainlinkVrfCost(\n        wallet,\n        freebetParams.game,\n        token.address,\n        functionData.extraData.betCount,\n        gasPrice,\n      ));\n    // Execute place bet tx\n    const hash = await wallet.writeContract(\n      functionData,\n      functionData.extraData.getValue(vrfFees),\n      gasPrice,\n    );\n    await callbacks?.onBetPlacedPending?.(hash);\n    const pollingInterval = options?.pollingInterval || casinoChain.options.pollingInterval;\n    const receipt = await wallet.waitTransaction(hash, pollingInterval);\n\n    const placedFreebet = await getPlacedBetFromReceipt(wallet, receipt, freebetParams.game);\n    if (!placedFreebet) {\n      throw new TransactionError(\n        \"PlaceBet event not found\",\n        ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n        {\n          gameAddress: game.address,\n          gameType: freebetParams.game,\n          chainId: casinoChainId,\n          token,\n        },\n      );\n    }\n\n    return { placedFreebet, receipt };\n  } catch (error) {\n    throw new TransactionError(\n      `An error occured while placing the freebet: ${error}`,\n      ERROR_CODES.GAME.PLACE_FREEBET_ERROR,\n      {\n        gameAddress: game.address,\n        gameType: freebetParams.game,\n        chainId: casinoChainId,\n        token: freebetParams.freebet.token,\n        input: freebetParams.gameEncodedAbiParametersInput,\n        freebetId: freebetParams.freebet.id,\n        playerAddress: freebetParams.freebet.playerAddress,\n        amount: freebetParams.freebet.amount,\n        tokenAddress: freebetParams.freebet.token.address,\n        expiresAt: freebetParams.freebet.expirationDate,\n        affiliateAddress: freebetParams.freebet.affiliateAddress,\n        freebetAddress: freebetParams.freebet.freebetAddress,\n      },\n    );\n  }\n}\n\nexport interface PlaceFreebetFunctionDataGameParams {\n  freebet: SignedFreebet;\n  game: CASINO_GAME_TYPE;\n  gameEncodedAbiParametersInput: EncodeAbiParametersReturnType;\n}\n\nexport interface PlaceFreebetExtraData extends PlaceBetExtraData {}\n\nexport function getPlaceFreebetFunctionData(\n  gameParams: PlaceFreebetFunctionDataGameParams,\n  chainId: CasinoChainId,\n): BetSwirlFunctionData<\n  typeof freebetAbi,\n  \"wager\",\n  readonly [\n    Hex,\n    EncodeAbiParametersReturnType,\n    {\n      readonly chainId: bigint;\n      readonly freeBetId: bigint;\n      readonly player: Address;\n      readonly amount: bigint;\n      readonly token: Address;\n      readonly expiresAt: bigint;\n      readonly affiliate: Address;\n      readonly freebetAddress: Address;\n    },\n    Hex, // signature\n    number,\n  ]\n> & {\n  extraData: PlaceFreebetExtraData;\n} {\n  const casinoChain = casinoChainById[chainId];\n  const game = casinoChain.contracts.games[gameParams.game];\n\n  if (!game) {\n    throw new ChainError(\n      `${gameParams.game} is not available for chain ${casinoChain.viemChain.name} (${chainId})`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n      {\n        chainId,\n        supportedChains: Object.keys(casinoChainById),\n      },\n    );\n  }\n\n  const affiliate = gameParams.freebet.affiliateAddress;\n  const tokenAddress = gameParams.freebet.token.address;\n  const betCount = 1; // freebet is always 1 bet\n  const stopGain = 0n;\n  const stopLoss = 0n;\n  const maxHouseEdge = MAX_SDK_HOUSE_EGDE;\n\n  const abi = freebetAbi;\n  const functionName = \"wager\" as const;\n  const args = [\n    game.address,\n    gameParams.gameEncodedAbiParametersInput,\n    {\n      chainId: BigInt(gameParams.freebet.chainId),\n      freeBetId: BigInt(gameParams.freebet.id),\n      player: gameParams.freebet.playerAddress,\n      amount: gameParams.freebet.amount,\n      token: gameParams.freebet.token.address,\n      expiresAt: BigInt(Math.floor(gameParams.freebet.expirationDate.getTime() / 1000)),\n      affiliate: gameParams.freebet.affiliateAddress,\n      freebetAddress: gameParams.freebet.freebetAddress,\n    },\n    gameParams.freebet.signature,\n    maxHouseEdge,\n  ] as const;\n\n  const totalBetAmount = gameParams.freebet.amount;\n  return {\n    data: { to: gameParams.freebet.freebetAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({ abi, functionName, args }),\n    extraData: {\n      totalBetAmount,\n      tokenAddress,\n      betCount,\n      stopGain,\n      stopLoss,\n      maxHouseEdge,\n      affiliate,\n      getValue: (vrfFees: bigint) =>\n        tokenAddress === GAS_TOKEN_ADDRESS ? totalBetAmount + vrfFees : vrfFees,\n    },\n  };\n}\n\nexport async function getPlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  game: CASINO_GAME_TYPE,\n  chainId?: CasinoChainId,\n  usedToken?: Token, // to avoid to fetch the token metadata from the chain if the token used is already known\n): Promise<CasinoPlacedBet | null> {\n  const casinoChainId = getCasinoChainId(wallet, chainId);\n  const casinoChain = casinoChainById[casinoChainId];\n  // Read the Placedbet event from logs\n  const decodedPlaceBetEvent = receipt.logs\n    .map((log) => {\n      try {\n        return decodeEventLog<typeof coinTossAbi>({\n          //@ts-ignore coinTossAbi is used because PlaceBet event is the same for all games (expect input param)\n          abi: casinoChain.contracts.games[game]?.abi!,\n          //@ts-ignore\n          data: log.data,\n          topics: log.topics,\n        });\n      } catch {\n        return null;\n      }\n    })\n    .find((log) => log?.eventName === \"PlaceBet\");\n\n  if (!decodedPlaceBetEvent) {\n    return null;\n  }\n\n  const { args } = decodedPlaceBetEvent;\n\n  let token = usedToken;\n  if (!token) {\n    token = await getTokenMetadata(wallet, args.token!, casinoChainId);\n  }\n  return {\n    id: args.id,\n    betAmount: args.amount,\n    betCount: args.betCount,\n    totalBetAmount: args.amount * BigInt(args.betCount),\n    chargedVRFCost: args.chargedVRFCost,\n    token,\n    affiliate: args.affiliate,\n    receiver: args.receiver,\n    stopGain: args.stopGain,\n    stopLoss: args.stopLoss,\n    betTxnHash: receipt.transactionHash,\n    betBlock: receipt.blockNumber,\n    chainId: casinoChainId,\n    game,\n  };\n}\n\nexport function getPlaceBetEventData(\n  game: CASINO_GAME_TYPE,\n  casinoChainId: CasinoChainId,\n  receiver: Address,\n): BetSwirlEventData<GameAbi<typeof game>, \"PlaceBet\", { receiver: Address }> & {\n  event: { abiEvent: (typeof CASINO_GAME_PLACE_BET_ABI)[typeof game][number] };\n} {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const gameData = casinoChain.contracts.games[game];\n  if (!gameData) {\n    throw new ChainError(\n      `Game ${game} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = CASINO_GAME_PLACE_BET_ABI[game];\n  const eventName = \"PlaceBet\" as const;\n  const args = { receiver: receiver } as const;\n\n  const placeBetEvent = CASINO_GAME_PLACE_BET_ABI[game]![0];\n\n  return {\n    data: { to: gameData.address, abi, eventName, args },\n    event: {\n      abiEvent: placeBetEvent,\n    },\n  };\n}\n","import { type TransactionReceipt, decodeEventLog } from \"viem\";\nimport { coinTossAbi } from \"../../abis/v2/casino/cointoss\";\nimport { CASINO_GAME_TYPE, type CasinoChainId } from \"../../data/casino\";\nimport {\n  type COINTOSS_FACE,\n  CoinToss,\n  type CoinTossEncodedInput,\n} from \"../../entities/casino/cointoss\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport {\n  type CasinoBetParams,\n  type CasinoFreebetParams,\n  type CasinoPlaceBetOptions,\n  type NormalCasinoPlacedBet,\n  type PlaceBetCallbacks,\n  type PlaceFreebetCallbacks,\n  getPlacedBetFromReceipt,\n  placeBet,\n  placeFreebet,\n} from \"./game\";\n\nexport interface CoinTossBetParams extends CasinoBetParams {\n  face: COINTOSS_FACE;\n}\n\nexport interface CoinTossFreebetParams extends CasinoFreebetParams {\n  face: COINTOSS_FACE;\n}\n\nexport interface CoinTossPlacedBet extends NormalCasinoPlacedBet {\n  face: COINTOSS_FACE;\n  encodedFace: CoinTossEncodedInput;\n  game: CASINO_GAME_TYPE.COINTOSS;\n}\n\nexport async function placeCoinTossBet(\n  wallet: BetSwirlWallet,\n  coinTossParams: CoinTossBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: CoinTossPlacedBet; receipt: TransactionReceipt }> {\n  const { placedBet, receipt } = await placeBet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.COINTOSS,\n      gameEncodedInput: CoinToss.encodeInput(coinTossParams.face),\n      ...coinTossParams,\n    },\n    options,\n    callbacks,\n  );\n  const coinTossPlacedBet = await getCoinTossPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedBet.chainId,\n    placedBet.token,\n  );\n  if (!coinTossPlacedBet) {\n    throw new TransactionError(\n      \"CoinToss PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedBet.chainId,\n      },\n    );\n  }\n  return { placedBet: coinTossPlacedBet, receipt };\n}\n\nexport async function placeCoinTossFreebet(\n  wallet: BetSwirlWallet,\n  coinTossParams: CoinTossFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceFreebetCallbacks,\n): Promise<{ placedFreebet: CoinTossPlacedBet; receipt: TransactionReceipt }> {\n  const { placedFreebet, receipt } = await placeFreebet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.COINTOSS,\n      gameEncodedAbiParametersInput: CoinToss.encodeAbiParametersInput(coinTossParams.face),\n      ...coinTossParams,\n    },\n    options,\n    callbacks,\n  );\n  const coinTossPlacedFreebet = await getCoinTossPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedFreebet.chainId,\n    placedFreebet.token,\n  );\n  if (!coinTossPlacedFreebet) {\n    throw new TransactionError(\n      \"CoinToss PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedFreebet.chainId,\n      },\n    );\n  }\n  return { placedFreebet: coinTossPlacedFreebet, receipt };\n}\n\nexport async function getCoinTossPlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  usedToken?: Token,\n): Promise<CoinTossPlacedBet | null> {\n  const gamePlacedBet = await getPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    CASINO_GAME_TYPE.COINTOSS,\n    chainId,\n    usedToken,\n  );\n  if (!gamePlacedBet) {\n    return null;\n  }\n\n  // Read the CoinToss PlaceBet event from logs\n  const decodedCoinTossPlaceBetEvent = receipt.logs\n    .map((log) => {\n      try {\n        return decodeEventLog({\n          abi: coinTossAbi,\n          data: log.data,\n          topics: log.topics,\n        });\n      } catch {\n        return null;\n      }\n    })\n    .find((log) => log?.eventName === \"PlaceBet\");\n\n  if (!decodedCoinTossPlaceBetEvent) {\n    return null;\n  }\n\n  const { args } = decodedCoinTossPlaceBetEvent;\n  return {\n    ...gamePlacedBet,\n    game: CASINO_GAME_TYPE.COINTOSS,\n    encodedFace: args.face,\n    face: CoinToss.decodeInput(args.face),\n  };\n}\n","import { type TransactionReceipt, decodeEventLog } from \"viem\";\nimport { diceAbi } from \"../../abis/v2/casino/dice\";\nimport { CASINO_GAME_TYPE, type CasinoChainId } from \"../../data/casino\";\nimport { Dice, type DiceEncodedInput, type DiceNumber } from \"../../entities/casino/dice\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport {\n  type CasinoBetParams,\n  type CasinoFreebetParams,\n  type CasinoPlaceBetOptions,\n  type NormalCasinoPlacedBet,\n  type PlaceBetCallbacks,\n  type PlaceFreebetCallbacks,\n  getPlacedBetFromReceipt,\n  placeBet,\n  placeFreebet,\n} from \"./game\";\n\nexport interface DiceBetParams extends CasinoBetParams {\n  cap: DiceNumber;\n}\n\nexport interface DiceFreebetParams extends CasinoFreebetParams {\n  cap: DiceNumber;\n}\n\nexport interface DicePlacedBet extends NormalCasinoPlacedBet {\n  cap: DiceNumber;\n  encodedCap: DiceEncodedInput;\n  game: CASINO_GAME_TYPE.DICE;\n}\n\nexport async function placeDiceBet(\n  wallet: BetSwirlWallet,\n  diceParams: DiceBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: DicePlacedBet; receipt: TransactionReceipt }> {\n  const { placedBet, receipt } = await placeBet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.DICE,\n      gameEncodedInput: Dice.encodeInput(diceParams.cap),\n      ...diceParams,\n    },\n    options,\n    callbacks,\n  );\n  const dicePlacedBet = await getDicePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedBet.chainId,\n    placedBet.token,\n  );\n  if (!dicePlacedBet) {\n    throw new TransactionError(\n      \"Dice PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedBet.chainId,\n      },\n    );\n  }\n\n  return { placedBet: dicePlacedBet, receipt };\n}\n\nexport async function placeDiceFreebet(\n  wallet: BetSwirlWallet,\n  diceParams: DiceFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceFreebetCallbacks,\n): Promise<{ placedFreebet: DicePlacedBet; receipt: TransactionReceipt }> {\n  const { placedFreebet, receipt } = await placeFreebet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.DICE,\n      gameEncodedAbiParametersInput: Dice.encodeAbiParametersInput(diceParams.cap),\n      ...diceParams,\n    },\n    options,\n    callbacks,\n  );\n  const dicePlacedFreebet = await getDicePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedFreebet.chainId,\n    placedFreebet.token,\n  );\n  if (!dicePlacedFreebet) {\n    throw new TransactionError(\n      \"Dice PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedFreebet.chainId,\n      },\n    );\n  }\n  return { placedFreebet: dicePlacedFreebet, receipt };\n}\n\nexport async function getDicePlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  usedToken?: Token,\n): Promise<DicePlacedBet | null> {\n  const gamePlacedBet = await getPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    CASINO_GAME_TYPE.DICE,\n    chainId,\n    usedToken,\n  );\n  if (!gamePlacedBet) {\n    return null;\n  }\n  // Read the Dice PlaceBet event from logs\n  const decodedDicePlaceBetEvent = receipt.logs\n    .map((log) => {\n      try {\n        return decodeEventLog({\n          abi: diceAbi,\n          data: log.data,\n          topics: log.topics,\n        });\n      } catch {\n        return null;\n      }\n    })\n    .find((log) => log?.eventName === \"PlaceBet\");\n\n  if (!decodedDicePlaceBetEvent) {\n    return null;\n  }\n\n  const { args } = decodedDicePlaceBetEvent;\n  return {\n    ...gamePlacedBet,\n    game: CASINO_GAME_TYPE.DICE,\n    encodedCap: args.cap,\n    cap: Dice.decodeInput(args.cap),\n  };\n}\n","import { type TransactionReceipt, decodeEventLog } from \"viem\";\nimport { rouletteAbi } from \"../../abis/v2/casino/roulette\";\nimport { CASINO_GAME_TYPE, type CasinoChainId } from \"../../data/casino\";\nimport {\n  Roulette,\n  type RouletteEncodedInput,\n  type RouletteNumber,\n} from \"../../entities/casino/roulette\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport {\n  type CasinoBetParams,\n  type CasinoFreebetParams,\n  type CasinoPlaceBetOptions,\n  type NormalCasinoPlacedBet,\n  type PlaceBetCallbacks,\n  type PlaceFreebetCallbacks,\n  getPlacedBetFromReceipt,\n  placeBet,\n  placeFreebet,\n} from \"./game\";\n\nexport interface RouletteBetParams extends CasinoBetParams {\n  numbers: RouletteNumber[];\n}\n\nexport interface RouletteFreebetParams extends CasinoFreebetParams {\n  numbers: RouletteNumber[];\n}\n\nexport interface RoulettePlacedBet extends NormalCasinoPlacedBet {\n  numbers: RouletteNumber[];\n  encodedNumbers: RouletteEncodedInput;\n  game: CASINO_GAME_TYPE.ROULETTE;\n}\n\nexport async function placeRouletteBet(\n  wallet: BetSwirlWallet,\n  rouletteParams: RouletteBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: RoulettePlacedBet; receipt: TransactionReceipt }> {\n  const { placedBet, receipt } = await placeBet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.ROULETTE,\n      gameEncodedInput: Roulette.encodeInput(rouletteParams.numbers),\n      ...rouletteParams,\n    },\n    options,\n    callbacks,\n  );\n  const roulettePlacedBet = await getRoulettePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedBet.chainId,\n    placedBet.token,\n  );\n  if (!roulettePlacedBet) {\n    throw new TransactionError(\n      \"Roulette PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedBet.chainId,\n      },\n    );\n  }\n  return { placedBet: roulettePlacedBet, receipt };\n}\n\nexport async function placeRouletteFreebet(\n  wallet: BetSwirlWallet,\n  rouletteParams: RouletteFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceFreebetCallbacks,\n): Promise<{ placedFreebet: RoulettePlacedBet; receipt: TransactionReceipt }> {\n  const { placedFreebet, receipt } = await placeFreebet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.ROULETTE,\n      gameEncodedAbiParametersInput: Roulette.encodeAbiParametersInput(rouletteParams.numbers),\n      ...rouletteParams,\n    },\n    options,\n    callbacks,\n  );\n  const roulettePlacedFreebet = await getRoulettePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedFreebet.chainId,\n    placedFreebet.token,\n  );\n  if (!roulettePlacedFreebet) {\n    throw new TransactionError(\n      \"Roulette PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedFreebet.chainId,\n      },\n    );\n  }\n  return { placedFreebet: roulettePlacedFreebet, receipt };\n}\n\nexport async function getRoulettePlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  usedToken?: Token,\n): Promise<RoulettePlacedBet | null> {\n  const gamePlacedBet = await getPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    CASINO_GAME_TYPE.ROULETTE,\n    chainId,\n    usedToken,\n  );\n  if (!gamePlacedBet) {\n    return null;\n  }\n\n  // Read the Roulette PlaceBet event from logs\n  const decodedRoulettePlaceBetEvent = receipt.logs\n    .map((log) => {\n      try {\n        return decodeEventLog({\n          abi: rouletteAbi,\n          data: log.data,\n          topics: log.topics,\n        });\n      } catch {\n        return null;\n      }\n    })\n    .find((log) => log?.eventName === \"PlaceBet\");\n\n  if (!decodedRoulettePlaceBetEvent) {\n    return null;\n  }\n\n  const { args } = decodedRoulettePlaceBetEvent;\n  return {\n    ...gamePlacedBet,\n    game: CASINO_GAME_TYPE.ROULETTE,\n    encodedNumbers: args.numbers,\n    numbers: Roulette.decodeInput(args.numbers),\n  };\n}\n","import { type TransactionReceipt, decodeEventLog } from \"viem\";\nimport { kenoAbi } from \"../../abis/v2/casino/keno\";\nimport { CASINO_GAME_TYPE, type CasinoChainId } from \"../../data/casino\";\nimport { Keno, type KenoBall, type KenoEncodedInput } from \"../../entities/casino/keno\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport type { KenoConfiguration } from \"../../read\";\nimport {\n  type CasinoBetParams,\n  type CasinoFreebetParams,\n  type CasinoPlaceBetOptions,\n  type NormalCasinoPlacedBet,\n  type PlaceBetCallbacks,\n  type PlaceFreebetCallbacks,\n  getPlacedBetFromReceipt,\n  placeBet,\n  placeFreebet,\n} from \"./game\";\n\nexport interface KenoBetParams extends CasinoBetParams {\n  balls: KenoBall[];\n  kenoConfig: KenoConfiguration;\n}\n\nexport interface KenoFreebetParams extends CasinoFreebetParams {\n  balls: KenoBall[];\n  kenoConfig: KenoConfiguration;\n}\n\nexport interface KenoPlacedBet extends NormalCasinoPlacedBet {\n  balls: KenoBall[];\n  encodedBalls: KenoEncodedInput;\n  game: CASINO_GAME_TYPE.KENO;\n}\n\nexport async function placeKenoBet(\n  wallet: BetSwirlWallet,\n  kenoParams: KenoBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: KenoPlacedBet; receipt: TransactionReceipt }> {\n  const { placedBet, receipt } = await placeBet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.KENO,\n      gameEncodedInput: Keno.encodeInput(kenoParams.balls, kenoParams.kenoConfig),\n      ...kenoParams,\n    },\n    options,\n    callbacks,\n  );\n  const kenoPlacedBet = await getKenoPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedBet.chainId,\n    placedBet.token,\n  );\n  if (!kenoPlacedBet) {\n    throw new TransactionError(\n      \"Keno PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedBet.chainId,\n      },\n    );\n  }\n  return { placedBet: kenoPlacedBet, receipt };\n}\n\nexport async function placeKenoFreebet(\n  wallet: BetSwirlWallet,\n  kenoParams: KenoFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceFreebetCallbacks,\n): Promise<{ placedFreebet: KenoPlacedBet; receipt: TransactionReceipt }> {\n  const { placedFreebet, receipt } = await placeFreebet(\n    wallet,\n    {\n      game: CASINO_GAME_TYPE.KENO,\n      gameEncodedAbiParametersInput: Keno.encodeAbiParametersInput(\n        kenoParams.balls,\n        kenoParams.kenoConfig,\n      ),\n      ...kenoParams,\n    },\n    options,\n    callbacks,\n  );\n  const kenoPlacedFreebet = await getKenoPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedFreebet.chainId,\n    placedFreebet.token,\n  );\n  if (!kenoPlacedFreebet) {\n    throw new TransactionError(\n      \"Keno PlaceBet event not found\",\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedFreebet.chainId,\n      },\n    );\n  }\n  return { placedFreebet: kenoPlacedFreebet, receipt };\n}\n\nexport async function getKenoPlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  usedToken?: Token,\n): Promise<KenoPlacedBet | null> {\n  const gamePlacedBet = await getPlacedBetFromReceipt(\n    wallet,\n    receipt,\n    CASINO_GAME_TYPE.KENO,\n    chainId,\n    usedToken,\n  );\n  if (!gamePlacedBet) {\n    return null;\n  }\n\n  // Read the Keno PlaceBet event from logs\n  const decodedKenoPlaceBetEvent = receipt.logs\n    .map((log) => {\n      try {\n        return decodeEventLog({\n          abi: kenoAbi,\n          data: log.data,\n          topics: log.topics,\n        });\n      } catch {\n        return null;\n      }\n    })\n    .find((log) => log?.eventName === \"PlaceBet\");\n\n  if (!decodedKenoPlaceBetEvent) {\n    return null;\n  }\n\n  const { args } = decodedKenoPlaceBetEvent;\n  return {\n    ...gamePlacedBet,\n    game: CASINO_GAME_TYPE.KENO,\n    encodedBalls: args.numbers,\n    balls: Keno.decodeInput(args.numbers),\n  };\n}\n","import { WeightedGame, type WeightedGameChoiceInput } from \"./weightedGame\";\n\nexport interface WheelChoiceInput extends WeightedGameChoiceInput {}\n\nexport class Wheel extends WeightedGame {\n  // Wheel utilities\n}\n","import { getNetMultiplier } from \"../..\";\nimport type { WeightedGameConfiguration } from \"../..\";\nimport { generateRandomHexColor } from \"../../utils\";\nimport { WeightedGame, type WeightedGameChoiceInput } from \"./weightedGame\";\n\nexport interface PlinkoChoiceInput extends WeightedGameChoiceInput {}\n\nexport class Plinko extends WeightedGame {\n  // Plinko utilities\n\n  /**\n   * Generates a bell-shaped sorted list of Plinko game segments from the provided configuration.\n   *\n   * This function takes all entries from the weighted game configuration without deduplication,\n   * computes the effective multiplier (after applying the house edge), and sorts the segments\n   * such that the entry with the highest weight appears in the center. Lighter weights are\n   * symmetrically positioned toward the edges, creating a \"bell curve\" effect in the layout.\n   *\n   * @param weightedGameConfig - The full game configuration including multipliers, weights, and optional colors.\n   * @param houseEdge - The house edge to apply to each raw multiplier.\n   *\n   * @returns An array of game segments sorted in a bell-shaped order, where each segment contains:\n   *   - multiplier: the raw multiplier (before house edge, BP)\n   *   - formattedMultiplier: the raw multiplier formatted (rounded to 3 decimals)\n   *   - netMultiplier: the net multiplier (after house edge, BP)\n   *   - formattedNetMultiplier: the net multiplier formatted (rounded to 3 decimals)\n   *   - chanceToWin: the probability of landing on this multiplier (in %)\n   *   - color: the color associated with this segment\n   */\n  static getSortedPlinkoOutputs(\n    weightedGameConfig: WeightedGameConfiguration,\n    houseEdge: number,\n  ): {\n    multiplier: number; // BP\n    formattedMultiplier: number;\n    netMultiplier: number; // BP\n    formattedNetMultiplier: number;\n    chanceToWin: number;\n    color: string;\n  }[] {\n    const totalWeight = weightedGameConfig.weights.reduce((acc, curr) => acc + curr, 0n);\n\n    const entries = weightedGameConfig.multipliers.map((_, index) => {\n      const multiplier = WeightedGame.getMultiplier(weightedGameConfig, index);\n\n      const weight = weightedGameConfig.weights[index]!;\n      const color = weightedGameConfig.colors?.[index] || generateRandomHexColor();\n\n      return {\n        multiplier: multiplier,\n        formattedMultiplier: WeightedGame._formatMultiplier(multiplier),\n        netMultiplier: getNetMultiplier(multiplier, houseEdge),\n        formattedNetMultiplier: WeightedGame._formatMultiplier(\n          getNetMultiplier(multiplier, houseEdge),\n        ),\n        chanceToWin: Number(((Number(weight) / Number(totalWeight)) * 100).toFixed(2)),\n        color,\n        weight,\n      };\n    });\n\n    // Sort by weight DESC\n    const sortedByWeight = entries.sort((a, b) => Number(b.weight - a.weight));\n\n    // Bell shape arrangement (centre = heaviest weight)\n    const bellShapedOrder: typeof entries = [];\n    sortedByWeight.forEach((item, index) => {\n      if (index % 2 === 0) {\n        bellShapedOrder.push(item); // right\n      } else {\n        bellShapedOrder.unshift(item); // left\n      }\n    });\n\n    return bellShapedOrder;\n  }\n}\n","import { type TransactionReceipt, decodeEventLog } from \"viem\";\nimport { weightedGameAbi } from \"../../abis/v2/casino/weightedGame\";\nimport {\n  type CasinoChainId,\n  type WEIGHTED_CASINO_GAME_TYPE,\n  labelCasinoGameByType,\n} from \"../../data/casino\";\nimport {\n  WeightedGame,\n  type WeightedGameConfigId,\n  type WeightedGameEncodedInput,\n} from \"../../entities\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport type { WeightedGameConfiguration } from \"../../read\";\nimport {\n  type CasinoBetParams,\n  type CasinoFreebetParams,\n  type CasinoPlaceBetOptions,\n  type PlaceBetCallbacks,\n  type PlaceFreebetCallbacks,\n  type WeightedCasinoPlacedBet,\n  getPlacedBetFromReceipt,\n  placeBet,\n  placeFreebet,\n} from \"./game\";\n\nexport interface WeightedGameBetParams extends CasinoBetParams {\n  weightedGameConfig: WeightedGameConfiguration;\n  game: WEIGHTED_CASINO_GAME_TYPE;\n}\n\nexport interface WeightedGameFreebetParams extends CasinoFreebetParams {\n  weightedGameConfig: WeightedGameConfiguration;\n  game: WEIGHTED_CASINO_GAME_TYPE;\n}\n\nexport interface WeightedGamePlacedBet extends WeightedCasinoPlacedBet {\n  configId: WeightedGameConfigId;\n  configLabel: string;\n  encodedConfigId: WeightedGameEncodedInput;\n}\n\nexport async function placeWeightedGameBet(\n  wallet: BetSwirlWallet,\n  weightedGameParams: WeightedGameBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: WeightedGamePlacedBet; receipt: TransactionReceipt }> {\n  const { placedBet, receipt } = await placeBet(\n    wallet,\n    {\n      gameEncodedInput: WeightedGame.encodeInput(weightedGameParams.weightedGameConfig.configId),\n      ...weightedGameParams,\n    },\n    options,\n    callbacks,\n  );\n  const weightedGamePlacedBet = await getWeightedGamePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedBet.chainId,\n    weightedGameParams.game,\n    placedBet.token,\n  );\n  if (!weightedGamePlacedBet) {\n    throw new TransactionError(\n      `${labelCasinoGameByType[weightedGameParams.game]} PlaceBet event not found`,\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedBet.chainId,\n      },\n    );\n  }\n  return { placedBet: weightedGamePlacedBet, receipt };\n}\n\nexport async function placeWeightedGameFreebet(\n  wallet: BetSwirlWallet,\n  weightedGameParams: WeightedGameFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceFreebetCallbacks,\n): Promise<{ placedFreebet: WeightedGamePlacedBet; receipt: TransactionReceipt }> {\n  const { placedFreebet, receipt } = await placeFreebet(\n    wallet,\n    {\n      gameEncodedAbiParametersInput: WeightedGame.encodeAbiParametersInput(\n        weightedGameParams.weightedGameConfig.configId,\n      ),\n      ...weightedGameParams,\n    },\n    options,\n    callbacks,\n  );\n  const weightedGamePlacedFreebet = await getWeightedGamePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    placedFreebet.chainId,\n    weightedGameParams.game,\n    placedFreebet.token,\n  );\n  if (!weightedGamePlacedFreebet) {\n    throw new TransactionError(\n      `${labelCasinoGameByType[weightedGameParams.game]} PlaceBet event not found`,\n      ERROR_CODES.GAME.PLACE_BET_EVENT_NOT_FOUND,\n      {\n        hash: receipt.transactionHash,\n        chainId: placedFreebet.chainId,\n      },\n    );\n  }\n  return { placedFreebet: weightedGamePlacedFreebet, receipt };\n}\n\nexport async function getWeightedGamePlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  game: WEIGHTED_CASINO_GAME_TYPE,\n  usedToken?: Token,\n  customWeightedGameConfigs?: WeightedGameConfiguration[],\n): Promise<WeightedGamePlacedBet | null> {\n  const gamePlacedBet = await getPlacedBetFromReceipt(wallet, receipt, game, chainId, usedToken);\n  if (!gamePlacedBet) {\n    return null;\n  }\n\n  // Read the Weighted game PlaceBet event from logs\n  const decodedWeightedGamePlaceBetEvent = receipt.logs\n    .map((log) => {\n      try {\n        return decodeEventLog({\n          abi: weightedGameAbi,\n          data: log.data,\n          topics: log.topics,\n        });\n      } catch {\n        return null;\n      }\n    })\n    .find((log) => log?.eventName === \"PlaceBet\");\n\n  if (!decodedWeightedGamePlaceBetEvent) {\n    return null;\n  }\n\n  const { args } = decodedWeightedGamePlaceBetEvent;\n  return {\n    ...gamePlacedBet,\n    game,\n    encodedConfigId: args.configId,\n    configId: WeightedGame.decodeInput(args.configId),\n    configLabel: WeightedGame.getWeightedGameConfigLabel(\n      WeightedGame.decodeInput(args.configId),\n      chainId,\n      customWeightedGameConfigs,\n    ),\n  };\n}\n","import { type TransactionReceipt } from \"viem\";\nimport { CASINO_GAME_TYPE, type CasinoChainId } from \"../../data/casino\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport type { WeightedGameConfiguration } from \"../../read\";\nimport { type CasinoPlaceBetOptions, type PlaceBetCallbacks } from \"./game\";\nimport {\n  type WeightedGameBetParams,\n  type WeightedGameFreebetParams,\n  type WeightedGamePlacedBet,\n  getWeightedGamePlacedBetFromReceipt,\n  placeWeightedGameBet,\n  placeWeightedGameFreebet,\n} from \"./weightedGame\";\n\nexport interface WheelBetParams extends Omit<WeightedGameBetParams, \"game\"> {}\n\nexport interface WheelFreebetParams extends Omit<WeightedGameFreebetParams, \"game\"> {}\n\nexport interface WheelPlacedBet extends WeightedGamePlacedBet {}\n\nexport async function placeWheelBet(\n  wallet: BetSwirlWallet,\n  wheelParams: WheelBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: WheelPlacedBet; receipt: TransactionReceipt }> {\n  return await placeWeightedGameBet(\n    wallet,\n    {\n      ...wheelParams,\n      game: CASINO_GAME_TYPE.WHEEL,\n    },\n    options,\n    callbacks,\n  );\n}\n\nexport async function placeWheelFreebet(\n  wallet: BetSwirlWallet,\n  wheelParams: WheelFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedFreebet: WheelPlacedBet; receipt: TransactionReceipt }> {\n  return await placeWeightedGameFreebet(\n    wallet,\n    {\n      ...wheelParams,\n      game: CASINO_GAME_TYPE.WHEEL,\n    },\n    options,\n    callbacks,\n  );\n}\n\nexport async function getWheelPlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  usedToken?: Token,\n  customWheelConfigs?: WeightedGameConfiguration[],\n): Promise<WheelPlacedBet | null> {\n  return await getWeightedGamePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    chainId,\n    CASINO_GAME_TYPE.WHEEL,\n    usedToken,\n    customWheelConfigs,\n  );\n}\n","import { type TransactionReceipt } from \"viem\";\nimport { CASINO_GAME_TYPE, type CasinoChainId } from \"../../data/casino\";\nimport type { Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport type { WeightedGameConfiguration } from \"../../read\";\nimport { type CasinoPlaceBetOptions, type PlaceBetCallbacks } from \"./game\";\nimport {\n  type WeightedGameBetParams,\n  type WeightedGameFreebetParams,\n  type WeightedGamePlacedBet,\n  getWeightedGamePlacedBetFromReceipt,\n  placeWeightedGameBet,\n  placeWeightedGameFreebet,\n} from \"./weightedGame\";\n\nexport interface PlinkoBetParams extends Omit<WeightedGameBetParams, \"game\"> {}\n\nexport interface PlinkoFreebetParams extends Omit<WeightedGameFreebetParams, \"game\"> {}\n\nexport interface PlinkoPlacedBet extends WeightedGamePlacedBet {}\n\nexport async function placePlinkoBet(\n  wallet: BetSwirlWallet,\n  plinkoParams: PlinkoBetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedBet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n  return await placeWeightedGameBet(\n    wallet,\n    {\n      ...plinkoParams,\n      game: CASINO_GAME_TYPE.PLINKO,\n    },\n    options,\n    callbacks,\n  );\n}\n\nexport async function placePlinkoFreebet(\n  wallet: BetSwirlWallet,\n  plinkoParams: PlinkoFreebetParams,\n  options?: CasinoPlaceBetOptions,\n  callbacks?: PlaceBetCallbacks,\n): Promise<{ placedFreebet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n  return await placeWeightedGameFreebet(\n    wallet,\n    {\n      ...plinkoParams,\n      game: CASINO_GAME_TYPE.PLINKO,\n    },\n    options,\n    callbacks,\n  );\n}\n\nexport async function getPlinkoPlacedBetFromReceipt(\n  wallet: BetSwirlWallet,\n  receipt: TransactionReceipt,\n  chainId: CasinoChainId,\n  usedToken?: Token,\n  customPlinkoConfigs?: WeightedGameConfiguration[],\n): Promise<PlinkoPlacedBet | null> {\n  return await getWeightedGamePlacedBetFromReceipt(\n    wallet,\n    receipt,\n    chainId,\n    CASINO_GAME_TYPE.PLINKO,\n    usedToken,\n    customPlinkoConfigs,\n  );\n}\n","export const leaderboardAbi = [\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"chainlinkCoordinatorAddress\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"maxRandomNFTs\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"minExpirationTime_\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"fee_\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"nonpayable\",\n    type: \"constructor\",\n  },\n  {\n    inputs: [],\n    name: \"AccessDenied\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"AlreadyFinalized\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"EmptyShares\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"EndDateTooSmall\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ExpirationTimeTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ExpirationTimeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"Expired\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidAddress\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidChainlinkConfig\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidPosition\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidValueSent\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"InvalidWinner\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"MinExpirationTimeTooLow\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotEnded\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotExpired\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NotFinalized\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"NothingToClaim\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"want\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyCoordinatorCanFulfill\",\n    type: \"error\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"have\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"coordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"OnlyOwnerOrCoordinator\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"RandomNftLengthExceedsLimit\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"SharesCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"TaxedTokenNotTakenInCharge\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"WinnerCountTooHigh\",\n    type: \"error\",\n  },\n  {\n    inputs: [],\n    name: \"ZeroAddress\",\n    type: \"error\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"Canceled\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"callbackGasExtraNFT\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"ChainlinkConfigSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"leaderboardId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"player\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Claimed\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"CoordinatorSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"previousFeeAmount\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"feeAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"FeeSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"fees\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"FeesWithdrawn\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        indexed: false,\n        internalType: \"address[]\",\n        name: \"winners\",\n        type: \"address[]\",\n      },\n    ],\n    name: \"Finalized\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"endsAt\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"expirationTime\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"totalShares\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256[]\",\n        name: \"shares\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"LeaderboardCreated\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousMinExpirationTime\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"minExpirationTime\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"MinExpirationTimeSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"leaderboardId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"position\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"NFTClaimed\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"leaderboardId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"player\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"NFTRewarded\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"leaderboardId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint16\",\n        name: \"position\",\n        type: \"uint16\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"NFTUnclaimed\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferRequested\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"from\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"previousMaxRandomNFTs\",\n        type: \"uint32\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint32\",\n        name: \"maxRandomNFTs\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"RandomNFTsLimitSet\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"previousAdminRole\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"newAdminRole\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"RoleAdminChanged\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"sender\",\n        type: \"address\",\n      },\n    ],\n    name: \"RoleGranted\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"sender\",\n        type: \"address\",\n      },\n    ],\n    name: \"RoleRevoked\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"uint256\",\n        name: \"leaderboardId\",\n        type: \"uint256\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"receiver\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Unclaimed\",\n    type: \"event\",\n  },\n  {\n    inputs: [],\n    name: \"DEFAULT_ADMIN_ROLE\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"LEADERBOARD_MANAGER\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"acceptOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"accumulatedFees\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"cancelLeaderboard\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"claimNFT\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"claimNFTs\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address payable\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"claimTokens\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"claimable\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"endsAt\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"expirationTime\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"shares_\",\n        type: \"uint256[]\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"collection\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint16\",\n            name: \"position\",\n            type: \"uint16\",\n          },\n          {\n            internalType: \"uint256\",\n            name: \"id\",\n            type: \"uint256\",\n          },\n        ],\n        internalType: \"struct ILeaderboardHubCommon.NFTReward[]\",\n        name: \"staticNfts_\",\n        type: \"tuple[]\",\n      },\n      {\n        components: [\n          {\n            internalType: \"address\",\n            name: \"collection\",\n            type: \"address\",\n          },\n          {\n            internalType: \"uint256[]\",\n            name: \"ids\",\n            type: \"uint256[]\",\n          },\n        ],\n        internalType: \"struct ILeaderboardHubAffiliate.RandomNFTRewards[]\",\n        name: \"randomNfts_\",\n        type: \"tuple[]\",\n      },\n    ],\n    name: \"createLeaderboard\",\n    outputs: [],\n    stateMutability: \"payable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"fee\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address[]\",\n        name: \"winners_\",\n        type: \"address[]\",\n      },\n    ],\n    name: \"finalizeLeaderboard\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"getRoleAdmin\",\n    outputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"\",\n        type: \"bytes32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"index\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"getRoleMember\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"getRoleMemberCount\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"grantRole\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"hasRole\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"leaderboards\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"affiliate\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"token\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"endsAt\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"expirationTime\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint40\",\n        name: \"expiresAt\",\n        type: \"uint40\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"remaining\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"totalShares\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"leaderboardsCount\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"minExpirationTime\",\n    outputs: [\n      {\n        internalType: \"uint32\",\n        name: \"\",\n        type: \"uint32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"nftAvailable\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"position\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"pullUnclaimedNFT\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"winner\",\n        type: \"address\",\n      },\n      {\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"pullUnclaimedNFTFromWinner\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"pullUnclaimedNFTs\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"pullUnclaimedTokens\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"randomNFTs\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"position\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"randomNFTsLimit\",\n    outputs: [\n      {\n        internalType: \"uint32\",\n        name: \"\",\n        type: \"uint32\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"requestId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"uint256[]\",\n        name: \"randomWords\",\n        type: \"uint256[]\",\n      },\n    ],\n    name: \"rawFulfillRandomWords\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"renounceRole\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes32\",\n        name: \"role\",\n        type: \"bytes32\",\n      },\n      {\n        internalType: \"address\",\n        name: \"account\",\n        type: \"address\",\n      },\n    ],\n    name: \"revokeRole\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"s_vrfCoordinator\",\n    outputs: [\n      {\n        internalType: \"contract IVRFCoordinatorV2Plus\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bool\",\n        name: \"nativePayment\",\n        type: \"bool\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"requestConfirmations\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasBase\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint32\",\n        name: \"callbackGasExtraNFT\",\n        type: \"uint32\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"vrfSubId\",\n        type: \"uint256\",\n      },\n      {\n        internalType: \"bytes32\",\n        name: \"keyHash\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"setChainlinkConfig\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"_vrfCoordinator\",\n        type: \"address\",\n      },\n    ],\n    name: \"setCoordinator\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint256\",\n        name: \"feeAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"setFee\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint32\",\n        name: \"minExpirationTime_\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setMinExpirationTime\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint32\",\n        name: \"maxRandomNFTs\",\n        type: \"uint32\",\n      },\n    ],\n    name: \"setRandomNFTsLimit\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"shares\",\n    outputs: [\n      {\n        internalType: \"uint256[]\",\n        name: \"\",\n        type: \"uint256[]\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"staticNFTs\",\n    outputs: [\n      {\n        internalType: \"address\",\n        name: \"collection\",\n        type: \"address\",\n      },\n      {\n        internalType: \"uint16\",\n        name: \"position\",\n        type: \"uint16\",\n      },\n      {\n        internalType: \"uint256\",\n        name: \"id\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"bytes4\",\n        name: \"interfaceId\",\n        type: \"bytes4\",\n      },\n    ],\n    name: \"supportsInterface\",\n    outputs: [\n      {\n        internalType: \"bool\",\n        name: \"\",\n        type: \"bool\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"tokensClaimed\",\n    outputs: [\n      {\n        internalType: \"uint256\",\n        name: \"\",\n        type: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"\",\n        type: \"uint64\",\n      },\n      {\n        internalType: \"address\",\n        name: \"\",\n        type: \"address\",\n      },\n    ],\n    name: \"winnerPositions\",\n    outputs: [\n      {\n        internalType: \"uint16\",\n        name: \"\",\n        type: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"uint64\",\n        name: \"leaderboardId\",\n        type: \"uint64\",\n      },\n    ],\n    name: \"winners\",\n    outputs: [\n      {\n        internalType: \"address[]\",\n        name: \"\",\n        type: \"address[]\",\n      },\n    ],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address\",\n        name: \"to\",\n        type: \"address\",\n      },\n    ],\n    name: \"withdrawFees\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n] as const;\n","import { casinoChainById, maxGameBetCountByType } from \"../../data/casino\";\n\nimport { type Hex, encodeFunctionData } from \"viem\";\nimport { bankAbi } from \"../../abis/v2/casino/bank\";\nimport type { CASINO_GAME_TYPE, CasinoChainId } from \"../../data/casino\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { BetRequirements, BetSwirlFunctionData, CasinoToken, Token } from \"../../interfaces\";\n\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { getCasinoChainId } from \"../../utils/chains\";\nimport { rawTokenToToken } from \"../../utils/tokens\";\n\nexport type RawCasinoToken = {\n  decimals: number;\n  tokenAddress: `0x${string}`;\n  name: string;\n  symbol: string;\n  token: {\n    allowed: boolean;\n    paused: boolean;\n    balanceRisk: number;\n    bankrollProvider: `0x${string}`;\n    pendingBankrollProvider: `0x${string}`;\n    houseEdgeSplitAndAllocation: {\n      bank: number;\n      dividend: number;\n      affiliate: number;\n      treasury: number;\n      team: number;\n      dividendAmount: bigint;\n      affiliateAmount: bigint;\n      treasuryAmount: bigint;\n      teamAmount: bigint;\n    };\n  };\n};\n\nexport function parseRawCasinoToken(\n  rawToken: RawCasinoToken,\n  casinoChainId: CasinoChainId,\n): CasinoToken {\n  return {\n    ...rawTokenToToken(rawToken, casinoChainId),\n    paused: !rawToken.token.allowed || rawToken.token.paused,\n    balanceRisk: rawToken.token.balanceRisk,\n    balanceRiskPercent: rawToken.token.balanceRisk / 100,\n    bankrollProvider: rawToken.token.bankrollProvider,\n    chainId: casinoChainId,\n    houseEdgeSplit: {\n      bank: rawToken.token.houseEdgeSplitAndAllocation.bank,\n      bankPercent: rawToken.token.houseEdgeSplitAndAllocation.bank / 100,\n      dividend: rawToken.token.houseEdgeSplitAndAllocation.dividend,\n      dividendPercent: rawToken.token.houseEdgeSplitAndAllocation.dividend / 100,\n      affiliate: rawToken.token.houseEdgeSplitAndAllocation.affiliate,\n      affiliatePercent: rawToken.token.houseEdgeSplitAndAllocation.affiliate / 100,\n      treasury: rawToken.token.houseEdgeSplitAndAllocation.treasury,\n      treasuryPercent: rawToken.token.houseEdgeSplitAndAllocation.treasury / 100,\n      team: rawToken.token.houseEdgeSplitAndAllocation.team,\n      teamPercent: rawToken.token.houseEdgeSplitAndAllocation.team / 100,\n    },\n  };\n}\n\nexport async function getCasinoTokens(\n  wallet: BetSwirlWallet,\n  onlyActive = false,\n): Promise<CasinoToken[]> {\n  const casinoChainId = getCasinoChainId(wallet);\n  try {\n    const functionData = getCasinoTokensFunctionData(casinoChainId);\n    const rawTokens = await wallet.readContract<typeof functionData, RawCasinoToken[]>(\n      functionData,\n    );\n\n    return rawTokens\n      .map((rawToken) => parseRawCasinoToken(rawToken, casinoChainId))\n      .filter((token) => !onlyActive || !token.paused);\n  } catch (error) {\n    throw new TransactionError(\"Error getting tokens\", ERROR_CODES.BANK.GET_TOKENS_ERROR, {\n      chainId: casinoChainId,\n      cause: error,\n    });\n  }\n}\n\nexport function getCasinoTokensFunctionData(\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof bankAbi, \"getTokens\", readonly []> {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const abi = bankAbi;\n  const functionName = \"getTokens\" as const;\n  const args = [] as const;\n  return {\n    data: { to: casinoChain.contracts.bank, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n\n/**\n * Raw bet requirements data returned by the smart contract\n * [0] - isAllowed: Indicates if the token is allowed for betting\n * [1] - maxBetAmount: Maximum amount allowed per bet\n * [2] - maxBetCount: Maximum number of simultaneous bets allowed\n */\nexport type RawBetRequirements = [boolean, bigint, bigint];\n\nexport function parseRawBetRequirements(\n  rawBetRequirements: RawBetRequirements,\n  token: Token,\n  multiplier: number,\n  game: CASINO_GAME_TYPE,\n  casinoChainId: CasinoChainId,\n): BetRequirements {\n  return {\n    token,\n    multiplier,\n    chainId: casinoChainId,\n    maxBetAmount: rawBetRequirements[1],\n    maxBetCount: Math.min(Number(rawBetRequirements[2]), maxGameBetCountByType[game]),\n    isAllowed: rawBetRequirements[0],\n  };\n}\n\nexport async function getBetRequirements(\n  wallet: BetSwirlWallet,\n  token: Token,\n  multiplier: number | number[], // gross BP_VALUE\n  game: CASINO_GAME_TYPE,\n): Promise<BetRequirements> {\n  const casinoChainId = getCasinoChainId(wallet);\n\n  const biggestMultiplier = Math.max(...(Array.isArray(multiplier) ? multiplier : [multiplier]));\n  try {\n    const functionData = getBetRequirementsFunctionData(\n      token.address,\n      biggestMultiplier,\n      casinoChainId,\n    );\n    const rawBetRequirements = await wallet.readContract<typeof functionData, RawBetRequirements>(\n      functionData,\n    );\n\n    return parseRawBetRequirements(\n      rawBetRequirements,\n      token,\n      biggestMultiplier,\n      game,\n      casinoChainId,\n    );\n  } catch (error) {\n    throw new TransactionError(\n      \"Error getting bet requirements\",\n      ERROR_CODES.BANK.GET_BET_REQUIREMENTS_ERROR,\n      {\n        chainId: casinoChainId,\n        cause: error,\n      },\n    );\n  }\n}\n// multiplier = gross BP_VALUE\nexport function getBetRequirementsFunctionData(\n  tokenAddress: Hex,\n  multiplier: number,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof bankAbi, \"getBetRequirements\", readonly [Hex, bigint]> {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const abi = bankAbi;\n  const functionName = \"getBetRequirements\" as const;\n  const args = [tokenAddress, BigInt(multiplier)] as const;\n  return {\n    data: { to: casinoChain.contracts.bank, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import {\n  type Address,\n  type Hash,\n  type Hex,\n  type TransactionReceipt,\n  encodeFunctionData,\n  formatUnits,\n} from \"viem\";\n\nimport { getLogs } from \"viem/actions\";\nimport { casinoGameAbi } from \"../../abis/v2/casino/game\";\nimport type {\n  CasinoPlacedBet,\n  NormalCasinoPlacedBet,\n  WeightedCasinoPlacedBet,\n} from \"../../actions/casino/game\";\nimport {\n  CASINO_GAME_ROLL_ABI,\n  CASINO_GAME_TYPE,\n  type CasinoChainId,\n  type NORMAL_CASINO_GAME_TYPE,\n  type WEIGHTED_CASINO_GAME_TYPE,\n  casinoChainById,\n  labelCasinoGameByType,\n} from \"../../data/casino\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { ChainError } from \"../../errors/types\";\nimport { TransactionError } from \"../../errors/types\";\nimport type {\n  BetSwirlEventData,\n  BetSwirlFunctionData,\n  CasinoGame,\n  CasinoGameToken,\n  CasinoToken,\n  GameAbi,\n  Token,\n} from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport {\n  chainNativeCurrencyToToken,\n  decodeNormalCasinoRolled,\n  decodeWeightedCasinoRolled,\n} from \"../../utils\";\nimport { getCasinoChainId } from \"../../utils/chains\";\nimport { FORMAT_TYPE, formatRawAmount } from \"../../utils/format\";\nimport { getTransactionReceiptWithRetry } from \"../../utils/wallet\";\nimport type { WeightedGameConfiguration } from \"./weightedGame\";\n\nexport type CasinoRolledBet = CasinoPlacedBet & {\n  isWin: boolean;\n  isLost: boolean;\n  isStopLossTriggered: boolean;\n  isStopGainTriggered: boolean;\n  rollBetCount: number;\n  rollTotalBetAmount: bigint;\n  formattedRollTotalBetAmount: string;\n  payout: bigint;\n  formattedPayout: string;\n  benefit: bigint;\n  formattedBenefit: string;\n  formattedPayoutMultiplier: string;\n  rollTxnHash: Hash;\n  encodedRolled: any[];\n  decodedRolled: any[];\n  nativeCurrency: Token;\n  // Placed bet formatted properties\n  formattedBetAmount: string;\n  formattedTotalBetAmount: string;\n  formattedStopLoss: string;\n  formattedStopGain: string;\n  formattedChargedVRFFees: string;\n};\n\nexport interface CasinoWaitRollOptions {\n  pollingInterval?: number;\n  timeout?: number;\n  formatType?: FORMAT_TYPE;\n}\n\nexport const defaultCasinoWaiRollOptions = {\n  timeout: 120000, // 2 mins\n  //pollingInterval: => data in casino.ts\n};\n\ninterface RollEventArgs {\n  id?: bigint;\n  payout?: bigint;\n  totalBetAmount?: bigint;\n  rolled?: any[];\n}\n\ninterface RollEvent {\n  args: RollEventArgs;\n  transactionHash: Hash;\n}\n\n// Normal game\nexport function formatCasinoRolledBet(\n  placedBet: NormalCasinoPlacedBet,\n  rollEvent: RollEvent,\n  formatType?: FORMAT_TYPE,\n): CasinoRolledBet;\n\n// Weighted game\nexport function formatCasinoRolledBet(\n  placedBet: WeightedCasinoPlacedBet,\n  rollEvent: RollEvent,\n  formatType: FORMAT_TYPE | undefined,\n  weightedGameConfiguration: WeightedGameConfiguration,\n  houseEdge: number,\n): CasinoRolledBet;\n\nexport function formatCasinoRolledBet(\n  placedBet: CasinoPlacedBet,\n  rollEvent: RollEvent,\n  formatType: FORMAT_TYPE = FORMAT_TYPE.STANDARD,\n  weightedGameConfiguration?: WeightedGameConfiguration,\n  houseEdge?: number,\n): CasinoRolledBet {\n  const args = rollEvent.args;\n  const isWin = args.payout! >= args.totalBetAmount!;\n  const isStopTriggered = args.rolled!.length !== placedBet.betCount;\n  const casinoChain = casinoChainById[placedBet.chainId];\n  const nativeCurrency = chainNativeCurrencyToToken(casinoChain.viemChain.nativeCurrency);\n  const tokenDecimals = placedBet.token.decimals;\n\n  return {\n    ...placedBet,\n    isWin,\n    isLost: !isWin,\n    isStopGainTriggered: isStopTriggered && isWin,\n    isStopLossTriggered: isStopTriggered && !isWin,\n    rollBetCount: args.rolled!.length,\n    rollTotalBetAmount: args.totalBetAmount!,\n    formattedRollTotalBetAmount: formatRawAmount(\n      args.totalBetAmount!,\n      placedBet.token.decimals,\n      formatType,\n    ),\n    payout: args.payout!,\n    formattedPayout: formatRawAmount(args.payout!, placedBet.token.decimals, formatType),\n    benefit: args.payout! - args.totalBetAmount!,\n    formattedBenefit: formatRawAmount(\n      args.payout! - args.totalBetAmount!,\n      placedBet.token.decimals,\n      formatType,\n    ),\n    formattedPayoutMultiplier: (\n      Number(formatUnits(BigInt(args.payout!), tokenDecimals)) /\n      Number(formatUnits(BigInt(args.totalBetAmount!), tokenDecimals))\n    ).toFixed(3),\n    rollTxnHash: rollEvent.transactionHash,\n    encodedRolled: args.rolled! as any[],\n    decodedRolled: args.rolled!.map((r) =>\n      weightedGameConfiguration\n        ? decodeWeightedCasinoRolled(r, weightedGameConfiguration, houseEdge)\n        : decodeNormalCasinoRolled(r, placedBet.game as NORMAL_CASINO_GAME_TYPE),\n    ),\n    nativeCurrency,\n    // Placed bet formatted properties\n    formattedBetAmount: formatRawAmount(placedBet.betAmount, tokenDecimals, formatType),\n    formattedTotalBetAmount: formatRawAmount(placedBet.totalBetAmount, tokenDecimals, formatType),\n    formattedStopLoss: formatRawAmount(placedBet.stopLoss, tokenDecimals, formatType),\n    formattedStopGain: formatRawAmount(placedBet.stopGain, tokenDecimals, formatType),\n    formattedChargedVRFFees: formatRawAmount(\n      placedBet.chargedVRFCost,\n      nativeCurrency.decimals,\n      formatType,\n    ),\n  };\n}\n\n// Only need weightedGameConfiguration if game from placeBet is a WEIGHTED_CASINO_GAME_TYPE\nexport async function waitRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: NormalCasinoPlacedBet,\n  options?: CasinoWaitRollOptions,\n): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\nexport async function waitRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: WeightedCasinoPlacedBet,\n  options: CasinoWaitRollOptions | undefined,\n  weightedGameConfiguration: WeightedGameConfiguration,\n  houseEdge: number,\n): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\nexport async function waitRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: CasinoPlacedBet,\n  options?: CasinoWaitRollOptions,\n  weightedGameConfiguration?: WeightedGameConfiguration,\n  houseEdge?: number,\n): Promise<{\n  rolledBet: CasinoRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const casinoChain = casinoChainById[placedBet.chainId];\n  const game = casinoChain.contracts.games[placedBet.game];\n  if (!game) {\n    throw new ChainError(\n      `Game ${placedBet.game} not found for chain ${placedBet.chainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n      {\n        chainId: placedBet.chainId,\n        game: placedBet.game,\n      },\n    );\n  }\n\n  return new Promise((resolve, reject) => {\n    let isResolved = false;\n\n    const onRollEvent = async (log: RollEvent) => {\n      if (isResolved) return;\n      isResolved = true;\n      unwatch?.();\n\n      try {\n        const receipt = await getTransactionReceiptWithRetry(wallet, log.transactionHash);\n\n        resolve({\n          rolledBet: weightedGameConfiguration\n            ? formatCasinoRolledBet(\n                placedBet as { game: WEIGHTED_CASINO_GAME_TYPE } & CasinoPlacedBet,\n                log,\n                options?.formatType,\n                weightedGameConfiguration,\n                houseEdge!,\n              )\n            : formatCasinoRolledBet(\n                placedBet as { game: NORMAL_CASINO_GAME_TYPE } & CasinoPlacedBet,\n                log,\n                options?.formatType,\n              ),\n          receipt,\n        });\n      } catch (error) {\n        reject(\n          new TransactionError(\"Error processing Roll event\", ERROR_CODES.GAME.ROLL_EVENT_ERROR, {\n            betId: placedBet.id,\n            chainId: placedBet.chainId,\n            cause: error,\n          }),\n        );\n      }\n    };\n    // Subcribe to Roll event\n    const eventData = getRollEventData(placedBet.game, placedBet.chainId, placedBet.id);\n    const unwatch = wallet.watchContractEvent({\n      data: {\n        to: eventData.data.to,\n        abi: eventData.data.abi,\n        eventName: eventData.data.eventName,\n        args: eventData.data.args,\n        pollingInterval: options?.pollingInterval || casinoChain.options.pollingInterval,\n      },\n      callbacks: {\n        onLogs: async (logs) => {\n          const matchingLog = (logs as unknown as { args: { id: bigint } }[]).find(\n            (log) => log.args.id === placedBet.id,\n          );\n          if (matchingLog) {\n            await onRollEvent(matchingLog as unknown as RollEvent);\n          }\n        },\n        onError: (_error) => {\n          // Nothing to do, the watching continues...\n          /*reject(\n            new TransactionError(\n              \"Error watching Roll event\",\n              ERROR_CODES.GAME.ROLL_EVENT_ERROR,\n              {\n                betId: placedBet.id,\n                chainId: placedBet.chainId,\n                cause: error,\n              }\n            )\n          ); */\n        },\n      },\n    });\n\n    const publicClient = wallet.getPublicClient(placedBet.chainId);\n\n    // Check in the past blocks if the bet has been rolled\n    getLogs(publicClient, {\n      address: eventData.data.to,\n      event: eventData.event.abiEvent,\n      args: eventData.data.args,\n      fromBlock: placedBet.betBlock,\n      toBlock: \"latest\",\n    })\n      .then((pastLogs) => {\n        const matchingPastLog = pastLogs.find((log) => log.args.id === placedBet.id);\n        if (matchingPastLog) {\n          onRollEvent(matchingPastLog as RollEvent);\n        }\n      })\n      .catch((error) => {\n        if (!isResolved) {\n          console.warn(\"Error checking past Roll events\", error);\n          /*reject(\n            new TransactionError(\n              \"Error checking past Roll events\",\n              ERROR_CODES.GAME.ROLL_EVENT_ERROR,\n              {\n                betId: placedBet.id,\n                chainId: placedBet.chainId,\n                cause: error,\n              }\n            )\n          ); */\n        }\n      });\n\n    setTimeout(() => {\n      if (!isResolved) {\n        unwatch?.();\n        reject(\n          new TransactionError(\n            \"Timeout waiting for Roll event\",\n            ERROR_CODES.GAME.ROLL_EVENT_TIMEOUT,\n            {\n              betId: placedBet.id,\n              chainId: placedBet.chainId,\n            },\n          ),\n        );\n      }\n    }, options?.timeout || defaultCasinoWaiRollOptions.timeout);\n  });\n}\n\nexport function getRollEventData(\n  game: CASINO_GAME_TYPE,\n  casinoChainId: CasinoChainId,\n  betId: string | bigint,\n): BetSwirlEventData<GameAbi<typeof game>, \"Roll\", { id: bigint }> & {\n  event: { abiEvent: (typeof CASINO_GAME_ROLL_ABI)[typeof game][number] };\n} {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const gameData = casinoChain.contracts.games[game];\n  if (!gameData) {\n    throw new ChainError(\n      `Game ${game} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = CASINO_GAME_ROLL_ABI[game];\n  const eventName = \"Roll\" as const;\n  const args = { id: BigInt(betId) } as const;\n\n  const rollEvent = CASINO_GAME_ROLL_ABI[game]![0];\n\n  return {\n    data: { to: gameData.address, abi, eventName, args },\n    event: {\n      abiEvent: rollEvent,\n    },\n  };\n}\n\nexport type RawPaused = boolean;\n\nexport async function getCasinoGames(\n  wallet: BetSwirlWallet,\n  onlyActive = false,\n): Promise<CasinoGame[]> {\n  const casinoChainId = getCasinoChainId(wallet);\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const games = casinoChain.contracts.games;\n\n  const functionDatas = Object.keys(games).map((game) =>\n    getGamePausedFunctionData(game as CASINO_GAME_TYPE, casinoChainId),\n  );\n  const rawPauseds = await wallet.readContracts<typeof functionDatas, RawPaused[]>(functionDatas);\n\n  return Object.entries(games)\n    .map(([gameType, game], index) => ({\n      gameAddress: game.address,\n      abi: game.abi,\n      paused: Boolean(rawPauseds[index]),\n      chainId: casinoChainId,\n      game: gameType as CASINO_GAME_TYPE,\n      label: labelCasinoGameByType[gameType as CASINO_GAME_TYPE],\n      bankAddress: casinoChain.contracts.bank,\n    }))\n    .filter((game) => !onlyActive || !game.paused);\n}\n\nexport async function getCasinoGamePaused(wallet: BetSwirlWallet, game: CASINO_GAME_TYPE) {\n  const casinoChainId = getCasinoChainId(wallet);\n  const casinoChain = casinoChainById[casinoChainId];\n  const gameAddress = casinoChain.contracts.games[game]?.address;\n  if (!gameAddress) {\n    throw new ChainError(\n      `Game ${game} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n  const functionData = getGamePausedFunctionData(game, casinoChainId);\n  const rawPaused = await wallet.readContract<typeof functionData, RawPaused>(functionData);\n  return rawPaused;\n}\n\nexport function getGamePausedFunctionData(\n  game: CASINO_GAME_TYPE,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof casinoGameAbi, \"paused\", readonly []> {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const gameAddress = casinoChain.contracts.games[game]?.address;\n  if (!gameAddress) {\n    throw new ChainError(\n      `Game ${game} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = casinoGameAbi;\n  const functionName = \"paused\" as const;\n  const args = [] as const;\n  return {\n    data: { to: gameAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n\n/**\n * Raw token info data returned by the smart contract\n * [0] - houseEdge: House edge rate (BP_VALUE)\n * [1] - pendingCount: Number of pending bets\n * [2] - vrfSubId: Chainlink VRF v2.5 subscription ID\n * [3] - VRFCallbackGasBase: How much gas is needed in the Chainlink VRF callback\n * [4] - VRFFees: Chainlink's VRF collected fees amount.\n */\nexport type RawTokenInfo = [number, bigint, bigint, number, bigint];\n\nexport type RawAffiliateHouseEdge = bigint;\n\nexport function parseRawTokenInfoAndAffiliateHouseEdge(\n  rawTokenInfo: RawTokenInfo,\n  rawAffiliateHouseEdge: RawAffiliateHouseEdge,\n  casinoToken: CasinoToken,\n  game: CASINO_GAME_TYPE,\n): CasinoGameToken {\n  const defaultHouseEdge = rawTokenInfo[0];\n  return {\n    ...casinoToken,\n    game,\n    defaultHouseEdge: defaultHouseEdge,\n    defaultHouseEdgePercent: defaultHouseEdge / 100,\n    chainlinkVrfSubscriptionId: rawTokenInfo[2],\n    affiliateHouseEdge: Number(rawAffiliateHouseEdge),\n    affiliateHouseEdgePercent: Number(rawAffiliateHouseEdge) / 100,\n  };\n}\n\nexport async function getCasinoGameToken(\n  wallet: BetSwirlWallet,\n  casinoToken: CasinoToken,\n  game: CASINO_GAME_TYPE,\n  affiliate: Hex,\n): Promise<CasinoGameToken> {\n  const chainId = casinoToken.chainId;\n\n  const tokenInfoFunctionData = getTokenInfoFunctionData(game, casinoToken.address, chainId);\n  const affiliateHouseEdgeFunctionData = getAffiliateHouseEdgeFunctionData(\n    game,\n    casinoToken.address,\n    affiliate,\n    chainId,\n  );\n\n  const functionDatas = [tokenInfoFunctionData, affiliateHouseEdgeFunctionData];\n  const [rawTokenData, rawAffiliateHouseEdge] = await wallet.readContracts<\n    typeof functionDatas,\n    [RawTokenInfo, RawAffiliateHouseEdge]\n  >(functionDatas);\n\n  return parseRawTokenInfoAndAffiliateHouseEdge(\n    rawTokenData,\n    rawAffiliateHouseEdge,\n    casinoToken,\n    game,\n  );\n}\n\nexport function getTokenInfoFunctionData(\n  game: CASINO_GAME_TYPE,\n  tokenAddress: Address,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof casinoGameAbi, \"tokens\", readonly [Hex]> {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const gameAddress = casinoChain.contracts.games[game]?.address;\n  if (!gameAddress) {\n    throw new ChainError(\n      `Game ${game} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = casinoGameAbi;\n  const functionName = \"tokens\" as const;\n  const args = [tokenAddress] as const;\n  return {\n    data: { to: gameAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n\nexport function getAffiliateHouseEdgeFunctionData(\n  game: CASINO_GAME_TYPE,\n  tokenAddress: Address,\n  affiliate: Hex,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof casinoGameAbi, \"getAffiliateHouseEdge\", readonly [Hex, Hex]> {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const gameAddress = casinoChain.contracts.games[game]?.address;\n  if (!gameAddress) {\n    throw new ChainError(\n      `Game ${game} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = casinoGameAbi;\n  const functionName = \"getAffiliateHouseEdge\" as const;\n  const args = [affiliate, tokenAddress] as const;\n  return {\n    data: { to: gameAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import { type TransactionReceipt } from \"viem\";\nimport { type CoinTossPlacedBet } from \"../../actions/casino/cointoss\";\nimport { type COINTOSS_FACE, CoinToss } from \"../../entities/casino/cointoss\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { type CasinoRolledBet, type CasinoWaitRollOptions, waitRolledBet } from \"./game\";\n\nexport interface CoinTossRolledBet extends Omit<CasinoRolledBet, \"decodedRoll\"> {\n  rolled: COINTOSS_FACE[];\n}\n\nexport async function waitCoinTossRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: CoinTossPlacedBet,\n  options?: CasinoWaitRollOptions,\n): Promise<{\n  rolledBet: CoinTossRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const { rolledBet, receipt } = await waitRolledBet(wallet, placedBet, options);\n  return {\n    rolledBet: {\n      ...rolledBet,\n      rolled: rolledBet.encodedRolled.map(CoinToss.decodeRolled),\n    },\n    receipt,\n  };\n}\n","import { type TransactionReceipt } from \"viem\";\nimport { type DicePlacedBet } from \"../../actions/casino/dice\";\nimport { Dice, type DiceNumber } from \"../../entities/casino/dice\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { type CasinoRolledBet, type CasinoWaitRollOptions, waitRolledBet } from \"./game\";\n\nexport interface DiceRolledBet extends Omit<CasinoRolledBet, \"decodedRoll\"> {\n  rolled: DiceNumber[];\n}\n\nexport async function waitDiceRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: DicePlacedBet,\n  options?: CasinoWaitRollOptions,\n): Promise<{\n  rolledBet: DiceRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const { rolledBet, receipt } = await waitRolledBet(wallet, placedBet, options);\n  return {\n    rolledBet: {\n      ...rolledBet,\n      rolled: rolledBet.encodedRolled.map(Dice.decodeRolled),\n    },\n    receipt,\n  };\n}\n","import { type TransactionReceipt } from \"viem\";\nimport { type RoulettePlacedBet } from \"../../actions/casino/roulette\";\nimport { Roulette, type RouletteNumber } from \"../../entities/casino/roulette\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { type CasinoRolledBet, type CasinoWaitRollOptions, waitRolledBet } from \"./game\";\n\nexport interface RouletteRolledBet extends Omit<CasinoRolledBet, \"decodedRoll\"> {\n  rolled: RouletteNumber[];\n}\n\nexport async function waitRouletteRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: RoulettePlacedBet,\n  options?: CasinoWaitRollOptions,\n): Promise<{\n  rolledBet: RouletteRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const { rolledBet, receipt } = await waitRolledBet(wallet, placedBet, options);\n  return {\n    rolledBet: {\n      ...rolledBet,\n      rolled: rolledBet.encodedRolled.map(Roulette.decodeRolled),\n    },\n    receipt,\n  };\n}\n","import { type Address, type Hex, type TransactionReceipt, encodeFunctionData } from \"viem\";\nimport { kenoAbi } from \"../../abis\";\nimport type { KenoPlacedBet } from \"../../actions/casino/keno\";\nimport { CASINO_GAME_TYPE, type CasinoChainId, casinoChainById } from \"../../data/casino\";\nimport { Keno, type KenoBall } from \"../../entities/casino/keno\";\nimport { ERROR_CODES, TransactionError } from \"../../errors\";\nimport { ChainError } from \"../../errors\";\nimport type { BetSwirlFunctionData, Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { getCasinoChainId } from \"../../utils\";\nimport type { CasinoRolledBet, CasinoWaitRollOptions } from \"./game\";\n\nexport interface KenoRolledBet extends Omit<CasinoRolledBet, \"decodedRoll\"> {\n  rolled: KenoBall[][];\n}\n\nexport async function waitKenoRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: KenoPlacedBet,\n  options?: CasinoWaitRollOptions,\n): Promise<{\n  rolledBet: KenoRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const { rolledBet, receipt } = await waitKenoRolledBet(wallet, placedBet, options);\n  return {\n    rolledBet: {\n      ...rolledBet,\n      rolled: rolledBet.encodedRolled.map(Keno.decodeRolled),\n    },\n    receipt,\n  };\n}\n\n/**\n * Raw Keno configuration data returned by the smart contract\n * [0] - biggestNumber: The biggest selectable number\n * [1] - maxNumbersPlayed: Maximum selectable numbers\n * [2] - gainsTable: The gain multipliers (gain multiplier = gains[numbers played][numbers matched]) (BP)\n */\nexport type RawKenoConfiguration = [bigint, bigint, readonly (readonly bigint[])[]];\n\nexport function parseRawKenoConfiguration(\n  rawConfiguration: RawKenoConfiguration,\n  token: Token,\n  casinoChainId: CasinoChainId,\n): KenoConfiguration {\n  return {\n    token,\n    chainId: casinoChainId,\n    biggestSelectableBall: Number(rawConfiguration[0]),\n    maxSelectableBalls: Number(rawConfiguration[1]),\n    multiplierTable: [\n      [0],\n      ...rawConfiguration[2].map((row) => row.map((multiplier) => Number(multiplier))),\n    ],\n  };\n}\n\nexport interface KenoConfiguration {\n  token: Token;\n  chainId: CasinoChainId;\n  biggestSelectableBall: number;\n  maxSelectableBalls: number;\n  multiplierTable: number[][]; // BP\n}\n\nexport async function getKenoConfiguration(\n  wallet: BetSwirlWallet,\n  token: Token,\n): Promise<KenoConfiguration> {\n  const casinoChainId = getCasinoChainId(wallet);\n\n  try {\n    const functionData = getKenoConfigurationFunctionData(token.address, casinoChainId);\n    const rawConfiguration = await wallet.readContract<typeof functionData, RawKenoConfiguration>(\n      functionData,\n    );\n\n    return parseRawKenoConfiguration(rawConfiguration, token, casinoChainId);\n  } catch (error) {\n    throw new TransactionError(\n      \"Error getting keno configuration\",\n      ERROR_CODES.GAME.GET_KENO_CONFIGURATION_ERROR,\n      {\n        chainId: casinoChainId,\n        token,\n        cause: error,\n      },\n    );\n  }\n}\n\nexport function getKenoConfigurationFunctionData(\n  tokenAddress: Address,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof kenoAbi, \"gains\", readonly [Hex]> {\n  const casinoChain = casinoChainById[casinoChainId];\n\n  const gameAddress = casinoChain.contracts.games[CASINO_GAME_TYPE.KENO]?.address;\n  if (!gameAddress) {\n    throw new ChainError(\n      `Game ${CASINO_GAME_TYPE.KENO} not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = kenoAbi;\n  const functionName = \"gains\" as const;\n  const args = [tokenAddress] as const;\n  return {\n    data: { to: gameAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import { encodeFunctionData } from \"viem\";\nimport { weightedGameAbi } from \"../../abis\";\nimport { chainByKey } from \"../../data\";\nimport {\n  CASINO_GAME_TYPE,\n  type CasinoChainId,\n  type WEIGHTED_CASINO_GAME_TYPE,\n  casinoChainById,\n} from \"../../data/casino\";\nimport { ChainError, ERROR_CODES, TransactionError } from \"../../errors\";\nimport type { BetSwirlFunctionData } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider/wallet\";\nimport { getCasinoChainId } from \"../../utils/chains\";\nimport type { CasinoRolledBet } from \"./game\";\n\nconst normalWheelConfiguration = {\n  configId: 0,\n  weights: [1n, 1n, 1n, 1n, 1n, 1n, 1n, 1n, 1n, 1n],\n  multipliers: [0n, 14580n, 0n, 18760n, 0n, 20830n, 0n, 14580n, 0n, 31250n],\n  colors: [\n    \"#29384C\",\n    \"#55DC36\",\n    \"#29384C\",\n    \"#15A2D8\",\n    \"#29384C\",\n    \"#7340F4\",\n    \"#29384C\",\n    \"#55DC36\",\n    \"#29384C\",\n    \"#EC9E3C\",\n  ],\n  label: \"Normal\",\n  game: CASINO_GAME_TYPE.WHEEL,\n};\n\nconst safePlinkoConfiguration = {\n  configId: 1,\n  weights: [3n, 30n, 120n, 350n, 1055n, 2231n, 2422n, 2231n, 1055n, 350n, 120n, 30n, 3n],\n  multipliers: [\n    104167n,\n    31250n,\n    16667n,\n    14584n,\n    11459n,\n    10417n,\n    5209n,\n    10417n,\n    11459n,\n    14584n,\n    16667n,\n    31250n,\n    104167n,\n  ],\n  colors: [\n    \"#ff003f\",\n    \"#ff2035\",\n    \"#ff402a\",\n    \"#ff6020\",\n    \"#ff8015\",\n    \"#ffa00b\",\n    \"#ffc000\",\n    \"#ffa00b\",\n    \"#ff8015\",\n    \"#ff6020\",\n    \"#ff402a\",\n    \"#ff2035\",\n    \"#ff003f\",\n  ],\n  label: \"Safe\",\n  game: CASINO_GAME_TYPE.PLINKO,\n};\n\ntype WeightedGameCachedConfigurationsPerChain = {\n  [chainId in CasinoChainId]: CachedWeightedGameConfiguration[];\n};\n\nexport const wheelCachedConfigurations: WeightedGameCachedConfigurationsPerChain = {\n  [chainByKey.arbitrumSepolia.id]: [\n    { ...normalWheelConfiguration, chainId: chainByKey.arbitrumSepolia.id },\n  ],\n  [chainByKey.avalancheFuji.id]: [\n    { ...normalWheelConfiguration, chainId: chainByKey.avalancheFuji.id },\n  ],\n  [chainByKey.polygonAmoy.id]: [\n    { ...normalWheelConfiguration, chainId: chainByKey.polygonAmoy.id },\n  ],\n  [chainByKey.baseSepolia.id]: [\n    { ...normalWheelConfiguration, chainId: chainByKey.baseSepolia.id },\n  ],\n  [chainByKey.arbitrum.id]: [{ ...normalWheelConfiguration, chainId: chainByKey.arbitrum.id }],\n  [chainByKey.avalanche.id]: [{ ...normalWheelConfiguration, chainId: chainByKey.avalanche.id }],\n  [chainByKey.polygon.id]: [{ ...normalWheelConfiguration, chainId: chainByKey.polygon.id }],\n  [chainByKey.bsc.id]: [{ ...normalWheelConfiguration, chainId: chainByKey.bsc.id }],\n  [chainByKey.base.id]: [{ ...normalWheelConfiguration, chainId: chainByKey.base.id }],\n};\n\nexport const plinkoCachedConfigurations: WeightedGameCachedConfigurationsPerChain = {\n  [chainByKey.arbitrumSepolia.id]: [\n    { ...safePlinkoConfiguration, chainId: chainByKey.arbitrumSepolia.id },\n  ],\n  [chainByKey.avalancheFuji.id]: [\n    { ...safePlinkoConfiguration, chainId: chainByKey.avalancheFuji.id },\n  ],\n  [chainByKey.polygonAmoy.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.polygonAmoy.id }],\n  [chainByKey.baseSepolia.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.baseSepolia.id }],\n  [chainByKey.arbitrum.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.arbitrum.id }],\n  [chainByKey.avalanche.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.avalanche.id }],\n  [chainByKey.polygon.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.polygon.id }],\n  [chainByKey.bsc.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.bsc.id }],\n  [chainByKey.base.id]: [{ ...safePlinkoConfiguration, chainId: chainByKey.base.id }],\n};\n\nexport const weightedGameCachedConfigurationsByGame: Record<\n  WEIGHTED_CASINO_GAME_TYPE,\n  WeightedGameCachedConfigurationsPerChain | undefined\n> = {\n  [CASINO_GAME_TYPE.WHEEL]: wheelCachedConfigurations,\n  [CASINO_GAME_TYPE.PLINKO]: plinkoCachedConfigurations,\n  [CASINO_GAME_TYPE.CUSTOM_WEIGHTED_GAME]: undefined,\n};\n\nexport const weightedGameCachedConfigurations: WeightedGameCachedConfigurationsPerChain = {\n  [chainByKey.arbitrumSepolia.id]: [\n    ...wheelCachedConfigurations[chainByKey.arbitrumSepolia.id],\n    ...plinkoCachedConfigurations[chainByKey.arbitrumSepolia.id],\n  ],\n  [chainByKey.avalancheFuji.id]: [\n    ...wheelCachedConfigurations[chainByKey.avalancheFuji.id],\n    ...plinkoCachedConfigurations[chainByKey.avalancheFuji.id],\n  ],\n  [chainByKey.polygonAmoy.id]: [\n    ...wheelCachedConfigurations[chainByKey.polygonAmoy.id],\n    ...plinkoCachedConfigurations[chainByKey.polygonAmoy.id],\n  ],\n  [chainByKey.baseSepolia.id]: [...wheelCachedConfigurations[chainByKey.baseSepolia.id]],\n  [chainByKey.arbitrum.id]: [\n    ...wheelCachedConfigurations[chainByKey.arbitrum.id],\n    ...plinkoCachedConfigurations[chainByKey.arbitrum.id],\n  ],\n  [chainByKey.avalanche.id]: [\n    ...wheelCachedConfigurations[chainByKey.avalanche.id],\n    ...plinkoCachedConfigurations[chainByKey.avalanche.id],\n  ],\n  [chainByKey.polygon.id]: [\n    ...wheelCachedConfigurations[chainByKey.polygon.id],\n    ...plinkoCachedConfigurations[chainByKey.polygon.id],\n  ],\n  [chainByKey.bsc.id]: [\n    ...wheelCachedConfigurations[chainByKey.bsc.id],\n    ...plinkoCachedConfigurations[chainByKey.bsc.id],\n  ],\n  [chainByKey.base.id]: [\n    ...wheelCachedConfigurations[chainByKey.base.id],\n    ...plinkoCachedConfigurations[chainByKey.base.id],\n  ],\n};\n\nexport const gameIdByWeightedGameId = {\n  [1]: CASINO_GAME_TYPE.WHEEL,\n  /*[2]: Plinko,\n  [3]: Mines,\n  [4]: Diamonds,\n  [5]: SLIDE,\n  [6]: Slot,*/\n} as const;\n\n/**\n * Raw weighted game config data returned by the smart contract\n * [0] - weightRanges: The weight of each segment (sorted by ranges). e.g. [100, 250, 300] means the first segment has 100 weight, the second one has 150 weight, and the last one has 50 weight.\n * [1] - multipliers: The multiplier of each segment (BP)\n * [2] - maxMultiplier: The highest multiplier of the configuration (BP)\n * [3] - gameId: The weighted game id (used to identify the weighted game the configuration has been created for)\n */\nexport type RawWeightedGameConfiguration = {\n  weightRanges: bigint[];\n  multipliers: bigint[];\n  maxMultiplier: bigint;\n  gameId: number;\n};\n\nexport function parseRawWeightedGameConfiguration(\n  rawConfiguration: RawWeightedGameConfiguration,\n  configId: number | string,\n  casinoChainId: CasinoChainId,\n): WeightedGameConfiguration {\n  return {\n    chainId: casinoChainId,\n    configId: Number(configId),\n    // Convert weight ranges into weights\n    weights: rawConfiguration.weightRanges.map((v, i) =>\n      i === 0 ? v : v - rawConfiguration.weightRanges[i - 1]!,\n    ),\n    multipliers: rawConfiguration.multipliers,\n    game: gameIdByWeightedGameId[rawConfiguration.gameId as keyof typeof gameIdByWeightedGameId],\n  };\n}\n\nexport interface WeightedGameConfiguration {\n  configId: number;\n  game: CASINO_GAME_TYPE;\n  chainId: CasinoChainId;\n  weights: bigint[]; // BP\n  multipliers: bigint[]; // BP\n  colors?: string[];\n  label?: string;\n}\n\nexport interface CachedWeightedGameConfiguration extends WeightedGameConfiguration {\n  colors: string[];\n  label: string;\n}\n\nexport async function getWeightedGameConfiguration(\n  wallet: BetSwirlWallet,\n  configId: number | string,\n): Promise<WeightedGameConfiguration> {\n  const casinoChainId = getCasinoChainId(wallet);\n\n  try {\n    // Check if the configuration is in the cached configurations to save a fetch is it is the case.\n    const cachedConfigurations = weightedGameCachedConfigurations[casinoChainId];\n    if (cachedConfigurations) {\n      const existingCachedConfiguration = cachedConfigurations.find(\n        (c) => c.configId === Number(configId),\n      );\n      if (existingCachedConfiguration) {\n        return existingCachedConfiguration;\n      }\n    }\n    const functionData = getWeightedGameConfigurationFunctionData(configId, casinoChainId);\n    const rawConfiguration = await wallet.readContract<\n      typeof functionData,\n      RawWeightedGameConfiguration\n    >(functionData);\n\n    return parseRawWeightedGameConfiguration(rawConfiguration, configId, casinoChainId);\n  } catch (error) {\n    throw new TransactionError(\n      \"Error getting weighted game configuration\",\n      ERROR_CODES.GAME.GET_WEIGHTED_GAME_CONFIGURATION_ERROR,\n      {\n        chainId: casinoChainId,\n        configId,\n        cause: error,\n      },\n    );\n  }\n}\n\nexport function getWeightedGameConfigurationFunctionData(\n  configId: number | string,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof weightedGameAbi, \"gameConfigs\", readonly [number]> {\n  const casinoChain = casinoChainById[casinoChainId];\n  // Use WHEEL address here because Wheel is the first created weighted game\n  const gameAddress = casinoChain.contracts.games[CASINO_GAME_TYPE.WHEEL]?.address;\n  if (!gameAddress) {\n    throw new ChainError(\n      `Weighted game contract not found for chain ${casinoChainId}`,\n      ERROR_CODES.CHAIN.UNSUPPORTED_GAME,\n    );\n  }\n\n  const abi = weightedGameAbi;\n  const functionName = \"gameConfigs\" as const;\n  const args = [Number(configId)] as const;\n  return {\n    data: { to: gameAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n\nexport interface WeightedGameRolledBet extends Omit<CasinoRolledBet, \"decodedRoll\"> {\n  rolled: string[]; // multipliers (eg. x3.24)\n}\n\n// waitRolledBet and formatCasinoRolledBet are in game.ts\n","import { type TransactionReceipt } from \"viem\";\nimport type { WheelPlacedBet } from \"../../actions\";\nimport { Wheel } from \"../../entities\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { type CasinoWaitRollOptions, waitRolledBet } from \"./game\";\nimport type { WeightedGameConfiguration, WeightedGameRolledBet } from \"./weightedGame\";\n\nexport interface WheelRolledBet extends WeightedGameRolledBet {}\nexport async function waitWheelRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: WheelPlacedBet,\n  weightedGameConfig: WeightedGameConfiguration,\n  houseEdge: number,\n  options?: CasinoWaitRollOptions,\n): Promise<{\n  rolledBet: WheelRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const { rolledBet, receipt } = await waitRolledBet(\n    wallet,\n    placedBet,\n    options,\n    weightedGameConfig,\n    houseEdge,\n  );\n  return {\n    rolledBet: {\n      ...rolledBet,\n      rolled: rolledBet.encodedRolled.map((rolledBet) =>\n        Wheel.decodeRolled(rolledBet, weightedGameConfig, houseEdge),\n      ),\n    },\n    receipt,\n  };\n}\n","import { type TransactionReceipt } from \"viem\";\nimport type { PlinkoPlacedBet } from \"../../actions\";\nimport { Plinko } from \"../../entities\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { type CasinoWaitRollOptions, waitRolledBet } from \"./game\";\nimport type { WeightedGameConfiguration, WeightedGameRolledBet } from \"./weightedGame\";\n\nexport interface PlinkoRolledBet extends WeightedGameRolledBet {}\nexport async function waitPlinkoRolledBet(\n  wallet: BetSwirlWallet,\n  placedBet: PlinkoPlacedBet,\n  weightedGameConfig: WeightedGameConfiguration,\n  houseEdge: number,\n  options?: CasinoWaitRollOptions,\n): Promise<{\n  rolledBet: PlinkoRolledBet;\n  receipt: TransactionReceipt;\n}> {\n  const { rolledBet, receipt } = await waitRolledBet(\n    wallet,\n    placedBet,\n    options,\n    weightedGameConfig,\n    houseEdge,\n  );\n  return {\n    rolledBet: {\n      ...rolledBet,\n      rolled: rolledBet.encodedRolled.map((rolledBet) =>\n        Plinko.decodeRolled(rolledBet, weightedGameConfig, houseEdge),\n      ),\n    },\n    receipt,\n  };\n}\n","import { type Address, encodeFunctionData } from \"viem\";\nimport { leaderboardAbi } from \"../../abis/v2/leaderboard/leaderboard\";\nimport { type CasinoChainId, type ChainId, casinoChainById } from \"../../data\";\nimport { ERROR_CODES } from \"../../errors\";\nimport { ChainError, TransactionError } from \"../../errors/types\";\nimport type { BetSwirlFunctionData } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { getCasinoChainId } from \"../../utils\";\n\nexport type RawClaimableAmount = bigint;\n\nexport async function getClaimableAmount(\n  wallet: BetSwirlWallet,\n  leaderboardOnChainId: number | bigint,\n  playerAddress: Address,\n  chainId: ChainId,\n): Promise<bigint> {\n  const casinoChainId = getCasinoChainId(wallet, chainId);\n\n  try {\n    const functionData = getClaimableAmountFunctionData(\n      playerAddress,\n      leaderboardOnChainId,\n      casinoChainId,\n    );\n    const rawClaimableAmount = await wallet.readContract<typeof functionData, RawClaimableAmount>(\n      functionData,\n    );\n\n    return rawClaimableAmount;\n  } catch (error) {\n    throw new TransactionError(\n      \"Error getting claimable amount\",\n      ERROR_CODES.LEADERBOARD.GET_CLAIMABLE_AMOUNT_ERROR,\n      {\n        chainId: casinoChainId,\n        cause: error,\n      },\n    );\n  }\n}\n// multiplier = gross BP_VALUE\nexport function getClaimableAmountFunctionData(\n  playerAddress: Address,\n  leaderboardOnChainId: number | bigint,\n  casinoChainId: CasinoChainId,\n): BetSwirlFunctionData<typeof leaderboardAbi, \"claimable\", readonly [bigint, Address]> {\n  const casinoChain = casinoChainById[casinoChainId];\n  const leaderboardAddress = casinoChain.contracts.leaderboard;\n  if (!leaderboardAddress) {\n    throw new ChainError(\n      `Chain ID ${casinoChainId} is not compatible with leaderboard`,\n      ERROR_CODES.LEADERBOARD.UNSUPPORTED_CHAIN,\n      {\n        chainId: casinoChainId,\n      },\n    );\n  }\n\n  const abi = leaderboardAbi;\n  const functionName = \"claimable\" as const;\n  const args = [BigInt(leaderboardOnChainId), playerAddress] as const;\n  return {\n    data: { to: leaderboardAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import type { Address, Hash } from \"viem\";\nimport { encodeFunctionData } from \"viem\";\nimport { leaderboardAbi } from \"../../abis/v2/leaderboard/leaderboard\";\nimport {\n  type CasinoChainId,\n  LEADERBOARD_TYPE,\n  type Leaderboard,\n  casinoChainById,\n} from \"../../data\";\nimport { ERROR_CODES } from \"../../errors/codes\";\nimport { TransactionError } from \"../../errors/types\";\nimport type { BetSwirlFunctionData, Token } from \"../../interfaces\";\nimport type { BetSwirlWallet } from \"../../provider\";\nimport { getClaimableAmount } from \"../../read\";\n\nexport interface LeaderboardClaimRewardsResult {\n  claimedAmount: bigint;\n  token: Token;\n  receiver: Address;\n}\n\nexport async function claimLeaderboardRewards(\n  wallet: BetSwirlWallet,\n  leaderboard: Leaderboard,\n  receiver: Address,\n  pollingInterval?: number,\n  onClaimPending?: (tx: Hash, result: LeaderboardClaimRewardsResult) => void | Promise<void>,\n) {\n  try {\n    const playerAddress = wallet.getAccount()?.address;\n    if (!playerAddress) {\n      throw new TransactionError(\"Account missing\", ERROR_CODES.WALLET.ACCOUNT_MISSING);\n    }\n    const claimableAmount = await getClaimableAmount(\n      wallet,\n      leaderboard.onChainId,\n      playerAddress,\n      leaderboard.chainId,\n    );\n    if (claimableAmount <= 0n) {\n      throw new TransactionError(\n        \"No claimable amount\",\n        ERROR_CODES.LEADERBOARD.NO_CLAIMABLE_AMOUNT,\n        {\n          leaderboardId: leaderboard.id,\n          leaderboardOnChainId: leaderboard.onChainId,\n          playerAddress,\n          chainId: leaderboard.chainId,\n          receiver,\n        },\n      );\n    }\n\n    const functionData = getClaimRewardsLeaderboardFunctionData(leaderboard, receiver);\n    const tx = await wallet.writeContract(functionData);\n    const result: LeaderboardClaimRewardsResult = {\n      claimedAmount: claimableAmount,\n      token: leaderboard.token,\n      receiver,\n    };\n    await onClaimPending?.(tx, result);\n    const casinoChain =\n      leaderboard.type === LEADERBOARD_TYPE.CASINO\n        ? casinoChainById[leaderboard.chainId as CasinoChainId]\n        : undefined;\n    const effectivePollingInterval = pollingInterval || casinoChain?.options.pollingInterval;\n    const receipt = await wallet.waitTransaction(tx, effectivePollingInterval);\n    return { receipt, result };\n  } catch (error) {\n    throw new TransactionError(\n      `Error claiming rewards from leaderboard #${leaderboard.id} on chain ${leaderboard.chainId}`,\n      ERROR_CODES.TRANSACTION.TOKEN_APPROVAL_ERROR,\n      {\n        leaderboardId: leaderboard.id,\n        leaderboardOnChainId: leaderboard.onChainId,\n        chainId: leaderboard.chainId,\n        receiver,\n      },\n    );\n  }\n}\n\nexport function getClaimRewardsLeaderboardFunctionData(\n  leaderboard: Leaderboard,\n  receiver: Address,\n): BetSwirlFunctionData<typeof leaderboardAbi, \"claimTokens\", readonly [bigint, Address]> {\n  const abi = leaderboardAbi;\n  const functionName = \"claimTokens\" as const;\n  const args = [BigInt(leaderboard.onChainId), receiver] as const;\n  return {\n    data: { to: leaderboard.leaderboardAddress, abi, functionName, args },\n    encodedData: encodeFunctionData({\n      abi,\n      functionName,\n      args,\n    }),\n  };\n}\n","import type { ChainId, LEADERBOARD_TYPE } from \"../../../data\";\nimport { BetSwirlError, ERROR_CODES } from \"../../../errors\";\nimport { getBetSwirlApiUrl } from \"../../../utils\";\n\nconst MAX_BET_IDS = 100;\n\n/**\n * Refreshes leaderboards by adding the specified bet IDs.\n * It allows to avoid waiting up to 1h to take into account the bets in the leaderboards ranks.\n * If bets are not added to the leaderboards, they will be considered for the next automatic refresh (refreshed once per hour).\n *\n * This function sends a POST request to the BetSwirl API to add the given bet IDs to the leaderboards\n * for a specific chain and bet type. It returns true if the operation was successful, otherwise false.\n *\n * @param betIds - An array of bet IDs to add to the leaderboards.\n * @param chainId - The chain ID on which the bets were placed.\n * @param betType - The type of leaderboard (casino or sports).\n * @param testMode - Whether to use test mode API endpoint (default: false)\n *\n * @returns A promise that resolves to true if the refresh was successful, or false otherwise.\n */\nexport const refreshLeaderboardsWithBets = async (\n  betIds: string[],\n  chainId: ChainId,\n  betType: LEADERBOARD_TYPE,\n  testMode = false,\n): Promise<boolean> => {\n  try {\n    if (betIds.length > MAX_BET_IDS) {\n      throw new BetSwirlError(\"Too many bet ids\", ERROR_CODES.LEADERBOARD.TOO_MANY_BETS, {\n        betIdsCount: betIds.length,\n        maxBetIdsCount: MAX_BET_IDS,\n      });\n    }\n    const res = await fetch(`${getBetSwirlApiUrl(testMode)}/public/v1/leaderboards/add-bets`, {\n      method: \"POST\",\n      body: JSON.stringify({\n        bet_ids: betIds,\n        chain_id: chainId.toString(),\n        bet_type: betType,\n      }),\n    });\n    if (res.status === 200) {\n      return true;\n    }\n    console.error(`${res.status} ${res.statusText} - ${JSON.stringify(await res.json())}`);\n    return false;\n  } catch (error) {\n    console.error(error);\n    return false;\n  }\n};\n","import type { Address, Hash, Hex, TransactionReceipt } from \"viem\";\nimport { DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE } from \"../constants\";\nimport type { CASINO_GAME_TYPE, CasinoChainId } from \"../data/casino\";\nimport {\n  type CasinoBetFilterStatus,\n  fetchBet,\n  fetchBetByHash,\n  fetchBets,\n} from \"../data/subgraphs/protocol/clients/bet\";\nimport {\n  Bet_OrderBy,\n  OrderDirection,\n  Token_OrderBy,\n} from \"../data/subgraphs/protocol/documents/types\";\nimport type { SubgraphError } from \"../errors\";\nimport type {\n  BetRequirements,\n  CasinoBet,\n  CasinoGame,\n  CasinoGameToken,\n  CasinoToken,\n  SubgraphToken,\n  Token,\n} from \"../interfaces\";\n\nimport { fetchToken, fetchTokens } from \"../data/subgraphs/protocol/clients/token\";\nimport type { BetSwirlWallet } from \"./wallet\";\n\nimport type { ApolloCache, DefaultOptions } from \"@apollo/client/core/index.js\";\nimport type {\n  PlinkoBetParams,\n  PlinkoFreebetParams,\n  PlinkoPlacedBet,\n  WeightedGameBetParams,\n  WeightedGameFreebetParams,\n  WeightedGamePlacedBet,\n} from \"../actions\";\nimport { refreshLeaderboardsWithBets } from \"../actions/api/leaderboard/leaderboards\";\nimport type {\n  CoinTossBetParams,\n  CoinTossFreebetParams,\n  CoinTossPlacedBet,\n} from \"../actions/casino/cointoss\";\nimport type { DiceBetParams, DiceFreebetParams } from \"../actions/casino/dice\";\nimport type { DicePlacedBet } from \"../actions/casino/dice\";\nimport type {\n  CasinoPlaceBetOptions,\n  NormalCasinoPlacedBet,\n  PlaceBetCallbacks,\n  PlaceFreebetCallbacks,\n  WeightedCasinoPlacedBet,\n} from \"../actions/casino/game\";\nimport type { KenoBetParams, KenoFreebetParams, KenoPlacedBet } from \"../actions/casino/keno\";\nimport type {\n  RouletteBetParams,\n  RouletteFreebetParams,\n  RoulettePlacedBet,\n} from \"../actions/casino/roulette\";\nimport type { WheelBetParams, WheelFreebetParams, WheelPlacedBet } from \"../actions/casino/wheel\";\nimport type { ALLOWANCE_TYPE } from \"../actions/common/approve\";\nimport type { LeaderboardClaimRewardsResult } from \"../actions/leaderboard/leaderboard\";\nimport {\n  type AffiliateLeaderboardWithClaimDetails,\n  type ChainId,\n  FREEBET_CAMPAIGN_STATUS,\n  type FreebetCampaign,\n  LEADERBOARD_STATUS,\n  LEADERBOARD_TYPE,\n  type Leaderboard,\n  type SignedFreebet,\n  fetchAffiliateLeaderboard,\n  fetchAffiliateLeaderboards,\n  fetchFreebetCampaign,\n  fetchFreebetCampaigns,\n  fetchFreebets,\n  fetchLeaderboard,\n  fetchLeaderboards,\n} from \"../data\";\nimport type {\n  CasinoRolledBet,\n  CasinoWaitRollOptions,\n  CoinTossRolledBet,\n  DiceRolledBet,\n  GAS_PRICE_TYPE,\n  KenoConfiguration,\n  KenoRolledBet,\n  PlinkoRolledBet,\n  RouletteRolledBet,\n} from \"../read\";\nimport type { WeightedGameConfiguration } from \"../read/casino/weightedGame\";\nimport type { WheelRolledBet } from \"../read/casino/wheel\";\nimport { FORMAT_TYPE, getCasinoChainId } from \"../utils\";\nexport interface BetSwirlClientOptions {\n  gasPriceType?: GAS_PRICE_TYPE;\n  gasPrice?: bigint;\n  chainId?: ChainId;\n  affiliate?: Hex;\n  allowanceType?: ALLOWANCE_TYPE;\n  pollingInterval?: number;\n  formatType?: FORMAT_TYPE;\n  subgraphClient?: {\n    graphqlKey?: string;\n    cache?: ApolloCache<any>;\n    defaultOptions?: DefaultOptions;\n  };\n  api?: {\n    testMode?: boolean;\n  };\n}\n\nexport abstract class BetSwirlClient {\n  public betSwirlWallet: BetSwirlWallet;\n  public betSwirlDefaultOptions: BetSwirlClientOptions;\n\n  constructor(betSwirlWallet: BetSwirlWallet, betSwirlDefaultOptions: BetSwirlClientOptions) {\n    this.betSwirlWallet = betSwirlWallet;\n    this.betSwirlDefaultOptions = betSwirlDefaultOptions;\n  }\n\n  /* Casino games */\n\n  abstract waitRolledBet(\n    placedBet: NormalCasinoPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  abstract waitRolledBet(\n    placedBet: WeightedCasinoPlacedBet,\n    options: CasinoWaitRollOptions | undefined,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playCoinToss(\n    params: CoinTossBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: CoinTossPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetCoinToss(\n    params: CoinTossFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: CoinTossPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract waitCoinToss(\n    placedBet: CoinTossPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: CoinTossRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playDice(\n    params: DiceBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: DicePlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetDice(\n    params: DiceFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: DicePlacedBet; receipt: TransactionReceipt }>;\n\n  abstract waitDice(\n    placedBet: DicePlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: DiceRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playRoulette(\n    params: RouletteBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: RoulettePlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetRoulette(\n    params: RouletteFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: RoulettePlacedBet; receipt: TransactionReceipt }>;\n\n  abstract waitRoulette(\n    placedBet: RoulettePlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: RouletteRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playKeno(\n    params: KenoBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: KenoPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetKeno(\n    params: KenoFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: KenoPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract waitKeno(\n    placedBet: KenoPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: KenoRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playWheel(\n    params: WheelBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: WheelPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetWheel(\n    params: WheelFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: WheelPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract waitWheel(\n    placedBet: WheelPlacedBet,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: WheelRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playPlinko(\n    params: PlinkoBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: PlinkoPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetPlinko(\n    params: PlinkoFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: PlinkoPlacedBet; receipt: TransactionReceipt }>;\n\n  abstract waitPlinko(\n    placedBet: PlinkoPlacedBet,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: PlinkoRolledBet; receipt: TransactionReceipt }>;\n\n  abstract playWeightedGame(\n    params: WeightedGameBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: WeightedGamePlacedBet; receipt: TransactionReceipt }>;\n\n  abstract playFreebetWeightedGame(\n    params: WeightedGameFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: WeightedGamePlacedBet; receipt: TransactionReceipt }>;\n\n  /* Casino utilities */\n\n  abstract getCasinoGames(onlyActive?: boolean): Promise<CasinoGame[]>;\n\n  abstract getCasinoTokens(onlyActive?: boolean): Promise<CasinoToken[]>;\n\n  abstract getCasinoGameToken(\n    casinoToken: CasinoToken,\n    game: CASINO_GAME_TYPE,\n    affiliate?: Hex,\n  ): Promise<CasinoGameToken>;\n\n  abstract getBetRequirements(\n    token: Token,\n    multiplier: number,\n    game: CASINO_GAME_TYPE,\n  ): Promise<BetRequirements>;\n\n  abstract getChainlinkVrfCost(\n    game: CASINO_GAME_TYPE,\n    tokenAddress: Hex,\n    betCount: number,\n    gasPrice?: bigint,\n    gasPriceType?: GAS_PRICE_TYPE,\n  ): Promise<bigint>;\n\n  abstract getKenoConfiguration(token: Token): Promise<KenoConfiguration>;\n\n  abstract getWeighedGameConfiguration(\n    configId: number | string,\n  ): Promise<WeightedGameConfiguration>;\n\n  /* Leaderboard utilities */\n\n  abstract getClaimableAmount(\n    leaderboardOnChainId: number | bigint,\n    playerAddress: Address,\n    chainId?: ChainId,\n  ): Promise<bigint>;\n\n  abstract claimLeaderboardRewards(\n    leaderboard: Leaderboard,\n    receiver: Address,\n    onClaimPending?: (tx: Hash, result: LeaderboardClaimRewardsResult) => void | Promise<void>,\n  ): Promise<{ receipt: TransactionReceipt; result: LeaderboardClaimRewardsResult }>;\n\n  /* Subgraph queries */\n\n  async fetchBets(\n    chainId?: CasinoChainId,\n    filter?: {\n      bettor?: Address;\n      game?: CASINO_GAME_TYPE;\n      token?: Token;\n      status?: CasinoBetFilterStatus;\n      affiliates?: Address[];\n    },\n    page = DEFAULT_PAGE,\n    itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\n    sortBy: { key: Bet_OrderBy; order: OrderDirection } = {\n      key: Bet_OrderBy.BetTimestamp,\n      order: OrderDirection.Desc,\n    },\n  ): Promise<{ bets: CasinoBet[]; error: SubgraphError | undefined }> {\n    const casinoChainId = getCasinoChainId(this.betSwirlWallet, chainId);\n    return fetchBets(\n      {\n        ...this.betSwirlDefaultOptions.subgraphClient,\n        chainId: casinoChainId,\n        formatType: this.betSwirlDefaultOptions.formatType,\n      },\n      filter,\n      page,\n      itemsPerPage,\n      sortBy,\n    );\n  }\n\n  async fetchBet(\n    id: string | bigint,\n    chainId?: CasinoChainId,\n  ): Promise<{ bet: CasinoBet | undefined; error: SubgraphError | undefined }> {\n    const casinoChainId = getCasinoChainId(this.betSwirlWallet, chainId);\n    return fetchBet(id, {\n      ...this.betSwirlDefaultOptions.subgraphClient,\n      chainId: casinoChainId,\n      formatType: this.betSwirlDefaultOptions.formatType,\n    });\n  }\n\n  async fetchBetByHash(\n    placeBetHash: Hash,\n    chainId?: CasinoChainId,\n  ): Promise<{ bet: CasinoBet | undefined; error: SubgraphError | undefined }> {\n    const casinoChainId = getCasinoChainId(this.betSwirlWallet, chainId);\n    return fetchBetByHash(placeBetHash, {\n      ...this.betSwirlDefaultOptions.subgraphClient,\n      chainId: casinoChainId,\n      formatType: this.betSwirlDefaultOptions.formatType,\n    });\n  }\n\n  async fetchTokens(\n    chainId?: CasinoChainId,\n    page = DEFAULT_PAGE,\n    itemsPerPage = DEFAULT_ITEMS_PER_PAGE,\n    sortBy: { key: Token_OrderBy; order: OrderDirection } = {\n      key: Token_OrderBy.Symbol,\n      order: OrderDirection.Asc,\n    },\n  ): Promise<{ tokens: SubgraphToken[]; error: SubgraphError | undefined }> {\n    const casinoChainId = getCasinoChainId(this.betSwirlWallet, chainId);\n    return fetchTokens(\n      {\n        ...this.betSwirlDefaultOptions.subgraphClient,\n        chainId: casinoChainId,\n        formatType: this.betSwirlDefaultOptions.formatType,\n      },\n      page,\n      itemsPerPage,\n      sortBy,\n    );\n  }\n\n  async fetchToken(\n    address: Address,\n    chainId?: CasinoChainId,\n  ): Promise<{ token: SubgraphToken | undefined; error: SubgraphError | undefined }> {\n    const casinoChainId = getCasinoChainId(this.betSwirlWallet, chainId);\n    return fetchToken(address, {\n      ...this.betSwirlDefaultOptions.subgraphClient,\n      chainId: casinoChainId,\n      formatType: this.betSwirlDefaultOptions.formatType,\n    });\n  }\n\n  // API calls\n  async fetchFreebets(\n    player: Address,\n    affiliates?: Address[],\n    withExternalBankrollFreebets = false,\n  ): Promise<SignedFreebet[]> {\n    return fetchFreebets(\n      player,\n      affiliates,\n      withExternalBankrollFreebets,\n      Boolean(this.betSwirlDefaultOptions.api?.testMode),\n    );\n  }\n\n  async fetchFreebetCampaigns(\n    limit = 10,\n    offset = 0,\n    status?: FREEBET_CAMPAIGN_STATUS,\n    affiliate?: Address,\n  ): Promise<{ campaigns: FreebetCampaign[]; total: number; offset: number; limit: number }> {\n    return fetchFreebetCampaigns(\n      limit,\n      offset,\n      status,\n      affiliate,\n      Boolean(this.betSwirlDefaultOptions.api?.testMode),\n    );\n  }\n\n  async fetchFreebetCampaign(id: number): Promise<FreebetCampaign | null> {\n    return fetchFreebetCampaign(id, Boolean(this.betSwirlDefaultOptions.api?.testMode));\n  }\n\n  async fetchLeaderboards(\n    limit = 10,\n    offset = 0,\n    playerAddress?: Address,\n    affiliate?: Address,\n    chainId?: ChainId,\n    withExternalBankrollLeaderboards = false,\n    endDateDirection?: \"asc\" | \"desc\",\n    statuses?: LEADERBOARD_STATUS[],\n  ): Promise<{ leaderboards: Leaderboard[]; total: number; offset: number; limit: number }> {\n    return fetchLeaderboards(\n      limit,\n      offset,\n      playerAddress,\n      affiliate,\n      chainId,\n      withExternalBankrollLeaderboards,\n      endDateDirection,\n      statuses,\n      Boolean(this.betSwirlDefaultOptions.api?.testMode),\n    );\n  }\n\n  async fetchLeaderboard(id: number, playerAddress?: Address): Promise<Leaderboard | null> {\n    return fetchLeaderboard(id, playerAddress, Boolean(this.betSwirlDefaultOptions.api?.testMode));\n  }\n\n  async fetchAffiliateLeaderboards(\n    affiliate: Address,\n    limit = 10,\n    offset = 0,\n    chainId?: ChainId,\n    endDateDirection?: \"asc\" | \"desc\",\n    statuses?: LEADERBOARD_STATUS[],\n  ): Promise<{\n    leaderboards: AffiliateLeaderboardWithClaimDetails[];\n    total: number;\n    offset: number;\n    limit: number;\n  }> {\n    return fetchAffiliateLeaderboards(\n      affiliate,\n      limit,\n      offset,\n      chainId,\n      endDateDirection,\n      statuses,\n      Boolean(this.betSwirlDefaultOptions.api?.testMode),\n    );\n  }\n\n  async fetchAffiliateLeaderboard(\n    id: number,\n  ): Promise<AffiliateLeaderboardWithClaimDetails | null> {\n    return fetchAffiliateLeaderboard(id, Boolean(this.betSwirlDefaultOptions.api?.testMode));\n  }\n\n  async refreshLeaderboardsWithBets(\n    betIds: string[],\n    chainId: ChainId,\n    betType: LEADERBOARD_TYPE,\n  ): Promise<boolean> {\n    return refreshLeaderboardsWithBets(\n      betIds,\n      chainId,\n      betType,\n      Boolean(this.betSwirlDefaultOptions.api?.testMode),\n    );\n  }\n}\n","import type {\n  Abi,\n  Account,\n  CallReturnType,\n  Hash,\n  TransactionReceipt,\n  PublicClient as ViemPublicClient,\n} from \"viem\";\nimport type { BetSwirlExtendedEventData, BetSwirlFunctionData } from \"../interfaces\";\n\nexport abstract class BetSwirlWallet {\n  abstract getChainId(): number;\n\n  abstract getPublicClient(chainId?: number): ViemPublicClient;\n  abstract getAccount(chainId?: number): Account | undefined;\n\n  abstract readContract<TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>>(\n    functionData: TFunctionData,\n    gasPrice: bigint,\n  ): Promise<CallReturnType>;\n\n  abstract readContract<\n    TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>,\n    TReturnType = any,\n  >(functionData: TFunctionData, gasPrice?: undefined): Promise<TReturnType>;\n\n  abstract readContracts<\n    TFunctionDatas extends BetSwirlFunctionData<Abi, string, readonly any[]>[],\n    TReturnTypes extends any[],\n  >(functionDatas: [...TFunctionDatas]): Promise<TReturnTypes>;\n\n  abstract getTransactionReceipt(txHash: Hash): Promise<TransactionReceipt>;\n\n  abstract watchContractEvent<\n    TEventData extends BetSwirlExtendedEventData<Abi, string, Record<string, any>>,\n  >(eventData: TEventData): () => void;\n\n  abstract writeContract<TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>>(\n    functionData: TFunctionData,\n    value?: bigint,\n    gasPrice?: bigint,\n  ): Promise<Hash>;\n\n  abstract waitTransaction(txHash: Hash, pollingInterval?: number): Promise<TransactionReceipt>;\n}\n","import type {\n  Abi,\n  CallReturnType,\n  Hash,\n  PublicClient,\n  TransactionReceipt,\n  WalletClient,\n} from \"viem\";\nimport type { BetSwirlExtendedEventData, BetSwirlFunctionData } from \"../interfaces\";\nimport { BetSwirlWallet } from \"./wallet\";\n\nexport class ViemBetSwirlWallet extends BetSwirlWallet {\n  public publicClient: PublicClient;\n  private walletClient?: WalletClient;\n\n  constructor(viemPublicClient: PublicClient, viemWalletClient?: WalletClient) {\n    super();\n    this.walletClient = viemWalletClient;\n    this.publicClient = viemPublicClient;\n  }\n\n  getChainId() {\n    return this.walletClient?.chain?.id ?? this.publicClient.chain!.id;\n  }\n\n  getAccount(_chainId?: number) {\n    return this.walletClient?.account;\n  }\n\n  getPublicClient(_chainId?: number) {\n    return this.publicClient;\n  }\n\n  override async readContract<\n    TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>,\n    TReturnType = any,\n  >(functionData: TFunctionData, gasPrice?: bigint): Promise<CallReturnType | TReturnType> {\n    if (gasPrice) {\n      return this.publicClient.call({\n        to: functionData.data.to,\n        data: functionData.encodedData,\n        gasPrice,\n      });\n    }\n\n    return this.publicClient.readContract({\n      address: functionData.data.to,\n      abi: functionData.data.abi,\n      functionName: functionData.data.functionName,\n      args: functionData.data.args,\n    }) as Promise<TReturnType>;\n  }\n  async readContracts<\n    TFunctionDatas extends BetSwirlFunctionData<Abi, string, readonly any[]>[],\n    TReturnTypes extends any[],\n  >(functionDatas: [...TFunctionDatas]): Promise<TReturnTypes> {\n    const results = await Promise.all(\n      functionDatas.map((functionData) =>\n        this.publicClient.readContract({\n          address: functionData.data.to,\n          abi: functionData.data.abi,\n          functionName: functionData.data.functionName,\n          args: functionData.data.args,\n        }),\n      ),\n    );\n\n    return results as TReturnTypes;\n  }\n\n  async getTransactionReceipt(txHash: Hash): Promise<TransactionReceipt> {\n    return this.publicClient.getTransactionReceipt({ hash: txHash });\n  }\n\n  watchContractEvent<TEventData extends BetSwirlExtendedEventData<Abi, string, any>>(\n    eventData: TEventData,\n  ): () => void {\n    return this.publicClient.watchContractEvent({\n      address: eventData.data.to,\n      abi: eventData.data.abi,\n      eventName: eventData.data.eventName,\n      args: eventData.data.args,\n      pollingInterval: eventData.data.pollingInterval,\n      onLogs: (logs) => eventData.callbacks.onLogs?.(logs),\n      onError: (error) => eventData.callbacks.onError?.(error),\n    });\n  }\n\n  async writeContract<TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>>(\n    functionData: TFunctionData,\n    value?: bigint,\n    gasPrice?: bigint,\n  ): Promise<Hash> {\n    if (!this.walletClient) {\n      throw new Error(\"[ViemBetSwirlWallet]Wallet client is not initialized\");\n    }\n\n    const { request } = await this.publicClient.simulateContract({\n      address: functionData.data.to,\n      abi: functionData.data.abi,\n      functionName: functionData.data.functionName,\n      args: functionData.data.args,\n      account: this.getAccount(),\n      value,\n      gasPrice,\n    });\n\n    return this.walletClient.writeContract(request);\n  }\n\n  async waitTransaction(txHash: Hash, pollingInterval?: number): Promise<TransactionReceipt> {\n    return this.publicClient.waitForTransactionReceipt({\n      hash: txHash,\n      pollingInterval,\n    });\n  }\n}\n","import type { Address, Hash, Hex, PublicClient, TransactionReceipt, WalletClient } from \"viem\";\nimport {\n  type BetRequirements,\n  type BetSwirlClientOptions,\n  type CasinoGameToken,\n  type CasinoPlaceBetOptions,\n  type CasinoPlacedBet,\n  type CasinoRolledBet,\n  type CasinoToken,\n  type CasinoWaitRollOptions,\n  type CoinTossRolledBet,\n  type DiceBetParams,\n  type DiceFreebetParams,\n  type DicePlacedBet,\n  type DiceRolledBet,\n  type GAS_PRICE_TYPE,\n  type KenoConfiguration,\n  type KenoRolledBet,\n  type NormalCasinoPlacedBet,\n  type PlaceBetCallbacks,\n  type PlaceFreebetCallbacks,\n  type PlinkoBetParams,\n  type PlinkoFreebetParams,\n  type PlinkoPlacedBet,\n  type PlinkoRolledBet,\n  type RouletteBetParams,\n  type RouletteFreebetParams,\n  type RoulettePlacedBet,\n  type RouletteRolledBet,\n  type Token,\n  WEIGHTED_CASINO_GAME_TYPES,\n  type WeightedCasinoPlacedBet,\n  type WeightedGameBetParams,\n  type WeightedGameFreebetParams,\n  type WeightedGamePlacedBet,\n  casinoChainById,\n  getBetRequirements,\n  getCasinoGameToken,\n  getCasinoGames,\n  getCasinoTokens,\n  getChainlinkVrfCost,\n  getClaimableAmount,\n  getKenoConfiguration,\n  placeDiceBet,\n  placeDiceFreebet,\n  placePlinkoBet,\n  placePlinkoFreebet,\n  placeRouletteBet,\n  placeRouletteFreebet,\n  placeWeightedGameBet,\n  placeWeightedGameFreebet,\n  waitCoinTossRolledBet,\n  waitDiceRolledBet,\n  waitKenoRolledBet,\n  waitPlinkoRolledBet,\n  waitRolledBet,\n  waitRouletteRolledBet,\n} from \"..\";\nimport {\n  type CoinTossPlacedBet,\n  placeCoinTossBet,\n  placeCoinTossFreebet,\n} from \"../actions/casino/cointoss\";\nimport type { CoinTossBetParams, CoinTossFreebetParams } from \"../actions/casino/cointoss\";\nimport {\n  type KenoBetParams,\n  type KenoFreebetParams,\n  type KenoPlacedBet,\n  placeKenoBet,\n  placeKenoFreebet,\n} from \"../actions/casino/keno\";\nimport {\n  type WheelBetParams,\n  type WheelFreebetParams,\n  type WheelPlacedBet,\n  placeWheelBet,\n  placeWheelFreebet,\n} from \"../actions/casino/wheel\";\nimport {\n  type LeaderboardClaimRewardsResult,\n  claimLeaderboardRewards,\n} from \"../actions/leaderboard/leaderboard\";\nimport type { CASINO_GAME_TYPE, ChainId, Leaderboard } from \"../data\";\nimport {\n  type WeightedGameConfiguration,\n  getWeightedGameConfiguration,\n} from \"../read/casino/weightedGame\";\nimport { type WheelRolledBet, waitWheelRolledBet } from \"../read/casino/wheel\";\nimport { BetSwirlClient } from \"./client\";\nimport { ViemBetSwirlWallet } from \"./viemWallet\";\n\nexport class ViemBetSwirlClient extends BetSwirlClient {\n  public publicClient: PublicClient;\n\n  constructor(\n    publicClient: PublicClient,\n    walletClient?: WalletClient,\n    betSwirlDefaultOptions: BetSwirlClientOptions = {},\n  ) {\n    super(new ViemBetSwirlWallet(publicClient, walletClient), betSwirlDefaultOptions);\n    this.publicClient = publicClient;\n  }\n\n  /* Casino Games */\n\n  async waitRolledBet(\n    placedBet: NormalCasinoPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  async waitRolledBet(\n    placedBet: WeightedCasinoPlacedBet,\n    options: CasinoWaitRollOptions | undefined,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  async waitRolledBet(\n    placedBet: CasinoPlacedBet,\n    options?: CasinoWaitRollOptions,\n    weightedGameConfiguration?: WeightedGameConfiguration,\n    houseEdge?: number,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }> {\n    const isWeighted = WEIGHTED_CASINO_GAME_TYPES.includes(placedBet.game);\n    if (isWeighted) {\n      return waitRolledBet(\n        this.betSwirlWallet,\n        placedBet as WeightedCasinoPlacedBet,\n        { ...this.betSwirlDefaultOptions, ...options },\n        weightedGameConfiguration!,\n        houseEdge!,\n      );\n    }\n    return waitRolledBet(this.betSwirlWallet, placedBet as NormalCasinoPlacedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playCoinToss(\n    params: CoinTossBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: CoinTossPlacedBet; receipt: TransactionReceipt }> {\n    return placeCoinTossBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetCoinToss(\n    params: CoinTossFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: CoinTossPlacedBet; receipt: TransactionReceipt }> {\n    return placeCoinTossFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitCoinToss(\n    placedBet: CoinTossPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: CoinTossRolledBet; receipt: TransactionReceipt }> {\n    return waitCoinTossRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playDice(\n    params: DiceBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: DicePlacedBet; receipt: TransactionReceipt }> {\n    return placeDiceBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetDice(\n    params: DiceFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: DicePlacedBet; receipt: TransactionReceipt }> {\n    return placeDiceFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitDice(\n    placedBet: DicePlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: DiceRolledBet; receipt: TransactionReceipt }> {\n    return waitDiceRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playRoulette(\n    params: RouletteBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: RoulettePlacedBet; receipt: TransactionReceipt }> {\n    return placeRouletteBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetRoulette(\n    params: RouletteFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: RoulettePlacedBet; receipt: TransactionReceipt }> {\n    return placeRouletteFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitRoulette(\n    placedBet: RoulettePlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: RouletteRolledBet; receipt: TransactionReceipt }> {\n    return waitRouletteRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playKeno(\n    params: KenoBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: KenoPlacedBet; receipt: TransactionReceipt }> {\n    return placeKenoBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetKeno(\n    params: KenoFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: KenoPlacedBet; receipt: TransactionReceipt }> {\n    return placeKenoFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitKeno(\n    placedBet: KenoPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: KenoRolledBet; receipt: TransactionReceipt }> {\n    return waitKenoRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playWheel(\n    params: WheelBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: WheelPlacedBet; receipt: TransactionReceipt }> {\n    return placeWheelBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetWheel(\n    params: WheelFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: WheelPlacedBet; receipt: TransactionReceipt }> {\n    return placeWheelFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitWheel(\n    placedBet: WheelPlacedBet,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: WheelRolledBet; receipt: TransactionReceipt }> {\n    return waitWheelRolledBet(\n      this.betSwirlWallet,\n      placedBet,\n      weightedGameConfiguration,\n      houseEdge,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n    );\n  }\n\n  async playPlinko(\n    params: PlinkoBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n    return placePlinkoBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetPlinko(\n    params: PlinkoFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n    return placePlinkoFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitPlinko(\n    placedBet: PlinkoPlacedBet,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: PlinkoRolledBet; receipt: TransactionReceipt }> {\n    return waitPlinkoRolledBet(\n      this.betSwirlWallet,\n      placedBet,\n      weightedGameConfiguration,\n      houseEdge,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n    );\n  }\n\n  async playWeightedGame(\n    params: WeightedGameBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n  ): Promise<{ placedBet: WeightedGamePlacedBet; receipt: TransactionReceipt }> {\n    return placeWeightedGameBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetWeightedGame(\n    params: WeightedGameFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: WeightedGamePlacedBet; receipt: TransactionReceipt }> {\n    return placeWeightedGameFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  /* Casino Utilities */\n\n  async getCasinoGames(onlyActive = false) {\n    return getCasinoGames(this.betSwirlWallet, onlyActive);\n  }\n\n  async getCasinoTokens(onlyActive = false): Promise<CasinoToken[]> {\n    return getCasinoTokens(this.betSwirlWallet, onlyActive);\n  }\n\n  async getCasinoGameToken(\n    casinoToken: CasinoToken,\n    game: CASINO_GAME_TYPE,\n    affiliate?: Hex,\n  ): Promise<CasinoGameToken> {\n    const casinoChain = casinoChainById[casinoToken.chainId];\n    return getCasinoGameToken(\n      this.betSwirlWallet,\n      casinoToken,\n      game,\n      affiliate || casinoChain.defaultAffiliate,\n    );\n  }\n\n  async getBetRequirements(\n    token: Token,\n    multiplier: number | number[],\n    game: CASINO_GAME_TYPE,\n  ): Promise<BetRequirements> {\n    return getBetRequirements(this.betSwirlWallet, token, multiplier, game);\n  }\n\n  async getChainlinkVrfCost(\n    game: CASINO_GAME_TYPE,\n    tokenAddress: Hex,\n    betCount: number,\n    gasPrice?: bigint,\n    gasPriceType?: GAS_PRICE_TYPE,\n  ) {\n    return getChainlinkVrfCost(\n      this.betSwirlWallet,\n      game,\n      tokenAddress,\n      betCount,\n      gasPrice || this.betSwirlDefaultOptions.gasPrice,\n      gasPriceType || this.betSwirlDefaultOptions.gasPriceType,\n    );\n  }\n\n  async getKenoConfiguration(token: Token): Promise<KenoConfiguration> {\n    return getKenoConfiguration(this.betSwirlWallet, token);\n  }\n\n  async getWeighedGameConfiguration(configId: number | string): Promise<WeightedGameConfiguration> {\n    return getWeightedGameConfiguration(this.betSwirlWallet, configId);\n  }\n\n  /* Leaderboard utilities */\n\n  async getClaimableAmount(\n    leaderboardOnChainId: number | bigint,\n    playerAddress: Address,\n    chainId: ChainId,\n  ): Promise<bigint> {\n    return getClaimableAmount(this.betSwirlWallet, leaderboardOnChainId, playerAddress, chainId);\n  }\n\n  async claimLeaderboardRewards(\n    leaderboard: Leaderboard,\n    receiver: Address,\n    onClaimPending?: (tx: Hash, result: LeaderboardClaimRewardsResult) => void | Promise<void>,\n  ): Promise<{ receipt: TransactionReceipt; result: LeaderboardClaimRewardsResult }> {\n    return claimLeaderboardRewards(\n      this.betSwirlWallet,\n      leaderboard,\n      receiver,\n      this.betSwirlDefaultOptions.pollingInterval,\n      onClaimPending,\n    );\n  }\n\n  /* Private */\n\n  static init(\n    viemPublicClient: PublicClient,\n    viemWalletClient?: WalletClient,\n    options?: BetSwirlClientOptions,\n  ): ViemBetSwirlClient {\n    return new ViemBetSwirlClient(viemPublicClient, viemWalletClient, options);\n  }\n}\n\nexport function initViemBetSwirlClient(\n  viemPublicClient: PublicClient,\n  viemWalletClient?: WalletClient,\n  options?: BetSwirlClientOptions,\n): ViemBetSwirlClient {\n  return ViemBetSwirlClient.init(viemPublicClient, viemWalletClient, options);\n}\n"]}