[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "version",
        "type": "uint8"
      }
    ],
    "name": "Initialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "equipmentAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "equipmentType",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "displayId",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "rarity",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "startingPrice",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "minPrice",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "deltaPriceIncrease",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "decreaseRate",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "priceIncreaseDecay",
        "type": "uint64"
      }
    ],
    "name": "ItemAdded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "equipmentAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "equipmentType",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "displayId",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "rarity",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "boughtQty",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "soldItem",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "soldQty",
        "type": "uint256"
      }
    ],
    "name": "ItemTraded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "equipmentAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "equipmentType",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "displayId",
        "type": "uint16"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "rarity",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "currentPrice",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "minPrice",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "deltaPriceIncrease",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "decreaseRate",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "priceIncreaseDecay",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "enum Status",
        "name": "status",
        "type": "uint8"
      }
    ],
    "name": "ItemUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "previousAdminRole",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "newAdminRole",
        "type": "bytes32"
      }
    ],
    "name": "RoleAdminChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleGranted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleRevoked",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "DEFAULT_ADMIN_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MODERATOR_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "equipmentContract",
            "type": "address"
          },
          {
            "internalType": "uint8",
            "name": "equipmentType",
            "type": "uint8"
          },
          {
            "internalType": "uint16",
            "name": "displayId",
            "type": "uint16"
          },
          {
            "internalType": "uint8",
            "name": "rarity",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "startingPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "minPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deltaPriceIncrease",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decreaseRate",
            "type": "uint256"
          },
          {
            "internalType": "uint64",
            "name": "priceIncreaseDecay",
            "type": "uint64"
          }
        ],
        "internalType": "struct NewShopItem",
        "name": "_newShopItem",
        "type": "tuple"
      }
    ],
    "name": "addShopItem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "equipmentContract",
            "type": "address"
          },
          {
            "internalType": "uint8",
            "name": "equipmentType",
            "type": "uint8"
          },
          {
            "internalType": "uint16",
            "name": "displayId",
            "type": "uint16"
          },
          {
            "internalType": "uint8",
            "name": "rarity",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "startingPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "minPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deltaPriceIncrease",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decreaseRate",
            "type": "uint256"
          },
          {
            "internalType": "uint64",
            "name": "priceIncreaseDecay",
            "type": "uint64"
          }
        ],
        "internalType": "struct NewShopItem[]",
        "name": "_newShopItems",
        "type": "tuple[]"
      }
    ],
    "name": "addShopItems",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_equipmentContract",
        "type": "address"
      },
      {
        "internalType": "uint8",
        "name": "_equipmentType",
        "type": "uint8"
      },
      {
        "internalType": "uint16",
        "name": "_displayId",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "_rarity",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "_quantity",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_maxPrice",
        "type": "uint256"
      }
    ],
    "name": "buyItem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dfkGold",
    "outputs": [
      {
        "internalType": "contract IInventoryItem",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      },
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "name": "equipmentToShopItemId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_equipmentContract",
        "type": "address"
      },
      {
        "internalType": "uint8",
        "name": "_equipmentType",
        "type": "uint8"
      },
      {
        "internalType": "uint16",
        "name": "_displayId",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "_rarity",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "_quantity",
        "type": "uint256"
      }
    ],
    "name": "getNextPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "getRoleAdmin",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_id",
        "type": "uint256"
      }
    ],
    "name": "getShopItem",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "equipmentContract",
            "type": "address"
          },
          {
            "internalType": "uint8",
            "name": "equipmentType",
            "type": "uint8"
          },
          {
            "internalType": "uint16",
            "name": "displayId",
            "type": "uint16"
          },
          {
            "internalType": "uint8",
            "name": "rarity",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "currentPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "minPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deltaPriceIncrease",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decreaseRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "priceIncreaseDecay",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lastPurchaseTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "enum Status",
            "name": "status",
            "type": "uint8"
          }
        ],
        "internalType": "struct ShopItem",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_equipmentContract",
        "type": "address"
      },
      {
        "internalType": "uint8",
        "name": "_equipmentType",
        "type": "uint8"
      },
      {
        "internalType": "uint16",
        "name": "_displayId",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "_rarity",
        "type": "uint8"
      }
    ],
    "name": "getShopItemByEquipment",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "equipmentContract",
            "type": "address"
          },
          {
            "internalType": "uint8",
            "name": "equipmentType",
            "type": "uint8"
          },
          {
            "internalType": "uint16",
            "name": "displayId",
            "type": "uint16"
          },
          {
            "internalType": "uint8",
            "name": "rarity",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "currentPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "minPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deltaPriceIncrease",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decreaseRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "priceIncreaseDecay",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lastPurchaseTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "enum Status",
            "name": "status",
            "type": "uint8"
          }
        ],
        "internalType": "struct ShopItem",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getShopItems",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "id",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "equipmentContract",
            "type": "address"
          },
          {
            "internalType": "uint8",
            "name": "equipmentType",
            "type": "uint8"
          },
          {
            "internalType": "uint16",
            "name": "displayId",
            "type": "uint16"
          },
          {
            "internalType": "uint8",
            "name": "rarity",
            "type": "uint8"
          },
          {
            "internalType": "uint256",
            "name": "currentPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "minPrice",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deltaPriceIncrease",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decreaseRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "priceIncreaseDecay",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lastPurchaseTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "enum Status",
            "name": "status",
            "type": "uint8"
          }
        ],
        "internalType": "struct ShopItem[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "grantRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "hasRole",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_dfkGoldAddress",
        "type": "address"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_equipmentContract",
        "type": "address"
      },
      {
        "internalType": "uint8",
        "name": "_equipmentType",
        "type": "uint8"
      },
      {
        "internalType": "uint16",
        "name": "_displayId",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "_rarity",
        "type": "uint8"
      }
    ],
    "name": "removeShopItem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "renounceRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "revokeRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "shopItems",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "shopDataPt1",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "shopDataPt2",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "togglePause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_equipmentContract",
        "type": "address"
      },
      {
        "internalType": "uint8",
        "name": "_equipmentType",
        "type": "uint8"
      },
      {
        "internalType": "uint16",
        "name": "_displayId",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "_rarity",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "_currentPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_minPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_deltaPriceIncrease",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_decreaseRate",
        "type": "uint256"
      },
      {
        "internalType": "uint64",
        "name": "_priceIncreaseDecay",
        "type": "uint64"
      },
      {
        "internalType": "enum Status",
        "name": "_status",
        "type": "uint8"
      }
    ],
    "name": "updateShopItem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
