[
   {
      "inputs":[
         {
            "internalType":"bytes4",
            "name":"_functionSelector",
            "type":"bytes4"
         }
      ],
      "name":"facetAddress",
      "outputs":[
         {
            "internalType":"address",
            "name":"facetAddress_",
            "type":"address"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[

      ],
      "name":"facetAddresses",
      "outputs":[
         {
            "internalType":"address[]",
            "name":"facetAddresses_",
            "type":"address[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_facet",
            "type":"address"
         }
      ],
      "name":"facetFunctionSelectors",
      "outputs":[
         {
            "internalType":"bytes4[]",
            "name":"facetFunctionSelectors_",
            "type":"bytes4[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[

      ],
      "name":"facets",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"address",
                  "name":"facetAddress",
                  "type":"address"
               },
               {
                  "internalType":"bytes4[]",
                  "name":"functionSelectors",
                  "type":"bytes4[]"
               }
            ],
            "internalType":"struct IDiamondLoupe.Facet[]",
            "name":"facets_",
            "type":"tuple[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"bytes4",
            "name":"_interfaceId",
            "type":"bytes4"
         }
      ],
      "name":"supportsInterface",
      "outputs":[
         {
            "internalType":"bool",
            "name":"",
            "type":"bool"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_duelId",
            "type":"uint256"
         }
      ],
      "name":"completeDuel",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_type",
            "type":"uint256"
         },
         {
            "internalType":"uint256[]",
            "name":"_heroIds",
            "type":"uint256[]"
         },
         {
            "internalType":"uint256",
            "name":"_jewelFee",
            "type":"uint256"
         },
         {
            "internalType":"uint8",
            "name":"_background",
            "type":"uint8"
         },
         {
            "internalType":"uint8",
            "name":"_stat",
            "type":"uint8"
         }
      ],
      "name":"enterDuelLobby",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   },
   {
      "anonymous":false,
      "inputs":[
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"duelId",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"address",
            "name":"player1",
            "type":"address"
         },
         {
            "indexed":true,
            "internalType":"address",
            "name":"player2",
            "type":"address"
         },
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "indexed":false,
            "internalType":"struct IDuelTypes.Duel",
            "name":"duel",
            "type":"tuple"
         }
      ],
      "name":"DuelCompleted",
      "type":"event"
   },
   {
      "anonymous":false,
      "inputs":[
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"duelId",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"address",
            "name":"player1",
            "type":"address"
         },
         {
            "indexed":true,
            "internalType":"address",
            "name":"player2",
            "type":"address"
         },
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "indexed":false,
            "internalType":"struct IDuelTypes.Duel",
            "name":"duel",
            "type":"tuple"
         }
      ],
      "name":"DuelCreated",
      "type":"event"
   },
   {
      "anonymous":false,
      "inputs":[
         {
            "indexed":false,
            "internalType":"uint256",
            "name":"id",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"address",
            "name":"player",
            "type":"address"
         },
         {
            "indexed":false,
            "internalType":"uint256[]",
            "name":"heroIds",
            "type":"uint256[]"
         }
      ],
      "name":"DuelEntryCreated",
      "type":"event"
   },
   {
      "anonymous":false,
      "inputs":[
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"duelId",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"duelEntryId",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"address",
            "name":"player1",
            "type":"address"
         },
         {
            "indexed":false,
            "internalType":"address",
            "name":"player2",
            "type":"address"
         }
      ],
      "name":"DuelEntryMatched",
      "type":"event"
   },
   {
      "anonymous":false,
      "inputs":[
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"duelId",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"player1HeroId",
            "type":"uint256"
         },
         {
            "indexed":true,
            "internalType":"uint256",
            "name":"player2HeroId",
            "type":"uint256"
         },
         {
            "components":[
               {
                  "internalType":"uint16",
                  "name":"turn",
                  "type":"uint16"
               },
               {
                  "internalType":"uint256",
                  "name":"player1HeroId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2HeroId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"stat",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"background",
                  "type":"uint8"
               },
               {
                  "components":[
                     {
                        "internalType":"uint8",
                        "name":"roll",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint16",
                        "name":"elementBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"statValue",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"backgroundBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"total",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IDuelTypes.HeroTurnScore",
                  "name":"hero1Score",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint8",
                        "name":"roll",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint16",
                        "name":"elementBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"statValue",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"backgroundBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"total",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IDuelTypes.HeroTurnScore",
                  "name":"hero2Score",
                  "type":"tuple"
               },
               {
                  "internalType":"uint256",
                  "name":"winnerHeroId",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winnerPlayer",
                  "type":"address"
               }
            ],
            "indexed":false,
            "internalType":"struct IDuelTypes.TurnResult",
            "name":"turnResult",
            "type":"tuple"
         }
      ],
      "name":"TurnOutcome",
      "type":"event"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_address",
            "type":"address"
         }
      ],
      "name":"getActiveDuels",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.Duel[]",
            "name":"",
            "type":"tuple[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_profile",
            "type":"address"
         }
      ],
      "name":"getChallenges",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.Duel[]",
            "name":"",
            "type":"tuple[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_id",
            "type":"uint256"
         }
      ],
      "name":"getDuel",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.Duel",
            "name":"",
            "type":"tuple"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_id",
            "type":"uint256"
         }
      ],
      "name":"getDuelEntry",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"score",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"scoreAfter",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"jewelFee",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"duelId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"custom1",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"custom2",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.DuelEntry",
            "name":"",
            "type":"tuple"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_profile",
            "type":"address"
         }
      ],
      "name":"getDuelHistory",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.Duel[100]",
            "name":"",
            "type":"tuple[100]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_duelId",
            "type":"uint256"
         }
      ],
      "name":"getDuelIndexP1",
      "outputs":[
         {
            "internalType":"uint256",
            "name":"",
            "type":"uint256"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_id",
            "type":"uint256"
         }
      ],
      "name":"getDuelRewards",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"address",
                  "name":"item",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"recipient",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"qty",
                  "type":"uint256"
               }
            ],
            "internalType":"struct IDuelTypes.DuelReward[]",
            "name":"",
            "type":"tuple[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_id",
            "type":"uint256"
         }
      ],
      "name":"getDuelTurns",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint16",
                  "name":"turn",
                  "type":"uint16"
               },
               {
                  "internalType":"uint256",
                  "name":"player1HeroId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2HeroId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"stat",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"background",
                  "type":"uint8"
               },
               {
                  "components":[
                     {
                        "internalType":"uint8",
                        "name":"roll",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint16",
                        "name":"elementBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"statValue",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"backgroundBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"total",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IDuelTypes.HeroTurnScore",
                  "name":"hero1Score",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint8",
                        "name":"roll",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint16",
                        "name":"elementBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"statValue",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"backgroundBonus",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"total",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IDuelTypes.HeroTurnScore",
                  "name":"hero2Score",
                  "type":"tuple"
               },
               {
                  "internalType":"uint256",
                  "name":"winnerHeroId",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winnerPlayer",
                  "type":"address"
               }
            ],
            "internalType":"struct IDuelTypes.TurnResult[]",
            "name":"",
            "type":"tuple[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_heroId",
            "type":"uint256"
         }
      ],
      "name":"getHeroDuel",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player1",
                  "type":"address"
               },
               {
                  "internalType":"address",
                  "name":"player2",
                  "type":"address"
               },
               {
                  "internalType":"uint256",
                  "name":"player1DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"player2DuelEntry",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"winner",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player1Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256[]",
                  "name":"player2Heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.Duel",
            "name":"",
            "type":"tuple"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[

      ],
      "name":"getHighestScore",
      "outputs":[
         {
            "internalType":"uint64",
            "name":"",
            "type":"uint64"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_profile",
            "type":"address"
         }
      ],
      "name":"getPlayerDuelEntries",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"score",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"scoreAfter",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"jewelFee",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"duelId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"custom1",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"custom2",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.DuelEntry[]",
            "name":"",
            "type":"tuple[]"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_profile",
            "type":"address"
         }
      ],
      "name":"getPlayerScore",
      "outputs":[
         {
            "internalType":"uint64",
            "name":"",
            "type":"uint64"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_type",
            "type":"uint256"
         },
         {
            "internalType":"uint8",
            "name":"_rank",
            "type":"uint8"
         }
      ],
      "name":"getPracticeEntry",
      "outputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "internalType":"address",
                  "name":"player",
                  "type":"address"
               },
               {
                  "internalType":"uint256[]",
                  "name":"heroes",
                  "type":"uint256[]"
               },
               {
                  "internalType":"uint256",
                  "name":"startBlock",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"score",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"scoreAfter",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"jewelFee",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"duelId",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"custom1",
                  "type":"uint256"
               },
               {
                  "internalType":"uint256",
                  "name":"custom2",
                  "type":"uint256"
               },
               {
                  "internalType":"uint8",
                  "name":"duelType",
                  "type":"uint8"
               },
               {
                  "internalType":"uint8",
                  "name":"status",
                  "type":"uint8"
               }
            ],
            "internalType":"struct IDuelTypes.DuelEntry",
            "name":"",
            "type":"tuple"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[

      ],
      "name":"getTotalDuelEntries",
      "outputs":[
         {
            "internalType":"uint256",
            "name":"",
            "type":"uint256"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[

      ],
      "name":"getTotalDuels",
      "outputs":[
         {
            "internalType":"uint256",
            "name":"",
            "type":"uint256"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_lobby",
            "type":"uint256"
         }
      ],
      "name":"getTotalOpenDuelEntries",
      "outputs":[
         {
            "internalType":"uint256",
            "name":"",
            "type":"uint256"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_profile",
            "type":"address"
         }
      ],
      "name":"getTotalPlayerDuels",
      "outputs":[
         {
            "internalType":"uint64",
            "name":"",
            "type":"uint64"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_profile",
            "type":"address"
         }
      ],
      "name":"getTotalPlayerWins",
      "outputs":[
         {
            "internalType":"uint64",
            "name":"",
            "type":"uint64"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "components":[
                     {
                        "internalType":"uint256",
                        "name":"summonedTime",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"nextSummonTime",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"summonerId",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"assistantId",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint32",
                        "name":"summons",
                        "type":"uint32"
                     },
                     {
                        "internalType":"uint32",
                        "name":"maxSummons",
                        "type":"uint32"
                     }
                  ],
                  "internalType":"struct IHeroTypes.SummoningInfo",
                  "name":"summoningInfo",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint256",
                        "name":"statGenes",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"visualGenes",
                        "type":"uint256"
                     },
                     {
                        "internalType":"enum IHeroTypes.Rarity",
                        "name":"rarity",
                        "type":"uint8"
                     },
                     {
                        "internalType":"bool",
                        "name":"shiny",
                        "type":"bool"
                     },
                     {
                        "internalType":"uint16",
                        "name":"generation",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint32",
                        "name":"firstName",
                        "type":"uint32"
                     },
                     {
                        "internalType":"uint32",
                        "name":"lastName",
                        "type":"uint32"
                     },
                     {
                        "internalType":"uint8",
                        "name":"shinyStyle",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint8",
                        "name":"class",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint8",
                        "name":"subClass",
                        "type":"uint8"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroInfo",
                  "name":"info",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint256",
                        "name":"staminaFullAt",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"hpFullAt",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"mpFullAt",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint16",
                        "name":"level",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint64",
                        "name":"xp",
                        "type":"uint64"
                     },
                     {
                        "internalType":"address",
                        "name":"currentQuest",
                        "type":"address"
                     },
                     {
                        "internalType":"uint8",
                        "name":"sp",
                        "type":"uint8"
                     },
                     {
                        "internalType":"enum IHeroTypes.HeroStatus",
                        "name":"status",
                        "type":"uint8"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroState",
                  "name":"state",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"strength",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"intelligence",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"wisdom",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"luck",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"agility",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"vitality",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"endurance",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"dexterity",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hp",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mp",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"stamina",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroStats",
                  "name":"stats",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"strength",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"intelligence",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"wisdom",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"luck",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"agility",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"vitality",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"endurance",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"dexterity",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpLg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpLg",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroStatGrowth",
                  "name":"primaryStatGrowth",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"strength",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"intelligence",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"wisdom",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"luck",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"agility",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"vitality",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"endurance",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"dexterity",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpLg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpLg",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroStatGrowth",
                  "name":"secondaryStatGrowth",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"mining",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"gardening",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"foraging",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"fishing",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroProfessions",
                  "name":"professions",
                  "type":"tuple"
               }
            ],
            "internalType":"struct IHeroTypes.Hero",
            "name":"_hero",
            "type":"tuple"
         }
      ],
      "name":"_heroMMScore",
      "outputs":[
         {
            "internalType":"uint64",
            "name":"",
            "type":"uint64"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "components":[
               {
                  "internalType":"uint256",
                  "name":"id",
                  "type":"uint256"
               },
               {
                  "components":[
                     {
                        "internalType":"uint256",
                        "name":"summonedTime",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"nextSummonTime",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"summonerId",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"assistantId",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint32",
                        "name":"summons",
                        "type":"uint32"
                     },
                     {
                        "internalType":"uint32",
                        "name":"maxSummons",
                        "type":"uint32"
                     }
                  ],
                  "internalType":"struct IHeroTypes.SummoningInfo",
                  "name":"summoningInfo",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint256",
                        "name":"statGenes",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"visualGenes",
                        "type":"uint256"
                     },
                     {
                        "internalType":"enum IHeroTypes.Rarity",
                        "name":"rarity",
                        "type":"uint8"
                     },
                     {
                        "internalType":"bool",
                        "name":"shiny",
                        "type":"bool"
                     },
                     {
                        "internalType":"uint16",
                        "name":"generation",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint32",
                        "name":"firstName",
                        "type":"uint32"
                     },
                     {
                        "internalType":"uint32",
                        "name":"lastName",
                        "type":"uint32"
                     },
                     {
                        "internalType":"uint8",
                        "name":"shinyStyle",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint8",
                        "name":"class",
                        "type":"uint8"
                     },
                     {
                        "internalType":"uint8",
                        "name":"subClass",
                        "type":"uint8"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroInfo",
                  "name":"info",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint256",
                        "name":"staminaFullAt",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"hpFullAt",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint256",
                        "name":"mpFullAt",
                        "type":"uint256"
                     },
                     {
                        "internalType":"uint16",
                        "name":"level",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint64",
                        "name":"xp",
                        "type":"uint64"
                     },
                     {
                        "internalType":"address",
                        "name":"currentQuest",
                        "type":"address"
                     },
                     {
                        "internalType":"uint8",
                        "name":"sp",
                        "type":"uint8"
                     },
                     {
                        "internalType":"enum IHeroTypes.HeroStatus",
                        "name":"status",
                        "type":"uint8"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroState",
                  "name":"state",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"strength",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"intelligence",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"wisdom",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"luck",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"agility",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"vitality",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"endurance",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"dexterity",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hp",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mp",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"stamina",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroStats",
                  "name":"stats",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"strength",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"intelligence",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"wisdom",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"luck",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"agility",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"vitality",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"endurance",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"dexterity",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpLg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpLg",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroStatGrowth",
                  "name":"primaryStatGrowth",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"strength",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"intelligence",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"wisdom",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"luck",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"agility",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"vitality",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"endurance",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"dexterity",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"hpLg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpSm",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpRg",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"mpLg",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroStatGrowth",
                  "name":"secondaryStatGrowth",
                  "type":"tuple"
               },
               {
                  "components":[
                     {
                        "internalType":"uint16",
                        "name":"mining",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"gardening",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"foraging",
                        "type":"uint16"
                     },
                     {
                        "internalType":"uint16",
                        "name":"fishing",
                        "type":"uint16"
                     }
                  ],
                  "internalType":"struct IHeroTypes.HeroProfessions",
                  "name":"professions",
                  "type":"tuple"
               }
            ],
            "internalType":"struct IHeroTypes.Hero[]",
            "name":"_heroes",
            "type":"tuple[]"
         }
      ],
      "name":"_partyMMScore",
      "outputs":[
         {
            "internalType":"uint64",
            "name":"",
            "type":"uint64"
         }
      ],
      "stateMutability":"view",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_lobby",
            "type":"uint256"
         }
      ],
      "name":"matchMake",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_duelId",
            "type":"uint256"
         },
         {
            "internalType":"uint256[]",
            "name":"_heroIds",
            "type":"uint256[]"
         },
         {
            "internalType":"uint8",
            "name":"_background",
            "type":"uint8"
         },
         {
            "internalType":"uint8",
            "name":"_stat",
            "type":"uint8"
         }
      ],
      "name":"acceptChallenge",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_type",
            "type":"uint256"
         },
         {
            "internalType":"uint256[]",
            "name":"_heroIds",
            "type":"uint256[]"
         },
         {
            "internalType":"uint8",
            "name":"_rank",
            "type":"uint8"
         },
         {
            "internalType":"uint8",
            "name":"_background",
            "type":"uint8"
         },
         {
            "internalType":"uint8",
            "name":"_stat",
            "type":"uint8"
         }
      ],
      "name":"startPracticeDuel",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"uint256",
            "name":"_type",
            "type":"uint256"
         },
         {
            "internalType":"uint256[]",
            "name":"_heroIds",
            "type":"uint256[]"
         },
         {
            "internalType":"address",
            "name":"_opponent",
            "type":"address"
         },
         {
            "internalType":"uint8",
            "name":"_background",
            "type":"uint8"
         },
         {
            "internalType":"uint8",
            "name":"_stat",
            "type":"uint8"
         }
      ],
      "name":"startPrivateDuel",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   },
   {
      "inputs":[
         {
            "internalType":"address",
            "name":"_heroCoreAddress",
            "type":"address"
         },
         {
            "internalType":"address",
            "name":"_statScienceAddress",
            "type":"address"
         },
         {
            "internalType":"address",
            "name":"_duelRaffleTicket",
            "type":"address"
         },
         {
            "internalType":"address",
            "name":"_dfkGold",
            "type":"address"
         },
         {
            "internalType":"address",
            "name":"_jewelToken",
            "type":"address"
         },
         {
            "internalType":"address",
            "name":"_goldPot",
            "type":"address"
         }
      ],
      "name":"init",
      "outputs":[

      ],
      "stateMutability":"nonpayable",
      "type":"function"
   }
]
