Contract reference / ABI
ShookGameFeeRouter
Complete compiled interface, including inherited methods.
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: 3bd3d956c6f288981dec6d4461fdc153ced375792324983f9c7e5bdd67656a31. Download manifest.