mirror of
https://github.com/luxfhe/example-rps-game.git
synced 2026-10-30 18:13:18 +00:00
1004 lines
25 KiB
TypeScript
1004 lines
25 KiB
TypeScript
/**
|
|
* This file is autogenerated by Scaffold-ETH.
|
|
* You should not edit it manually or your changes might be overwritten.
|
|
*/
|
|
import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract";
|
|
|
|
const deployedContracts = {
|
|
31337: {
|
|
FHERockPaperScissors: {
|
|
address: "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707",
|
|
abi: [
|
|
{
|
|
inputs: [],
|
|
stateMutability: "nonpayable",
|
|
type: "constructor",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint8",
|
|
name: "got",
|
|
type: "uint8",
|
|
},
|
|
{
|
|
internalType: "uint8",
|
|
name: "expected",
|
|
type: "uint8",
|
|
},
|
|
],
|
|
name: "InvalidEncryptedInput",
|
|
type: "error",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "int32",
|
|
name: "value",
|
|
type: "int32",
|
|
},
|
|
],
|
|
name: "SecurityZoneOutOfBounds",
|
|
type: "error",
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: "address",
|
|
name: "creator",
|
|
type: "address",
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: "uint256",
|
|
name: "betAmount",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "GameCreated",
|
|
type: "event",
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "GameDrawn",
|
|
type: "event",
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: "address",
|
|
name: "winner",
|
|
type: "address",
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: "uint256",
|
|
name: "prize",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "GameFinished",
|
|
type: "event",
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "GameWaitingForDecryption",
|
|
type: "event",
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: "address",
|
|
name: "player",
|
|
type: "address",
|
|
},
|
|
],
|
|
name: "MoveSubmitted",
|
|
type: "event",
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: "address",
|
|
name: "player2",
|
|
type: "address",
|
|
},
|
|
],
|
|
name: "PlayerJoined",
|
|
type: "event",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "MOVE_TIMEOUT",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "cancelGame",
|
|
outputs: [],
|
|
stateMutability: "nonpayable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "createGame",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "gameCounter",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "games",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "player1",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "player2",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "euint8",
|
|
name: "player1Choice",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "euint8",
|
|
name: "player2Choice",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "player1ChoiceReady",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "player2ChoiceReady",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "winner",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "betAmount",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "enum FHERockPaperScissors.GameState",
|
|
name: "state",
|
|
type: "uint8",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "createdAt",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "getGame",
|
|
outputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "player1",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "player2",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "euint8",
|
|
name: "player1Choice",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "euint8",
|
|
name: "player2Choice",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "player1ChoiceReady",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "player2ChoiceReady",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "winner",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "betAmount",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "enum FHERockPaperScissors.GameState",
|
|
name: "state",
|
|
type: "uint8",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "createdAt",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
internalType: "struct FHERockPaperScissors.Game",
|
|
name: "",
|
|
type: "tuple",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getGameCount",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "enum FHERockPaperScissors.GameState",
|
|
name: "targetState",
|
|
type: "uint8",
|
|
},
|
|
],
|
|
name: "getGamesByState",
|
|
outputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "player1",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "player2",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "euint8",
|
|
name: "player1Choice",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "euint8",
|
|
name: "player2Choice",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "player1ChoiceReady",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "player2ChoiceReady",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "address",
|
|
name: "winner",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "betAmount",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "enum FHERockPaperScissors.GameState",
|
|
name: "state",
|
|
type: "uint8",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "createdAt",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
internalType: "struct FHERockPaperScissors.Game[]",
|
|
name: "",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "address",
|
|
name: "player",
|
|
type: "address",
|
|
},
|
|
],
|
|
name: "getPlayerGames",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256[]",
|
|
name: "",
|
|
type: "uint256[]",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "joinGame",
|
|
outputs: [],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "address",
|
|
name: "",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "playerGames",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "safelyRevealWinner",
|
|
outputs: [],
|
|
stateMutability: "nonpayable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gameId",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "ctHash",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "uint8",
|
|
name: "securityZone",
|
|
type: "uint8",
|
|
},
|
|
{
|
|
internalType: "uint8",
|
|
name: "utype",
|
|
type: "uint8",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "signature",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct InEuint8",
|
|
name: "encryptedChoice",
|
|
type: "tuple",
|
|
},
|
|
],
|
|
name: "submitMove",
|
|
outputs: [],
|
|
stateMutability: "nonpayable",
|
|
type: "function",
|
|
},
|
|
],
|
|
inheritedFunctions: {},
|
|
},
|
|
Multicall3: {
|
|
address: "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9",
|
|
abi: [
|
|
{
|
|
inputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "address",
|
|
name: "target",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "callData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Call[]",
|
|
name: "calls",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
name: "aggregate",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "blockNumber",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bytes[]",
|
|
name: "returnData",
|
|
type: "bytes[]",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "address",
|
|
name: "target",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "allowFailure",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "callData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Call3[]",
|
|
name: "calls",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
name: "aggregate3",
|
|
outputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "bool",
|
|
name: "success",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "returnData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Result[]",
|
|
name: "returnData",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "address",
|
|
name: "target",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "bool",
|
|
name: "allowFailure",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "uint256",
|
|
name: "value",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "callData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Call3Value[]",
|
|
name: "calls",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
name: "aggregate3Value",
|
|
outputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "bool",
|
|
name: "success",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "returnData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Result[]",
|
|
name: "returnData",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "address",
|
|
name: "target",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "callData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Call[]",
|
|
name: "calls",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
name: "blockAndAggregate",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "blockNumber",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bytes32",
|
|
name: "blockHash",
|
|
type: "bytes32",
|
|
},
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "bool",
|
|
name: "success",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "returnData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Result[]",
|
|
name: "returnData",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getBasefee",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "basefee",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "blockNumber",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
name: "getBlockHash",
|
|
outputs: [
|
|
{
|
|
internalType: "bytes32",
|
|
name: "blockHash",
|
|
type: "bytes32",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getBlockNumber",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "blockNumber",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getChainId",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "chainid",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getCurrentBlockCoinbase",
|
|
outputs: [
|
|
{
|
|
internalType: "address",
|
|
name: "coinbase",
|
|
type: "address",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getCurrentBlockDifficulty",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "difficulty",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getCurrentBlockGasLimit",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "gaslimit",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getCurrentBlockTimestamp",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "timestamp",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "address",
|
|
name: "addr",
|
|
type: "address",
|
|
},
|
|
],
|
|
name: "getEthBalance",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "balance",
|
|
type: "uint256",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: "getLastBlockHash",
|
|
outputs: [
|
|
{
|
|
internalType: "bytes32",
|
|
name: "blockHash",
|
|
type: "bytes32",
|
|
},
|
|
],
|
|
stateMutability: "view",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "bool",
|
|
name: "requireSuccess",
|
|
type: "bool",
|
|
},
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "address",
|
|
name: "target",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "callData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Call[]",
|
|
name: "calls",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
name: "tryAggregate",
|
|
outputs: [
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "bool",
|
|
name: "success",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "returnData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Result[]",
|
|
name: "returnData",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: "bool",
|
|
name: "requireSuccess",
|
|
type: "bool",
|
|
},
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "address",
|
|
name: "target",
|
|
type: "address",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "callData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Call[]",
|
|
name: "calls",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
name: "tryBlockAndAggregate",
|
|
outputs: [
|
|
{
|
|
internalType: "uint256",
|
|
name: "blockNumber",
|
|
type: "uint256",
|
|
},
|
|
{
|
|
internalType: "bytes32",
|
|
name: "blockHash",
|
|
type: "bytes32",
|
|
},
|
|
{
|
|
components: [
|
|
{
|
|
internalType: "bool",
|
|
name: "success",
|
|
type: "bool",
|
|
},
|
|
{
|
|
internalType: "bytes",
|
|
name: "returnData",
|
|
type: "bytes",
|
|
},
|
|
],
|
|
internalType: "struct Multicall3.Result[]",
|
|
name: "returnData",
|
|
type: "tuple[]",
|
|
},
|
|
],
|
|
stateMutability: "payable",
|
|
type: "function",
|
|
},
|
|
],
|
|
inheritedFunctions: {},
|
|
},
|
|
},
|
|
} as const;
|
|
|
|
export default deployedContracts satisfies GenericContractsDeclaration;
|