SHOOK / OFFICIAL PROTOCOLDocumentation
MAINNET EDITIONOpen SHOOK

ShookGameFeeRouter

Complete compiled interface, including inherited methods.

Solidity 0.8.36+commit.8a079791 · Download ABI ↓ ·

Constructor 1

nonpayableconstructor(address, address, address, address, uint64)
{
  "type": "constructor",
  "inputs": [
    {
      "name": "shook_",
      "type": "address",
      "internalType": "contract IERC20"
    },
    {
      "name": "reserveVault_",
      "type": "address",
      "internalType": "contract IReserveVault"
    },
    {
      "name": "lottery_",
      "type": "address",
      "internalType": "contract IShookSettledGameLottery"
    },
    {
      "name": "game_",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "lotteryEpochDuration_",
      "type": "uint64",
      "internalType": "uint64"
    }
  ],
  "stateMutability": "nonpayable"
}

Functions 11

viewBPS()
{
  "type": "function",
  "name": "BPS",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewgame()
{
  "type": "function",
  "name": "game",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "address"
    }
  ],
  "stateMutability": "view"
}
viewLOTTERY_FEE_BPS()
{
  "type": "function",
  "name": "LOTTERY_FEE_BPS",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewlottery()
{
  "type": "function",
  "name": "lottery",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "contract IShookSettledGameLottery"
    }
  ],
  "stateMutability": "view"
}
viewlotteryEpochDuration()
{
  "type": "function",
  "name": "lotteryEpochDuration",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint64",
      "internalType": "uint64"
    }
  ],
  "stateMutability": "view"
}
viewRESERVE_FEE_BPS()
{
  "type": "function",
  "name": "RESERVE_FEE_BPS",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewRESERVE_FEES_STREAM()
{
  "type": "function",
  "name": "RESERVE_FEES_STREAM",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "bytes32",
      "internalType": "bytes32"
    }
  ],
  "stateMutability": "view"
}
viewreserveVault()
{
  "type": "function",
  "name": "reserveVault",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "contract IReserveVault"
    }
  ],
  "stateMutability": "view"
}
nonpayablerouteDecisiveSettlement(uint256, address, address, uint256)
{
  "type": "function",
  "name": "routeDecisiveSettlement",
  "inputs": [
    {
      "name": "gameId",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "playerA",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "playerB",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "wagerPerPlayer",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "winnerPayout",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
viewsettlementRouted(uint256)
{
  "type": "function",
  "name": "settlementRouted",
  "inputs": [
    {
      "name": "gameId",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "routed",
      "type": "bool",
      "internalType": "bool"
    }
  ],
  "stateMutability": "view"
}
viewshook()
{
  "type": "function",
  "name": "shook",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "contract IERC20"
    }
  ],
  "stateMutability": "view"
}

Events 1

eventGameSettlementRouted(address, uint256, uint64, address, address, uint256, uint256, uint256, uint256)
{
  "type": "event",
  "name": "GameSettlementRouted",
  "inputs": [
    {
      "name": "game",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "gameId",
      "type": "uint256",
      "indexed": true,
      "internalType": "uint256"
    },
    {
      "name": "lotteryEpoch",
      "type": "uint64",
      "indexed": true,
      "internalType": "uint64"
    },
    {
      "name": "playerA",
      "type": "address",
      "indexed": false,
      "internalType": "address"
    },
    {
      "name": "playerB",
      "type": "address",
      "indexed": false,
      "internalType": "address"
    },
    {
      "name": "wagerPerPlayer",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "reserveFee",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "lotteryFee",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "winnerPayout",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    }
  ],
  "anonymous": false
}

Errors 8

errorInvalidConfiguration()
{
  "type": "error",
  "name": "InvalidConfiguration",
  "inputs": []
}
errorInvalidSettlement()
{
  "type": "error",
  "name": "InvalidSettlement",
  "inputs": []
}
errorOnlyGame()
{
  "type": "error",
  "name": "OnlyGame",
  "inputs": []
}
errorReentrancyGuardReentrantCall()
{
  "type": "error",
  "name": "ReentrancyGuardReentrantCall",
  "inputs": []
}
errorSafeCastOverflowedUintDowncast(uint8, uint256)
{
  "type": "error",
  "name": "SafeCastOverflowedUintDowncast",
  "inputs": [
    {
      "name": "bits",
      "type": "uint8",
      "internalType": "uint8"
    },
    {
      "name": "value",
      "type": "uint256",
      "internalType": "uint256"
    }
  ]
}
errorSafeERC20FailedOperation(address)
{
  "type": "error",
  "name": "SafeERC20FailedOperation",
  "inputs": [
    {
      "name": "token",
      "type": "address",
      "internalType": "address"
    }
  ]
}
errorSettlementAlreadyRouted()
{
  "type": "error",
  "name": "SettlementAlreadyRouted",
  "inputs": []
}
errorZeroAddress()
{
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
}

Source and provenance

Imported source files 14

Supporting contracts, interfaces, and libraries imported by the sources above, including their dependencies.

Source fingerprint: 3aa777a77b99551fc33720bc204c6478a4fb635d09b135d6a09dced54b06a637. Download manifest.